PDF 圧縮 vs ZIP:実際にファイルサイズを削減するのは?
PDF を ZIP に圧縮してもサイズはほとんど減りません — ほとんどの PDF は内部で既に圧縮されているからです。PDF 圧縮の方がはるかに効果的です。本ページでは、両者がこれほどまでに異なる理由、ZIP がそれでも役立つケース、そして実際に PDF を小さくする方法を説明します。
短い答え
PDF を ZIP にしてもほとんど役立たない理由
PDF は生の文書ではなく、内部ストリーム(ページ記述・画像・フォント)が ZIP と同じ Flate(zlib)アルゴリズムで既に圧縮されているコンテナです。PDF を ZIP に入れるということは、本質的に既に圧縮されたデータをさらに圧縮しようとすることです。圧縮済みデータはエントロピーが高く、2 回目のパスで取り除ける冗長性がほとんど残っていません。
実際、典型的な PDF を ZIP にしても 0〜5% の節約にとどまります。ZIP が扱えるのは、未圧縮のメタデータ数キロバイトと未圧縮の PDF ヘッダーだけです。ファイルの大部分 — 既に圧縮されたストリーム — はそのまま通過します。
仕組み
PDF の内部圧縮の仕組み
現代の PDF は複数の独立した方法でコンテンツを圧縮します:
- Flate ストリーム — ページコンテンツ・フォント・多くのオブジェクトが、ZIP と同じ zlib 圧縮で包まれています。
- JPEG 画像 — 写真は既に圧縮済みの JPEG として格納され、JPEG 自体が非可逆コーデックです。
- オブジェクトストリーム(PDF 1.5+)— 多数の小さな構造オブジェクトが 1 つの圧縮ストリームに詰め込まれます。
- JBIG2 / CCITT — 2 値スキャンテキストは汎用 zlib を凌駕する専用コーデックを使います。
重い処理は PDF 内部で既に済んでいるため、外側の ZIP ラッパーにはほとんど圧縮すべきものが残っていません。各仕組みの詳細はPDF 圧縮の解説 を参照してください。
代替手段
PDF 圧縮が実際に行うこと
PDF 圧縮ツールはコンテナの内部で動作します。オブジェクトストリームを使って PDF を再保存し、未参照オブジェクトを削除し、相互参照テーブルをコンパクト化します。これらは構造的変更であり、オーバーヘッドが PDF 自身のストリーム内部ではなくファイルレベルにあるため、ZIP では到達できない実質的なオーバーヘッドを除去します。
結果:古い PDF に対する 1 回の圧縮パスで 10〜40% 節約できることが多く、同じファイルを ZIP にしてもせいぜい数パーセントの節約です。実ファイルで試すならPDF 圧縮 ツール — ブラウザ内でローカルに動作し、何もアップロードされません。
例外
ZIP がそれでも有用なケース
ZIP が PDF に無用というわけではありません — 単に PDF に対するサイズ削減ツールではないというだけです。ZIP は次の場合に有用です:
- 複数の PDF を 1 つのダウンロード可能なファイルに束ねる。 1 つの添付ファイルという利便性が、無視できるサイズ増加分より重要な場面です。
- フォルダ構造を保持する(例:章がサブフォルダにあるプロジェクト)。
- パスワードで保護する。 ZIP はパスワード暗号化をサポートします(弱いですが広くサポートされています)。PDF には PDF 保護 による独自の暗号化があり、一般的により強力です。
- 未圧縮の PDF を送信する(稀)。PDF が内部圧縮なしで作られた場合、ZIP は有効ですが、現代の PDF でそのように作られるものはほとんどありません。
実践
実際に PDF を小さくする方法
試す
実行できる簡単なテスト
手元にある任意の PDF で両方を試してください:PDF 圧縮 で圧縮し、OS 標準のアーカイバでオリジナルを ZIP にします。3 つのサイズ — オリジナル、圧縮済み、ZIP 化 — を比較します。ほぼすべてのケースで、圧縮 PDF が最小になり、ZIP 化 PDF はオリジナルの数パーセント以内に収まり、両者の差が PDF が抱えていた構造的無駄の実質的な大きさを示します。
圧縮サイズと ZIP サイズがほぼ同じなら、PDF は既に最適化されており、得るべきものはほとんどありません。圧縮サイズがずっと小さければ、ソースのエクスポータが構造を取り残しており — 同じソースから新しい PDF を作るたびに圧縮する価値があります。
関連記事