PDF圧縮がファイルを小さくする仕組み
このツールが実際に行う処理
PDFの容量は、たいていテキストやベクター図形ではなく、埋め込まれた写真やスキャン画像で決まります。このツールはまさにそこを狙います。pdf-libでドキュメントをたどって埋め込みJPEG画像を見つけ出し、それぞれをcanvas上で低い品質に再エンコードし、必要以上に大きい画像は解像度も落とします。テキスト・フォント・ベクター線はそのまま残るため、圧縮後のページも鮮明に読めて印刷できます。
圧縮の強さは3つのプリセットで決まります。高品質は約82%のJPEG品質で再エンコードし、長辺を約2200pxに制限します。バランスは62%・1600pxまで下げ、最小サイズは45%・1100pxで最も小さい結果を出します。保存時にはオブジェクトストリームでファイルを再構成し、構造上の無駄も削ります。
使いどころ
メールに載せるには重すぎる、容量制限のあるポータルにアップロードしたい、Webフォームに添付したい——そんなときに使います。最も効果が出るのはスキャン文書や画像の多いパンフレットで、そのかさばりこそが再圧縮されるラスターデータそのものだからです。フル解像度のスクリーンショットを貼ってPDF化したスライドも定番の対象です。
200KBのアップロード上限など、厳しい制限の下に必ず収めたい場合は目標サイズモードに切り替えます。固定プリセットではなく品質を二分探索し、入力した数値をまだ下回る範囲で最も高い画質を選び取ります。
具体例
12MBのスキャン契約書を例にします。バランスモードでは、埋め込まれた各JPEGをデコードして最大1600pxでcanvasに描き直し、62%の品質で再エンコードします。画像は大きく縮む一方で重ねられたテキストは判読でき、結果はおおむね2〜4MBに収まります。メタデータを削除を有効にすると、同じ処理の中で作成者・タイトルなどの文書プロパティも出力から消去されます。
注意点と例外
すべてのPDFが小さくなるわけではありません。テキストだけのファイルには再圧縮する画像がないため、容量はほとんど変わりません。これは想定どおりで、失敗ではありません。PNGなどJPEG以外の形式で保存された画像はそのまま残し、CMYKのJPEGはcanvasが色ずれを起こすため意図的にスキップします。パスワード保護されたPDFは先に解除が必要で、50MBという上限は端末上で無理なくデコード・再エンコードできる範囲を表しています。すでに十分最適化されたファイルでは、圧縮後も元とほぼ同じサイズになることがあります。