2006-10-26

ja-xpdfフォント問題2

以前解決したつもりのja-xpdfフォント問題だが、まだぞろぞろ出てくる。

まず、DFGothic-EB-WIN-RKSJ-Hとかいうフォントが出てきた。DynaFontのDF特太ゴシックというものらしいが、埋め込みもせずに送りつけてこないでもらいたいものだ。ためらわずにxpdfrcに追加。が、DF系はまだまだ大量にありそう。ワイルドカードが使えれば楽になりそう。

次に、別のpdfで、
Error: Couldn't find '90ms-RKSJ-H' CMap file for 'Adobe-Japan1' collection
とか言われた。adobe-cmapsは入れてあるし、当然aj16/CMapの下にそのファイルはあるのに何言ってるのと思いながらソースを追いかけると、xpdfrcで指定されたcMapDir「しか」探さないようだ。ということは、ja-xpdfのデフォルトがタコなんじゃんと文句をいいつつ、cMapDirのうしろに/aj16/CMapを追加。

最後は科研費がらみ。学振のページで応募情報ファイルというのを作成し、それをダウンロードすると、xpdfでは、上の 90ms-RKSJ-H 問題の他に、
Error: Couldn't find a font for 'lrSvbN'
Error: Couldn't find a font for 'lrSVbN,Bold'
とか出る。なんじゃそのフォントはと、たまたまjlessに通して見たら、なんと
Error: Couldn't find a font for 'MSゴシック'
Error: Couldn't find a font for 'MSゴシック,Bold'
だった。エンコーディングはシフトJIS。とりあえずこのままの名前でxpdfrcにつっこんでシフトJISで保存してみたら、なんとか表示された。ただし、Boldかどうかの区別はできていない。どうすればいい?

誰がこんなフォント名でPDFを作るのかとプロパティを見ると、IOWebDOCというPDFベースの帳票システムらしい。科研応募システムの受注先が、これを入れて納品したって感じか。

で、acroreadはどうやって対処してるのかと、バイナリをシフトJISとみなして覗いてみると、50個ほどの日本語用フォント名が埋め込んであった。そのうち半分が日本語名。どれも「,Bold」は付いていないので、これは一般的なフォントの飾り指示であって、xpdfが対処すべき問題なんだろうと思う。

ところで、xpdfrcでは、フォント名を明示的に指定しなくても、
displayCIDFontTT
で registry-ordering (つまり、Adobe-Japan1 とか)を指定することはできる。こうすればマッチするフォント名がなくてもフォントマッピングができる。しかしこの場合、たぶんGothicやらMinchoやらの区別はできないので、あまり使いたくない。追加すべきフォントも検出できなくなってしまうし。

というわけで、xpdfの改良余地はまだまだありそう、というのが結論。

0 件のコメント: