特定のPDFファイルのすべてのページのスクリーンショットを撮るスクリプトを作成する方法

特定のPDFファイルのすべてのページのスクリーンショットを撮るスクリプトを作成する方法

PDFファイルを入力として使用し、各ページのスクリーンショットを実際のサイズ(100%)で撮るスクリプトを作成したいと思います。したがって、次のようになります。custom_pdfcapture example.PDF実行後のスクリーンショットは、フォーマットexample.PDFに従うファイル名と同じディレクトリになければなりません${name_of_pdf}_${page_number}.pdf。これを行うには、どのパッケージ/コマンドを調べる必要がありますか?

答え1

pdfseparateこのパッケージのツールは、poppler-utils入力PDFファイルの単一ページを抽出できます。

例:

pdfseparate example.pdf example_%02d.pdf

printfスタイルのページ番号を表すexample.pdfページexample_01.pdf、、example_02.pdf...で区切ります。%02d


パッケージのツールとツールをpdftocairo使用して、入力PDFファイルから画像を生成できます。pdftoppmpoppler-utils

例:

pdftocairo -r 300 -png example.pdf

pdftocairo -scale-to-x 800 -scale-to-y -1 -png example.pdf

どちらのコマンドも、指定されたドキュメントのすべてのページをexample-01.png、、、example-02.png...という名前のPNG画像としてレンダリングします。

最初のコマンドはxとyの解像度を300PPI(デフォルトは150PPI)に設定し、2番目のコマンドは出力幅を固定800ピクセル(-scale-to-x 800)に設定し、出力の高さは-scale-to-y -1アスペクト比()によって決まります。

JPEG(JPEG圧縮レベルの変更を参照)またはTIFF画像を使用または作成できます-jpeg-tiff-png-jpegopt

ドキュメントのMediaBoxがCropBox(Acrobatが表示して印刷する項目)よりも大きい場合は、オプションを追加します-cropbox

pdfinfoパッケージに含まれているボックスのサイズを確認できます。

pdfinfo -box example.pdf

さまざまなレンダリングバックエンドを使用するユーティリティには、出力pdftoppmイメージ(ここexample)の接頭辞が必要です。出力は次のようになります。

pdftoppm -r 300 -png example.pdf example

その他のオプションについては、これら2つのコマンドのマニュアルページを確認してください。

関連情報