現在ImageMagickを使用してPDFをJPEGラスターイメージに変換しています。これは非常に遅く、大量のメモリを消費します。
私が使用したコマンドは:
convert -geometry 1024x768 -density 200 -colorspace RGB foo.pdf bar%02d.jpg
Ghostscriptを使用しているので遅いと思います。 ただし、Linuxボックスでこれを行うためのより高速な方法が必要です。
誰かがより良い解決策を見つけましたか?
(Ghostscriptを間接的に呼び出すImageMagickのconvert
コマンドを使用する代わりに)Ghostscriptを直接使用すると、実際に高速になります。そしてそれはあなたに変換パラメータについてより多くの制御を与えます。試す
gs \
-sDEVICE=jpeg \
-o bar_%03d.jpg \
-dJPEGQ=95 \
-r600x600 \
-g4960x7016 \
foo.pdf
どこ
-o
:出力パスとファイル名を決定します(および-dBATCH -dNOPAUSE
の使用を節約します)-dJPEGQ
:JPEG品質を95%に設定します-r
:解像度を600dpiに設定します-g
:画像サイズを4960x7016pxに設定します-sDEVICE
:出力をJPEGに設定しますこのコマンドを実行しても、速度が遅くなり、予想よりも大きなファイルが作成されます。ファイルサイズが小さく、実行速度が速い場合は、これを試してください(おそらくconvert
コマンドラインの出力品質に近づきます)。
gs \
-sDEVICE=jpeg \
-o bar_%03d_200dpi_q80.jpg \
-dJPEGQ=80 \
-r200x200 \
-g1653x2339 \
foo.pdf
あるいは
gs \
-sDEVICE=jpeg \
-o bar_%03d_default_a4.jpg \
-sPAPERSIZE=a4 \
foo.pdf
(これにより、72dpiの解像度が得られます。多くの場合、ほとんどの画面とほとんどのWebアプリケーションに十分対応できます)。
ところで、ImageMagickが非常に遅い理由の1つは、Ghostscriptを2回呼び出すことです。 PDF => PNGを一度に変換するのではなく、2つの異なるステップを使用します。
PDF => PostScript
変換にGhostscriptを使用します。PostScript => PNG
変換にGhostscriptを使用します。次のように入力することで、ImageMagickの「デリゲート」(ImageMagickが使用する外部プログラム、Ghostscriptなど)の詳細設定について知ることができます。
convert -list delegate
(私のシステムでは、32の異なるコマンドのリストです。)ここで、PNGへの変換に使用されるコマンドを確認するには、次のコマンドを使用します。
convert -list delegate | grep -i png
OK、これはLinux用でした。あなたがWindowsを使っているなら、これを試してください:
convert -list delegate | findstr /i png
IMがPSまたはEPS入力からのみPNGを生成することがわかります。では、IMはどのようにPDFから(E)PSを取得するのでしょうか。簡単:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
ああ! Ghostscriptを使用してPDF => PS変換を行い、次にGhostscriptを再度使用してPS => PNG変換を行います。機能しますが、最も効率的な方法ではありませんGhostscriptができることを知っている場合PDF => PNG inonego。そしてより速く、そしてより良い品質で。
IMによるPDF Ghostscriptデリゲートを介した画像への変換)の処理について、まず最初に2つのことを知っておく必要があります。
convert
パラメータとして-density 600
を追加することを提案する人もいます。PDF => PS
を変換し、次にPS => PNG
を変換するというIMの迂回路は、実際の失敗です。あなたが決して勝利し、ハーディは最初のステップで品質を維持しますが、非常にしばしばいくつかを失うからです。理由:PS => PDF
、そのため、それほど重要ではありません...)そのため、Ghostscriptを直接使用して、PDFを一度にPNG(またはJPEG)に変換することをお勧めします。そして、Ghostscriptの 最新バージョン8.71 (まもなくリリースされる:9.00)を使用します...
Popplerパッケージのプログラムpdftoppm
もJPEGを作成できます。私にとっては、上記のようにgs
を使用する場合の約2倍の速度です。
pdftoppm -jpeg -r 300 foo.pdf foo.jpg
私の経験では、 MuPDF はGhostscriptよりもはるかに高速です。これは、GSの問題がほとんどない、より新しいプロジェクトです。あなたのユースケースに合うかどうか試してください!
mudraw -w 1024 -h 768 -r 200 -c rgb -o bar%d.png foo.pdf
古いLinuxディストリビューションがあり、リポジトリからmupdf-toolsをインストールしている場合、mudraw
はpdfdraw
と呼ばれる可能性があります
次に、たとえばimagemagickを使用してpngをjpegに変換する必要があります。しかし、それでもGhostscriptより高速です。