web-dev-qa-db-ja.com

pdftk圧縮オプション

pdftkを使用して、次のコマンドラインを使用してpdfを圧縮します。

pdftk file1.pdf output file2.pdf compress

私のファイルの重量が減るにつれて機能します。

圧縮を変更する[オプション]はありますか?

または、ファイルを圧縮するための他のソリューションですか?一部のグラフィックには多くのポイントがあるため、重いです。たとえば、これらのグラフをjpgに変換して圧縮を適応させる方法はありますか?

83
RockScience

私は同じ問題を抱えていて、2つの異なる解決策を見つけました(詳細については、この thread を参照してください)。どちらも私の非圧縮PDFのサイズを劇的に縮小しました。

  • ピクセル化(損失あり):

    convert input.pdf -compress Zip output.pdf
    
  • ピクセル化されていません(ロスレスですが、表示が少し異なる場合があります):

    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH  -dQUIET -sOutputFile=output.pdf input.pdf
    

Edit:厄介なgsコマンドを回避する別のオプション(ロスレス圧縮用)を発見しました。 qpdf は、PDF(圧縮/解凍、暗号化/復号化)を変換するきちんとしたツールであり、gsコマンドよりもはるかに高速です。

qpdf --linearize input.pdf output.pdf
112
nullglob

この手順はかなりうまくいきます

pdf2ps large.pdf very_large.ps

ps2pdf very_large.ps small.pdf

試してみる。

33
jortizromo

ファイルサイズがまだ大きすぎる場合は、ps2pdfを使用して、生成されたpdfファイルの解像度を縮小することができます。

pdf2ps input.pdf tmp.ps
ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf

-dColorImageResolutionオプションの値を調整して、ニーズに合った結果を達成します(値はDPIの画像解像度を表します)。入力ファイルがグレースケールの場合、ColorGrayに置き換えるか、上記のコマンドで両方のオプションを使用することも役立ちます。 -dPDFSETTINGSオプションを/ defaultまたは/ printer。可能なすべてのオプションの説明については、 ps2pdfマニュアル を参照してください。

16
Dominik

nullglob のようにgpdfを試してみたところ、cups-pdfプリンターを使用するだけで同じ圧縮結果(〜900mbから〜30mbまで)が得られることがわかりました。すでにドキュメントを表示していて、1つまたは2つのドキュメントのみを圧縮する必要がある場合、これはより簡単/優先される場合があります。

Ubuntu 12.04では、これをインストールできます

Sudo apt-get install cups-pdf

インストール後、System Tools>Administration>印刷>「PDF」を右クリックし、「有効」に設定します

デフォルトでは、出力はホームディレクトリのPDFという名前のフォルダーに保存されます。

3
ryanjdillon

pdf2ps large.pdf small.pdfで十分です。2ステップではありません

pdf2ps large.pdf very_large.ps 
ps2pdf very_large.ps small.pdf

ただし、ps2pdf large.pdf small.pdfの方が適しています。

  • ps2pdfははるかに高速です
  • 追加のパラメーターを指定しないと、pdf2psは大きなファイルを作成する場合があります。
2
Lee

1行のpdf2psオプション(Leeによる)は、実際にpdfサイズを増やしました。ただし、2つのステップの方がうまくいきました。そして、標準の入出力とパイプからのリダイレクトを使用して、単一のものに結合できます。

pdf2ps large.pdf-| ps2pdf-small.pdf

xsaneによって生成されたPDFを18 Moから630 koに削減しました!

リンクは失われますが、現在の例では、それは問題ではありません...そして、望ましい結果を達成する最も簡単な方法でした。

2
E. Curis

Qpdfを使用した場合、ファイルサイズの大幅な削減は見られませんでした。私が見つけた最良の方法は、pdftkが完了した後、ghostscriptを使用してpdfをpostscriptに変換してからpdfに戻すことです。 PHPでは、execを使用します。

$ps = $save_path.'/psfile.ps';
exec('ps2ps2 ' . $pdf . ' ' . $ps);
unlink($pdf);
exec('ps2pdf ' .$ps . ' ' . $pdf);
unlink($ps);

数分前にこれを使用して、490kから71kのpdftk出力を取得しました。

1
Tom