Ghostscriptを使用して複数ページのPDFを単一のJPGに変換しますか?


15

GhostscriptはPDFをJPGに変換でき、複数ページのPDFの場合、各ページを個々のJPGにリッピングできることを知っています。しかし、それらを1つのJPGにリッピングして、ページが互いに下に貼り付けられるようにすることは可能ですか。たとえば、JPGの上半分は1ページ、下半分は2ページです。または、JPGページを1つの画像に結合するために別のプログラムを使用する必要がありますか(ImageMagickはこれを実行できますか?)。

回答:


17

はい、各PDFページを単一のJPGファイルに変換する必要があります(Ghostscriptで可能です)。

次に、別のプログラムを使用して、結果のJPGファイルをつなぎ合わせます(ImageMagickまたはGraphicsMagicは、montageサブコマンドを使用してこれを実行できます)。

私は一度にそれを行うことができるソフトウェアを知りません。

PDFからJPGへの変換(Ghostscriptを使用): 可能な限り最高の結果が得られるようにする必要があります。そのため、コマンドラインオプションが適切に機能するように調整してください。私はこれから始めます:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

これによりpdffile-001.jpegpdffile-002.jpgなどのJPGが作成されます。パラメーター* -dJPEGQ = 95 "は、「JPEG品質」を95%に設定します。「600x600 dpi」の解像度を使用します。 Ghostscriptのデフォルトがニーズに合わない場合に、生成されるJPGのページサイズを制御します。

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

または

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

複数の単JPGは、ステッチmontage(ImageMagickのまたはGraphicsMagickの)montageコマンド(この例で使用されるが、ImageMagickのある)は、タイルパターンを制御することを可能にします。たとえば、使用-tile 4x3すると、この面付けレイアウトが得られます。

1  2  3  4    
5  6  7  8    
9 10 11 12    

このコマンドを使用して、12個の個別のJPGを1つにまとめることができます。

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

もちろん、montage入力および結果のJPGの背景、間隔、オフセット、装飾、ラベル、回転、トリミング、キャプションなどを決定できる多数の追加パラメーターがあります。


編集:(このヒントを元の答えですでに伝えたかっmontageたのですが、忘れていました。)デフォルトでは、120x120ピクセルのタイルサイズを使用します。各タイルの元のページサイズを維持する場合は-geometry、コマンドラインに追加する必要があります。PDFに A4(= 595x852 pt)ページがあり、これを保持したいが、タイルの水平方向に11pt、垂直方向に22 ptの間隔を追加すると仮定します(さらに4ptの強いグレーの境界線/フレームライン各タイルの周り)、これを行います:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

編集2 :(別の重要なヒントがありません。)PDFからJPGへの変換で作成されたステッチ/モンタージュ処理中に良好な画像品質を失いたくない場合は、-quality 100このようにコマンドラインにパラメータを追加します:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

ご回答ありがとうございます。ImageMagick 6.9.9にジオメトリパラメーターが表示されません。また、結合された画像の画質はいまだに下品であり、文字通り文字を読むことができません。
オタク

2

ImageMagickにはGhostScriptが組み込まれているため、一度にすべてを実行できます。

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

すべてのページを取得し、エンドツーエンドで1つの長いjpegを作成します。


1
しかし、これはGhostscriptをデフォルト設定で使用するため、高品質のJPGを提供しません(そしてこれらはJPG出力にはかなりshi..yです)。2ステップで実行する(そして最初にJPGページをチェックする)と、最適な制御が得られ、かなり良いJPG出力も得られます)。
カートPfeifle

ImageMagickのPDFの密度設定を使用してGhostscriptの設定を変更し、同様の結果を得ることができます。IMのオプションの使用方法を知らない場合は、ノックしないでください。
エルジャン

1
k .:やあ、ImageMagickをノックしなかった。ICCカラープロファイルを適用する場合でも、そのオプションの使用方法を知っています...しかし、すべての Ghostscriptオプションをモンタージュに渡すことはできません。私のコメントはあなたの提案されたコマンドに言及しましたが、それは言及していませんでした-density
カートフェイフル

ちなみに、この方法で呼び出すとImageMagickがPDFからPSに、次にPSからPNGに内部的に変換することをSOの別の場所で読んでいます。
イブラヒム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.