ImageMagick で PDF を画像に変換する時に ghostscript でハマった
CentOS 6 系に入ってる ghostscript 8.70 だと、convert で pdf から 画像に変換するとき、フォント埋め込み pdf で変換失敗することがあった。
[root@localhost ~]# convert change.pdf after.png Magick::ImageMagickError (Postscript delegate failed `/tmp/magick-_E4514': No such file or directory @ error/pdf.c/ReadPDFImage/669):
で、なんでだろうなって話をしてて、どうも埋め込みに使用したフォントの種類によってエラーが起きる、ということが判明。
- ttf フォント:何事も無く変換できる
- otf フォント:だめ
穀すぞ、みたいな顔して調べたけどさっぱりわからず、見かねた同僚に「変換エラー出てない奴が Ubuntu で ghostscript 9.0.7 だから最新版までいっそ上げてみれば」と言ってくれたので、決断的に作業。
[root@localhost ~]# yum erase ghostscript* 読み込んだプラグイン:downloadonly, fastestmirror 削除処理の設定をしています 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package ghostscript.x86_64 0:8.70-19.el6 will be 削除 ---> Package ghostscript-devel.x86_64 0:8.70-19.el6 will be 削除 ---> Package ghostscript-fonts.noarch 0:5.50-23.2.el6 will be 削除 --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================================================================================================ 削除: ghostscript x86_64 8.70-19.el6 @base 20 M ghostscript-devel x86_64 8.70-19.el6 @base 35 k ghostscript-fonts noarch 5.50-23.2.el6 @base 1.1 M トランザクションの要約 ================================================================================================================================================================ 削除 3 パッケージ [root@localhost ~]# cd /usr/local/src [root@localhost ~]# wget http://downloads.ghostscript.com/public/ghostscript-9.15.tar.gz [root@localhost ~]# tar -zxvf ghostscript-9.15.tar.gz [root@localhost ~]# cd ghostscript-9.15 [root@localhost ~]# ./configure --prefix=/usr/local [root@localhost ~]# make [root@localhost ~]# make install
これで無事 ttf フォントも otf フォントも埋め込んだ pdf が画像に変換できるようになりましたやたー。cifontmap 編集して ghostscript にデフォルトで使えるフォントを上書きさせる、みたいな解決方法っぽいのもウェブ上にあったんだけど、試したら駄目だったので、フォントマップとかじゃなく、ghostscript の PDF 展開部分に拡張があったんすかね?何はともあれ調べても出てこなくてブッチッパしたら治ったので、これで良しとする。