PDFをJpegに変換するコマンドを調べていたら、xpdfまたはpoppler-utilsパッケージに含まれるpdftoppmライブラリを使用するという情報をいくつか見つけた。

実際に、社内の環境でテストしたところ紹介されていた方法でうまくいったのだが、本番環境のCentOS5ではxpdfをいれてもpoppler-utilsをいれてもpdftoppmコマンドがインストールされなかった。

あれこれ、調べているうちに、どうやらCentOS5ではRPMパッケージのバグ?か何かの理由によりpdftoppmがインストールされないらしいということがわかった。

幸いImageMagickでも同じことができるという情報もあったので、それをつかって高解像度のJpegを出力することができないか試してみた。

ImageMgickでPDFをJpegにきれいに変換する。

「ImageMagickでPDFをJpegに変換すると綺麗にならない」との指摘はいくつかのブログで見かけた。

だが、しつこく調べた結果、パラメータを追加することでpdftoppmを経由するのと同じぐらい綺麗なPDFを出力できた。

convert -density 600 -geometry 1000 in.pdf out.jpg

上記のように-densityパラメータを設定すると綺麗なPDFを出力できる。

画像とか印刷とかには詳しくないのでよく分からないのだが、上記の例では解像度600dpiで横幅1000pxのJpegを作るよう指定している。
解像度とピクセルの値が矛盾しているような気がするのだが、こうすることで明らかにJpeg画像が綺麗になった。

mieki256′s diary – ImageMagick convert のオプション

antialiasを指定したときの違いは手元のPDFではあまり分からなかった。

PDF内の一部のページのみをJpeg化する場合は以下のようにページ番号を指定する。

convert -density 600 -geometry 1000 in.pdf[0] out.jpg

各パラメータの値は、もっとたくさんのPDFで試してみないとわからないかもしれない。