106

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

pdftk file1.pdf output file2.pdf compress

ファイルの重みが減ったときに機能します。

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

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

4

12 に答える 12

130

私は同じ問題を抱えていて、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
于 2011-05-02T12:56:19.843 に答える
38

400ppiのtiff、ほとんどが8ビット、いくつかの24ビットで作成したPDFを、tiff2pdfZip / Deflateで圧縮したものを使用して、PackBits圧縮で圧縮しようとしています。これらのメソッドすべてで私が抱えていた問題の1つは、上記のメソッドのいずれも、AcrobatProXで丹念に手動で作成したブックマーク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
于 2014-09-07T22:22:21.097 に答える
36

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

pdf2ps large.pdf very_large.ps

ps2pdf very_large.ps small.pdf

試してみる。

于 2012-03-25T21:38:46.547 に答える
30

それでもファイルサイズが大きすぎる場合は、ps2pdfを使用して、生成されたpdfファイルの解像度を下げると役立つ場合があります。

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

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

于 2015-02-17T13:28:09.147 に答える
6

pdf2ps large.pdf small.pdf2つのステップではなく、十分です

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

ただし、ps2pdf large.pdf small.pdfより良い選択です。

  • ps2pdfはるかに高速です
  • 追加のパラメータを指定しないpdf2psと、より大きなファイルが生成されることがあります。
于 2018-05-08T15:26:59.653 に答える
4

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

pdf2ps large.pdf-| ps2pdf-small.pdf

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

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

于 2018-07-04T21:01:12.400 に答える
3

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

Ubuntu 12.04では、これを次の方法でインストールできます。

sudo apt-get install cups-pdf

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

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

于 2012-11-07T17:17:59.150 に答える
0

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出力を取得しました。

于 2012-01-24T22:48:22.883 に答える
0

OkularのPDFへの印刷

Keynoteで作成した140MBのPDFを、OkularのPrinttoPDFを使用して2.8Mbに変換しました。テキストはラスターに変換され、ズームインするとピクセルがはっきりと表示されますが、画像はかなり鮮明に保たれ、メッセージングアプリで使用できます。

于 2021-05-03T16:15:03.247 に答える
0

ここにリストされているすべての答えを試した後、グラフィックがたくさんあるpdfで得られた最良の結果は次のとおりです。

pdftocairo input.pdf output.pdf -pdf

これは、GnomeでEvinceを使用してPDFを開き、ファイルに印刷することで発見しました。これにより、私のpdfファイルの他のすべての回答と比較して、ファイル圧縮とファイル品質が向上しました。この方法でファイルに印刷する場合、バックグラウンドでcairoグラフィックが使用されているようです。結果のファイルでpdfinfoを実行すると、次のようになります。

プロデューサー:cairo 1.16.0(https://cairographics.org

于 2021-09-11T12:24:18.307 に答える
-3

同じ問題が発生し、この関数を使用して個々のページを圧縮した結果、ファイルサイズが元のサイズの最大1/3に圧縮されました。

for (int i = 1; i <= theDoc.PageCount; i++)
{
       theDoc.PageNumber = i;
       theDoc.Flatten();
}
于 2012-04-11T15:33:03.767 に答える
-5

選択可能なテキストが多数含まれているPDFを圧縮する場合は、WindowsではNicePDFCompressorを使用できます。[Flate]オプションを選択してください。すべて(cpdf、pdftk、gs)を試した後、最終的に1360ページのPDFを500MBから10MBに圧縮するのに役立ちました。

于 2016-10-03T11:09:26.800 に答える