pdftk圧縮オプション


93

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

pdftk file1.pdf output file2.pdf compress

私のファイルの重量が減ったのでそれは機能します。

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

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


1
私の経験から、それはあなたのpdfの中に何が入っているかに依存します。たとえば、多数のドットがあるグラフの場合、最良の解決策は、グラフをpngに変換し、このpngをpdfに含めることです。
RockScience 2012年

回答:


122

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

  • ピクセル化(非可逆):

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

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

編集:私は(ロスレス圧縮のための)別のオプションを見つけました、それは厄介なgsコマンドを回避します。qpdfは、PDF(圧縮/解凍、暗号化/復号)を変換する優れたツールであり、gsコマンドよりもはるかに高速です。

qpdf --linearize input.pdf output.pdf

3
驚くばかり。gsは私のために働き、4MBファイルを339Kに変換しました。品質の低下がありましたが、それは私の目的を十分に果たしました。
Sridhar Sarnobat、2012年

27
あなたはより良い品質のために、「プリンタ」PDF設定を使用することができますgs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
imriss

10
品質(したがってサイズ)を調整するには、PDFSETTINGSの値を変更します。参照してくださいghostscript.com/doc/current/Ps2pdf.htm#Options
1in9ui5t

6
gs回答のコマンドは、埋め込まれたJPGの解像度と品質を低下させるため、完全にロスレスではないことに注意してください。しかし、それはロスレスです。convertコマンドはそれをラスターグラフィックスに変換する一方で、テキストとして保持します。
タニアス

13
オプション-dPDFSETTINGS=を設定すると/ebook、私にとって非常に優れた出力が得られます。確かに、圧縮されており、いくつかのjpgアーティファクトが表示されていますが、妥当なサイズであれば完全に読み取り可能です。ありがとう!
ジョエル

35

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

pdf2ps large.pdf very_large.ps

ps2pdf very_large.ps small.pdf

試してみる。


8
これは一般的な解決策ではありません。多くの場合、結果のpdfは大きくなります。
ロツコフ2012

4
これは、私が言及したすべての解決策の中で最もうまくいきました。いくつかの大きな画像は、23MBから1.4MBに減少しましたが、品質の損失ははるかに少なくなっています。
AerandiR 2013

1
@rotskoffさまざまな種類のドキュメントがあるため、おそらく一般的な解決策はありません。しかし、私はあなたの要点を理解しています。私たちにとって何が最もうまく機能するかをソフトウェアで判断できるといいですね。
tiktak 2013

おかげで、これは私にとってはうまくいきましたが、qpdfとgsは出力ファイルのサイズを縮小しませんでした。
セバスチャン2014年

1
前述のように、ここで、このメソッドへの別の欠点は、文書内のURLリンクを壊すということです。
ptomato 2014

29

tiff2pdfZip / Deflateで圧縮された圧縮を使用して、PackBits圧縮で400ppiのtiff、ほとんどは8ビット、数は24ビットで作成したPDFを圧縮しようとしています。これらすべての方法で私が抱えていた1つの問題:上記のどの方法でも、Acrobat Pro Xで手作業で作成したブックマークTOCが保持されませんebookでしたgs。の推奨設定すらありません。確かに、TOCをそのままにしてオリジナルのコピーを開いて実行することはできましたReplace pagesが、残念ながら、これらの方法のいずれも、最初から満足のいく仕事をしていませんでした。サイズを大幅に縮小して品質が許容できないほどピクセル化されたか、サイズがまったく縮小されず、品質が低下したにもかかわらず、実際にはサイズが増加したかのいずれかです。

pdftk compress

no change in size
bookmarks TOC are gone

gs screen

takes a ridiculously long time and 100% CPU
errors:
    sfopen: gs_parse_file_name failed.                                 ? 
    | ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->10.2MB hideously pixellated
bookmarks TOC are gone

gs printer

takes a ridiculously long time and 100% CPU
no errors
74.8MB-->66.1MB
light blue background on pages 1-4
bookmarks TOC are gone

gs ebook

