2007年01月27日

ghostscript 8.54 on MacOS X

もう何年も ghostscript を使わないでいたら、知らないうちにとっても機能アップしていたんですね (^^;;;

で、ふいに ghostscript 8.54 を MacOS X (10.3.9) にインストールしたくなって、ちょっと調べてみると、このバージョンでは素のままでも OpenType や TrueType フォントが使えて、もちろん日本語も OK らしい。でも縦書きの日本語の処理 (PDF への変換) に不具合があるらしいとのことで、

http://www2.gssm.otsuka.tsukuba.ac.jp/staff/ohki/

で公開されているパッチ (8.51用)

gs851-patch-mine

を適用してみました。8.54 ではいくつか reject されますが、

jasper/src/libjasper/include/jasper/jas_types.h

へのパッチは元々 Solaris のための修正だったので、ここでは無視。他の reject されたパッチは大した量ではないので、ちょっと面倒ですが手で直して修正完了。

後は ./configure → make → make install で ghostscript 本体のインストールは完了。

次に欧文フォント ghostscript-fonts-std-8.11.tar.gz を /usr/local/share/ghostscript/ で展開。

しかし URW フォントにバグがあるらしいので、

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?URW

に従って URW フォントを差し替え。

次は日本語フォントの設定です。

MacOS X 標準搭載のヒラギノフォント (OpenType) も使えるそうですが、上記の縦書きの日本語処理を修正するパッチは TrueType にしか対応していないそうなので、今回は IPA フォントを使うことにしました。

独立行政法人 情報処理推進機構のフォント(IPAフォント)付き GRASS国際化版(i18n)
http://www.grass-japan.org/FOSS4G/readme-grass-i18n-ipafonts.eucjp.htm

IPAフォント (ipa*.ttf) を /usr/local/grass5/fonts/ にインストールした後、/usr/local/share/ghostscript/fonts/ 以下にシンボリックリンク。

最初に適用したパッチ gs851-patch-mine のおかげで、既に IPA フォントを使う設定が済んでいますので、これで一通り ghostscript のセットアップは完了です。

実際にいろいろな PS や PDF ファイルを表示させてみましたが、特に問題ありませんでした。

これで終わらせても良かったのですが、PS から PDF の変換で日本語フォントを埋め込まないようにすることでファイル容量を減らしたかったので、ちょっと変更。

ps2pdf とともにインストールされる /usr/local/bin/ps2pdfwr の最下行にある
-c .setpdfwrite
の部分を (改行せず 1行で)
-c '.setpdfwrite <</NeverEmbed [/埋め込まないフォント名 ...]>> setdistillerparams'
と書き換えれば、ps2pdf で作られる PDF は、指定されたフォントが埋め込まれずに PDF を表示するアプリケーションに表示を任せることになります。

ですので PS 標準の日本語フォント /Ryumin-Light と /GothicBBB-Medium を埋め込まないフォントに指定すれば一応 OK ということになります。ところがそうやって作った PDF は、確かに Acrobat Reader であれば表示に問題は無いのですが、「プレビュー」では /Ryumin-Light も /GothicBBB-Medium もどちらも太いゴシック体のフォント (HiraKaku???) に置き換えて表示されてしまいます。

そこで以下のように書き換えて使っています。

(1) /usr/local/share/ghostscript/8.54/lib/cidfmap
/HiraMinPro-W3    << /FileType /TrueType /Path (ipam.ttf) /CSI [(Japan1) 2] >> ;
/HiraMinPro-W6 << /FileType /TrueType /Path (ipam.ttf) /CSI [(Japan1) 2] >> ;
/HiraKakuStd-W8 << /FileType /TrueType /Path (ipag.ttf) /CSI [(Japan1) 2] >> ;
/HiraKakuPro-W3 << /FileType /TrueType /Path (ipag.ttf) /CSI [(Japan1) 2] >> ;
/HiraKakuPro-W6 << /FileType /TrueType /Path (ipag.ttf) /CSI [(Japan1) 2] >> ;
/HiraMaruPro-W4 << /FileType /TrueType /Path (ipagui.ttf) /CSI [(Japan1) 2] >> ;
/Ryumin-Light /HiraMinPro-W3 ;
/Ryumin-Regular /HiraMinPro-W6 ;
/FutoMinA101-Bold /HiraKakuStd-W8 ;
/GothicBBB-Medium /HiraKakuPro-W3 ;
/FutoGoB101-Bold /HiraKakuPro-W6 ;
/Jun101-Light /HiraMaruPro-W4 ;

(2) /usr/local/bin/ps2pdfwr

(旧)
-c .setpdfwrite

(新) ※改行せず 1行で
-c '.setpdfwrite <</NeverEmbed [/HiraMinPro-W3 /HiraMinPro-W6 /HiraKakuPro-W3 
    /HiraKakuPro-W6 /HiraKakuStd-W8 /HiraMaruPro-W4]>> setdistillerparams'
上記のように変更した上で、まず PS ファイル内のフォント名を一旦ヒラギノフォントに変換してから、ps2pdf を通すことで「プレビュー」でも適切に、且つヒラギノフォントを使って表示される PDF を作ることが出来ます。※↓は改行せず 1行で実行。
sed -e 's/Ryumin-Light/HiraMinPro-W3/g' 
    -e 's/GothicBBB-Medium/HiraKakuPro-W3/g' 入力.ps | ps2pdf - 出力.pdf
後はこの変換処理を簡単にできるようにスクリプトにしても良いと思います。なお、オリジナルの ps2pdfwr も残しておいて、日本語フォント埋め込み PDF も作れるようにしておいた方が可搬性の点で良いと思います。

因みに ghostscript の日本語パッチに添付されていたテスト用の PS ファイル (article9.ps) を上記の環境で PDF に変換した場合のファイルサイズです。

(1) フォント名そのままで日本語フォント埋め込み
==> 24,203 byte

(2) フォント名そのままで日本語フォント埋め込まず
==> 5,656 byte

(3) フォント名をヒラギノフォントに変換してから日本語フォント埋め込み
==>24,201 byte

(4) フォント名をヒラギノフォントに変換してから日本語フォント埋め込まず
==> 5,653 byte

なお (2) で作った PDF は Acrobat Reader では適切に表示されましたが、「プレビュー」では埋め込まなかった日本語フォントが全て「太ゴシック」に置き換えられて表示されました。


[関連リンク]
Ghostscript のインストール(Mac OS X 10.4 Tiger)
http://www.interq.or.jp/mars/cherry/mac/gs-tiger.html
posted by yamaga at 00:01| Comment(0) | TrackBack(0) | macOS / Darwin | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック