« 2008年04月01日 | メイン | 2008年04月03日 »
2008年04月02日
OpenOffice.orgでIPAフォント設定時の縦書き用グリフ問題(問題発見!)
さて、「IPAフォントに不具合がある」ということなので、色々と調べてみたのですが、最後に漸く、それらしき問題を発見しました。
昨日、サーバベース・コンバータでフォントを埋め込んで作成したPDFを、今度は、「PDFViewer SDK」を使って表示してみます。
PDF Viewer SDKは、PDF表示機能をアプリケーションに組み込むための開発キットなのですが、Windows画面に文字を表示する方法を切り替えることができます。
PDFにフォントを埋め込んだ場合、各文字のグリフがPDFの中に埋め込まれます。PDFには同時に文字コードへの対応表も定義されます。
(1)PDFにフォントが埋め込まれている場合、通常は、そのグリフを使って表示します。
(2)しかし、グリフを使わずに、文字コードをWindowsに渡して文字を表示させることもできます。この場合、Windowsが、フォントファイルから縦書きか横書きかで適切なグリフを探して表示するはずです。
また、WindowsGDIには、GDIとGDIPlusと2種類があります。GDIPlusの方が新しく、高度な表示機能があります。PDF Viewer SDKでは、GDIを使う表示とGDIPlusを使う表示を切り替えることができます。
この組み合わせは4通りになりますが、4通りそれぞれの表示を試して見ました。
1.埋め込みフォントのグリフを使ってGDIPlusで表示した画面
びっくり!
文字コードを使ってGDIPlusで表示したときだけ、縦書きの句読点のグリフが横書き用グリフになってしまっています。
どうやら、WindowsはGDIPlusの時だけ、「IPA明朝」の縦書き用のグリフを正しく取り出せないようです。推測しますに、Microsoft WordやOpenOffice.orgで、「IPA明朝」を指定した縦書き文書の句読点が正しく表示できたのは、文字コードでGDIを使って表示していたからかもしれません。
結局、「IPA明朝」にはどうも問題があるらしいことまでは分かりました。しかし、実際のところ、これがIPAフォントの不具合なのか、それともGDIPlusの不具合なのかは、これだけでは必ずしも断言できないと思います。最後は、「IPAフォント」の中を覗いて見るしかない?
投票をお願いいたします