PDFファイルのバッチサイズ変更と圧縮


15

PDFファイルのバッチをサイズダウンして圧縮する方法が必要です。Windowsでこれを行うことを希望しますが、よりスムーズなワークフローを意味する場合はLinuxで問題ありません。

NitroPDFやAcrobatなど、これを実現できるプログラムがあることは知っていますが、ファイルごとに実行する必要があると思います。これらのプログラムも安くはないので、1つまたは2つの機能を使用できるようにするためだけに購入したくないと思います。

背景情報:CamScannerを使用して、アカウントに入るための領収書と請求書をデジタル化します(FreeAgent)。CamScannerのPDFはすべてA4サイズであり、複数ページのPDFは多くの場合2MBの添付ファイルの制限を超えています。

回答:


15

ここでは、Windows、Linux、OS Xなどの組み込みスクリプト言語のループで簡単にバッチ処理できるコマンドラインツールを提案しています。


ImageMagickはPDFをサポートresizeし、変換ツールのオプションがあります。個人的に使用したことはありませんが、試してみてください。

compressオプションを使用することもできます(ここに例があります)。

PDFを回転させる

$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf

これは、TIFF形式のPDFを前提としています。それ以外の場合はImageMagickがイメージをダウンサンプリングする(何らかの理由で)ため、密度パラメーターは重要です。圧縮オプションを追加すると、品質を損なうことなくPDFの全体サイズを小さく保つことができます。

複数ページのPDFの場合pdftk、を使用しmogrify、ImageMagickから使用して各ページを所定の場所に変換できます。

$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf


ImageMagickでPDFファイルを変換するには、GhostScriptがインストールされている必要があります。


ImageMagickは、複数ページのPDFを変換できます。一方でmogrify所定の位置に変換されます、私はあなたが使用をお勧めしますconvertあなたが事故の場合には原稿を保つことができるようにします。


提供されたサンプルPDFでテストを行いました。これは私にとって非常にうまくいきました:

convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf

密度のデフォルトは72DPIです。それをより高く設定することにより、より高い解像度、したがって許容可能な品質を得ることができます。それは大丈夫に見え150、少し小さくなりましたが、PDFの範囲に対応したい場合200は動作するはずです。

JPEG圧縮は自動にレベルまたはデフォルトを選択してくださいいずれか92の規模に1まで100100最高のもの。に設定すると20、オリジナルとほとんど同じように見えます(少し曖昧で、下部の小さなテキストは少し読みにくいですが、もともとはそうでした)。

これらのオプションにより、1.7MBのサンプルが0.5MBになり、読みやすくなります。少し試すことができます。

小さいサイズ(ファイルと画像/ PDFの両方)が必要な場合は-resize #%、などを使用できます-resize 75%。ただし、PDFの例では、これにより、下部の小さな文字がほとんど読めなくなります。

まだスペースが限られている場合、特にマルチページPDFの場合は、ZIP(またはその他の)アーカイブにファイルを追加することでさらに圧縮できます。これにより、そのテストPDFのファイルサイズは0.43MBになりました(JPEG圧縮品質を下げると、はるかに大きな効果が得られます)。またpdftk@ glallenが編集で示唆したように、PDFファイルをページで分割したり、アーカイブを分割してもう一方の端で再結合したりすることもできます。

2MBは添付ファイルの制限もかなり小さいため、他のメールプロバイダーを調べることをお勧めします。メモリから、GMailはメールごとに10MB以上を提供します。

これらのオプションなどは、ウェブサイトに完全に文書化されています


これは優れたアプローチのように思えますが、私のPDFはTIFFに裏付けられているとは思いません。CamScannerは、最初にJPEG写真を撮影し、エクスポート用にPDFに変換します。これらのPDFの処理は、圧縮に関係なく、ブログの投稿が示すように、それらをダウンサンプリングするようです。PDFからTIFFに変換してからPDFに戻すと、品質は維持されますが、ファイルサイズが大きくなり、ページサイズと密度が乱れます。
スタン

@paganompu私が理解しているように、ファイルサイズを小さくしたい。として圧縮するのはJPEGどうですか?どうでしresizeたか?プレイできる(非機密)サンプルファイルはありますか?ダウンサンプリングは受け入れられますか?
ボブ

JPEGは問題ありませんでしたが、複数ページのドキュメントをアップロードする必要があり、アカウントエントリごとに添付ファイルを1つしか持てません。ダウンサンプリングは深刻です。このテストドキュメントは、ロスレス圧縮で変換したは判読できません。
スタン

@paganompu私は少し自分で実験しましたが、実際のコマンドで答えを更新しました。ファイルのテストについては、こちらをご覧ください。
ボブ

そのコマンドは魅力のように機能します。私の「ダウンサンプリング」は省略によるもののようdensityです...私は読み、指示に従うことができると誓います!少し恥ずかしいです:Sボブ
スタン

19

だから、convertImageMagickのからラスタ化されたPDFが生成されますし、多くの人が触れられていないので、唯一の埋め込まれた画像が圧縮されているベクタ形式とテキストを維持するのに興味があると思います。圧縮を行うための優れた代替手段はgs、パッケージghostscriptの使用例から使用することです:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf

上記のコマンドパラメータ:-dPDFSETTINGS=/ebookは重要です。次の3つの値を持つことができます。

-dPDFSETTINGS=/screen   (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook    (low quality, 150 dpi images)
-dPDFSETTINGS=/printer  (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default  (almost identical to /screen)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.