« 2006年02月01日 | メイン | 2006年02月03日 »

2006年02月02日

PDFと文字 (39) – Windowsへ表示とPDF作成の相違

昨日、XSL FormaterV3.4ではWindowsの画面には正規分解を正しく表示できても、PDFでは正規分解を正しく表示できない、ということを示しました。

実は、このあたりがWindowsの大変ややこしいところなのです。

Latin capital letter A with ring above and acute (U+01FA.PNG)という文字をWindowsの画面に表示することを考えて見ます。この合成文字のコードポイントはU+01FAです。もし、入力されたデータの中の文字コードが正規分解の時、XSL Formatter V3.4は、この文字コードの並びをそのままWindowsに渡します。

そうしますと、Windowsが文字の形を作り出して U+01FA.PNGという形を画面に表示します。

一方、PDFを作成するときは、正規分解をPDF生成エンジンに渡します。そうしますとPDFの中にU+0041 U+030A U+0301の3つの文字が配置されます。それをAdobeReaderで表示すると、基底文字Aと二つの結合文字が重なってしまうわけです。

V34-sikumi.PNG

これに対して、V4.0でLatin capital letter A with ring above and acute (U+01FA.PNG)を画面でもPDFでも正しく表示できるのは、Formatterの方で、正規分解を合成文字U+01FAに置き換えてしまっているからです。そうして、Windowsで表示するときも、PDFもU+01FAを使います。作成したPDFの中にもU+01FAという文字が埋め込まれていることになります。

V40-sikumi.PNG

以上により、Unicodeの結合文字列から合成文字にするのは有効なように思います。では、この問題点はないのでしょうか?引き続き検討してみましょう。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック