私は次のコマンドラインを使用してpdftkを使用してpdfを圧縮します
pdftk file1.pdf output file2.pdf compress
私のファイルの重量が減ったのでそれは機能します。
圧縮を変更する[オプション]はありますか???
または、ファイルを圧縮する他の解決策はありますか?一部のグラフィックには多くのポイントがあるため、重いです。たとえば、これらのグラフをjpgに変換して圧縮を適応させる方法はありますか?
私は次のコマンドラインを使用してpdftkを使用してpdfを圧縮します
pdftk file1.pdf output file2.pdf compress
私のファイルの重量が減ったのでそれは機能します。
圧縮を変更する[オプション]はありますか???
または、ファイルを圧縮する他の解決策はありますか?一部のグラフィックには多くのポイントがあるため、重いです。たとえば、これらのグラフをjpgに変換して圧縮を適応させる方法はありますか?
回答:
私は同じ問題を抱えていて、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
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
gs
回答のコマンドは、埋め込まれたJPGの解像度と品質を低下させるため、完全にロスレスではないことに注意してください。しかし、それはロスレスです。convert
コマンドはそれをラスターグラフィックスに変換する一方で、テキストとして保持します。
-dPDFSETTINGS=
を設定すると/ebook
、私にとって非常に優れた出力が得られます。確かに、圧縮されており、いくつかのjpgアーティファクトが表示されていますが、妥当なサイズであれば完全に読み取り可能です。ありがとう!
この手順はかなりうまくいきます
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
試してみる。
tiff2pdf
Zip / 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
それでもファイルサイズが大きすぎる場合は、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マニュアルを参照してください。
nullglobが示唆するようにgpdfを試した後、cups-pdfプリンターを使用するだけで同じ圧縮結果(約900mbファイルから約30mbまで)が得られました。これは、既にドキュメントを表示していて、1つまたは2つのドキュメントのみを圧縮する必要がある場合に、より簡単または推奨される可能性があります。
Ubuntu 12.04では、これをインストールすることができます
sudo apt-get install cups-pdf
インストール後、必ず[ システムツール] > [ 管理] > [ 印刷 ]でチェックインし、[PDF]を右クリックして[有効]に設定してください
デフォルトでは、出力はホームディレクトリのPDFという名前のフォルダーに保存されます。
1行のpdf2psオプション(Leeによる)は、実際にはpdfサイズを大きくしました。ただし、2つのステップの方が優れていました。また、&から標準の入力/出力およびパイプへのリダイレクトを使用して、1つに組み合わせることができます。
pdf2ps large.pdf-| ps2pdf-small.pdf
xsaneによって生成されたPDFを18 Moから630 koに削減しました!
リンクは失われますが、この例では問題ではありません...望ましい結果を達成するための最も簡単な方法でした。
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
)。
mimetype small.pdf
か?
mimetype small.pdf
ですsmall.pdf: application/pdf
。プログラムはサフィックスに応じて自動的にファイルタイプを判別できると思います。
ps2pdf
優れている。
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に取得しました。
同じ問題があり、この機能を使用して個々のページを圧縮した結果、ファイルサイズが元のサイズの1/3まで圧縮されました。
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
選択可能なテキストを多く含むPDFを圧縮する場合は、WindowsでNicePDF Compressorを使用できます。「フレート」オプションを選択します。すべて(cpdf、pdftk、gs)を試した後、1360ページのPDFを500 MBから10 MBに圧縮するのに役立ちました。