« 2006年10月10日 | メイン | 2006年10月12日 »

2006年10月11日

フォントを埋め込まないPDFの表示(6)

さて、昨日は、CJKコンポーネント(「alf_jpn.exe」)をインストールすることで日本語フォントを埋め込まないPDFも、表示できるようになることを説明しました。

では、どのような仕組みでこれが可能になっているのでしょうか?
そこで、CJKコンポーネントをインストールすると、追加されるものと調べてみますと、次の3つのようです。

・Program Files\Adobe\Acrobat 7.0\Readerフォルダの
 agldt28l_cjk.dllファイル (約1MB)
・Program Files\Adobe\Acrobat 7.0\ResourceフォルダにCIDFontというフォルダができ、中に次のフォントがインストールされます。
 KozGoPro-Medium.otf (約3MB)
 KozMinProVI-Regular.otf (約6MB)
・Program Files\Adobe\Acrobat 7.0\Resource\CMapフォルダは、インストール前は、Identity-HとIdentity-Vだけでしたが、CJKフォントをインストールしますと、Adobe-Japan1-H-CID以下、94個のCMapテーブルが追加になります。

この中で、agldt28l_cjk.dllファイルの役割は分かりません(このファイルを削除しても、日本語フォントは表示できます)。

また、日本語フォントファイルとして、MS明朝や、平成丸ゴシックが追加されるわけではありませんので、CJKコンポーネントをインストールすることによって表示されるフォントはWindowsのシステムに、あらかじめ存在していたものなのでしょう。

恐らく、日本語フォントを指定した文字がフォントを埋め込まないと表示できない理由のひとつは、CMapテーブルがなかったためだろうと思います。ですがそれだけではありません。CMapテーブルを残しておいて、KozGoPro-Medium.otf、KozMinProVI-Regular.otfを削除してしまうと、再び、フォントを埋め込んでない日本語の文字が表示できなくなってしまいます。

なぜ、KozGoPro-Medium.otf、KozMinProVI-Regular.otfを削除してしまうと、MS明朝や平成丸ゴシックが表示できなくなるのでしょうか?関係なさそうに思えるのですが、これは謎ですね。

それから、英語について、フォントを埋め込まないとArabicTypesettingが正しく表示できないというのは、CJKコンポーネントをインストールしても変化ありません。次の図をご覧ください。上はWordでArabicTypesettingを指定したラテンアルファベット文字、下はフォントを埋め込まずに作成したPDFをAdobe Readerで表示したもの。
20061011.PNG

フォントを埋め込まないで作成したPDFについて、Adobe Readerの表示方法にはいろいろと謎がありますが、少なくともWindowsのシステムにあるフォントを素直に使っていないのは確かなようです。

投票をお願いいたします

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