pdfからepsへの変換 on Linux

学会誌に投稿した論文が採録され、最終原稿を作るってことで原稿のTexソースを画像ファイル込みで一式送ったんだ。それが、僕は画像はすべてPDFで作っていたんだけど、投稿のルールとしてEPSファイルにしなければならないということで、画像ファイルをすべてEPSに置き換えて再提出することになった。この論文では小さい図をたくさん使っていて、合計で30枚近い画像ファイルがある。それを(昔やっていたように)Windows上でPowerPointなどからEMF形式で保存し、それをWMF2EPSを使ってEPSに逐一変換するってのはやってられない。ってことで、LinuxUbuntu 7.04)上でバッチ的にPDFからEPSに変換したので、そのときのメモ。
GhostScript付属のpdftopsコマンドで実はEPSにも変換できる。今回はこれを使った。pdftops自体はgs-commonパッケージをインストールすれば付いてくる。画像ファイルを置いてあるディレクトリに移動し、次のようにコマンドを実行して変換完了。

$ cd fig
$ for i in *.pdf; do
pdftops -eps $i
done

実行中「Error: Unknown character collection 'Adobe-Japan1'」とエラーメッセージが出たけど、無事EPSファイルは生成されていたので気にしないことにした。「Linux便利コマンド」に書かれている方法で試したところ、EPSファイルサイズがPDFファイルサイズの100倍くらいにふくれあがったけど、pdftopsを使った方法ではそこまで大きくなることは無かった。それでも3倍ほど大きくなっていたけど。
pdftopsを使うにあたって、1つ注意。最近のPowerPointだと、オブジェクトを配置すると自動でオブジェクトに影を付けるけど、あれはくせ者。影が付いたオブジェクトを含むPDF画像ファイルを変換したところ、そのオブジェクト全体が真っ黒く塗りつぶされてしまった。影は外さないとうまくいかない。