Ghostscript でフォントを利用するには、そのフォントに対応するファイルのありかを Ghostscript に教えてやるだけのことです。そのためには /usr/share/ghostscript/version/Fontmap を編集します。フォーマットはごく単純ですから、ざっと目を通すだけですぐにも理解できるでしょう。
Type1 フォントは簡単に追加できます。フォントのあるディレクトリで type1inst を実行してください。type1inst は Fontmap という名前のファイルを出力します。このファイルの内容を Ghostscript が使う Fontmap ファイルの最後に追記しましょう。
TrueType フォントの追加はやや面倒で、まずフォント名を調べなければなりません。その手段としては(強引な力技ですが)、TrueType フォントを Type1 フォントに変換するプログラム ttf2pt1 を用いて、afm ファイルからフォント名を取得するという手があります(もっと効率のいい方法があるはずなのに! まあ、みっともないやりかたではあっても、うまくいくことは確かなのですが)。こんなふうにコマンドを実行してください。
ttf2pt1 -A フォントのファイル名 - 2> /dev/null | grep FontName |
xxx-font (/usr/share/fonts/subdirectory/xxxfont.ttf); |
#!/usr/bin/perl # ttfontmap -- TrueType フォント用の Fontmap ファイルを生成 my $directory=shift || print STDERR "Usage: ttfontmap {directory}\n"; $directory=~s/\/$//; for my $fontname ( glob ( "$directory/*.ttf" ) ) { open ( R, "sh -c \"ttf2pt1 -A $fontname - 2>/dev/null\" |" ); while ( <R> ) { if ( $_ =~ /^FontName/ ) { s/^FontName\s*//; chomp; print "/" . $_ . " ($fontname);\n" ; } } close R; } |
カット & ペーストした内容を ttfontmap という名前で保存し、そのファイルをパスの通っているところ(例えば /usr/bin)に格納すれば、スクリプトのセットアップは完了です。以下のように実行してください。
ttfontmap ディレクトリ > 出力ファイル名 |
注意:「ttfontmap ディレクトリ >> /usr/share/ghostscript/version/Fontmap」とすればいいじゃないか、と思う方もいらっしゃることでしょう。しかし、これはお勧めできません(>> と入力すべきところを > としたらどうなることか……)。
Ghostscript で使えるようになったフォントはプレビューできます。Ghostscript パッケージに含まれている prfont.ps というファイルを読みこませる形で Ghostscript インタープリタを起動してから、
/フォント名 DoFont |
gs -sDEVICE=pswrite -sOutputFile=xxxxxx.ps prfont.ps |