errors:
    sfopen: gs_parse_file_name failed.
      ./base/gsicc_manage.c:1050: gsicc_open_search(): Could not find default_rgb.ic 
    | ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->32.2MB
badly pixellated
bookmarks TOC are gone

qpdf --linearize

very fast, a few seconds
no size change
bookmarks TOC are gone

pdf2ps

took very long time
output_pdf2ps.ps 74.8MB-->331.6MB

ps2pdf

pretty fast
74.8MB-->79MB
very slightly degraded with sl. bluish background
bookmarks TOC are gone

1
これは非常に貴重な調査です(ありがとうございます)。しかし、私はしばらくの間、反対投票について考えた回答ではありません。
ndemou

3
どうして答えないの?
hmj6jmh 2017年

21

それでもファイルサイズが大きすぎる場合は、ps2pdfを使用して、生成されたpdfファイルの解像度をダウンスケールすることができます。

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

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


ヒントをありがとう。-dPDFSETTINGSを使用すると、スキャンしたPDFのサイズを縮小できます
eshwar

1
ありがとうございました。みんなのユースケースに一般的な解決策があるとは思いませんが、私はこのスレッドでほとんどすべての解決策を試しましたが、これが私のために働いた唯一のものです!!! dColorImageResolutionパラメータを「調整」できることが重要でした-この政府のサイトがドキュメントを受け入れるのに十分な大きさのドキュメントサイズを取得する必要がありましたが、判読できる大きさでした。サムおじさん、ありがとうございました:)
Michael Klear

3

nullglobが示唆するようにgpdfを試した後、cups-pdfプリンターを使用するだけで同じ圧縮結果(約900mbファイルから約30mbまで)が得られました。これは、既にドキュメントを表示していて、1つまたは2つのドキュメントのみを圧縮する必要がある場合に、より簡単または推奨される可能性があります。

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

sudo apt-get install cups-pdf

インストール後、必ず[ システムツール] > [ 管理] > [ 印刷 ]でチェックインし、[PDF]を右クリックして[有効]に設定してください

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


3

1行のpdf2psオプション(Leeによる)は、実際にはpdfサイズを大きくしました。ただし、2つのステップの方が優れていました。また、&から標準の入力/出力およびパイプへのリダイレクトを使用して、1つに組み合わせることができます。

pdf2ps large.pdf-| ps2pdf-small.pdf

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

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


ps2pdf代わりに試すことができます。@ Leeの回答に対する私のコメントを参照しください。
myrdd

2

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と、大きなファイルが生成されることがあります。

このオプションはどこで見つけましたか?最近のバージョンの機能ですか?うまくいきませんでした。私が出力ファイルに名前を付けたにもかかわらずout.pdf、それはPSファイルになりました(mimetype out.pdfと言いますout.pdf: application/postscript)。
myrdd 2018年

私の最新バージョンは9.xxです。わからない
リー

私は9.25であるdebian安定(「ストレッチ」)パッケージバージョンを使用しています。次のように入力して、PDFファイルがあるかどうかを確認できますmimetype small.pdfか?
myrdd 2018年

の出力はmimetype small.pdfですsmall.pdf: application/pdf。プログラムはサフィックスに応じて自動的にファイルタイプを判別できると思います。
リー

1
@myrddええ、私はテストを行いました。ps2pdf優れている。
リー

1

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);

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


PHPは完全に不要な複雑さを追加し、この回答の適用範囲を狭めます
ndemou

-2

同じ問題があり、この機能を使用して個々のページを圧縮した結果、ファイルサイズが元のサイズの1/3まで圧縮されました。

for (int i = 1; i <= theDoc.PageCount; i++)
{
       theDoc.PageNumber = i;
       theDoc.Flatten();
}

あなたはpdftkのC ++ライブラリを使用していますか?
RockScience

-2

選択可能なテキストを多く含むPDFを圧縮する場合は、WindowsでNicePDF Compressorを使用できます。「フレート」オプションを選択します。すべて(cpdf、pdftk、gs)を試した後、1360ページのPDFを500 MBから10 MBに圧縮するのに役立ちました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.