PDF圧縮の全貌 ― ファイルサイズを10%にまで削減する実践ガイド
PDFは「どこでも同じ見た目」を保証する万能フォーマットですが、同時にファイルが大きくなりがちです。社内資料を共有したり、メール添付で送信した際に「サイズが大きくて転送できない」といったトラブルは未経験者には想像しにくいものでした。今回はPDFファイルをサイズを1/10まで圧縮できるテクニックを徹底解説します。数百KBから数MBにまで縮小できる方法を、具体的なツール・手順とともにご紹介します。
1. なぜPDFは大きくなるのか?
PDFは画像、テキスト、フォント、メタデータ、アノテーションなど、多くの要素をひとつのファイルにパッケージします。以下が主な大きさの原因です。
| 要素 | 大きさに与える影響 | 典型的なケース |
|---|---|---|
| 埋め込み画像 | 解像度・圧縮方式により数百KB〜数MB | 写真集、図表 |
| フォント | フォント全体やサブセット化の有無 | ビジネスレポート |
| メタデータ | タグ・コメント・パスワード設定 | 取得情報 |
| アクセシビリティ | 障害者向けタグ | PDF/A |
理解度が高まると圧縮操作も楽に。まずはどの要素がファイルの膨張を引き起こしているかを把握しましょう。
2. 圧縮前に確認すべき3つのポイント
| ステップ | 目的 | 実施ツール |
|---|---|---|
| 1️⃣ ファイル構成を確認 | 画像やフォントの有無、色深度 | Adobe Acrobat > ファイル情報/レイヤー |
| 2️⃣ データの重要度を評価 | 画像の解像度や品質 | 画像編集ソフトでオフライン確認 |
| 3️⃣ 圧縮の目的を定義 | アーカイブ用なのか、メール添付用なのか | 目的に合わせた最適化レベル |
3. 人気ツールとその特徴
| ツール | プラットフォーム | 特徴 |
|---|---|---|
| Adobe Acrobat Pro DC | Windows/Mac | GUIで直感的、詳細設定 |
| Ghostscript | Windows/Mac/Linux | CLI、スクリプト連携 |
| PDFtk | Windows/Mac/Linux | 部分結合/分割 |
| qpdf | Windows/Mac/Linux | 無償、軽量 |
| Smallpdf | Web | 直感的、クラウドで即実行 |
| pdfcompressor.com | Web | 画像自動圧縮 |
| iLovePDF | Web | バッチ処理 |
重点ツール:Ghostscript
高い圧縮率と柔軟性を兼ね備えているため、実際の圧縮コマンドを紹介します。
gs \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=output.pdf \
input.pdf
-
/screen: 72dpi, 150KB程度 -
/ebook: 150dpi, 200KB -
/prepress: 300dpi, 600KB -
/printer: 300dpi, 1-2MB
目的に合わせて設定を切り替えられます。
4. 圧縮時の代表的手法と実践例
4‑1. 画像の再サンプリング・圧縮
| 手法 | 具体例 | 効果 |
|---|---|---|
| 解像度ダウンサンプリング | 300dpi → 150dpi | 50%減 |
| JPEG圧縮 | 高圧縮率 30-40% | 60-70%減 |
| WebP or JPEG2000 | WebP はJPEGより10-20%削減 | さらに小さく |
Photoshop での操作例
- 「ファイル」 > 「別名で保存」
- 「フォーマット」 = PDF
- 「Adobe PDF 設定」で
画質を「Medium」または「Low」 - 画像圧縮設定で JPEG 30% を選択
4‑2. フォントのサブセット化
フォントを完全埋め込みすると、通常 1MB 以上のサイズが増えることがあります。実際に使われている文字だけを埋め込み、サブセット化することで削減できます。
- Adobe Acrobat Pro で「プロパティ」 > 「フォント」 > 「サブセット化する」
- Ghostscript 例:
-dSubsetFonts=true
4‑3. メタデータ・アノテーションの削除
pdftk input.pdf dump_data | grep -v "InfoKey" > clean_info.txt
qpdf input.pdf --output output.pdf --set-info="clean_info.txt"
または、
exiftool -all= -overwrite_original input.pdf
4‑4. アクセシビリティタグ・OCRデータの除去
PDF/A では必須ですが、通常の文書なら不要です。Acrobat の「ツール」>「印刷制御」>「データの削除」にて削除可能。
4‑5. ページレイアウトの軽量化
- 透明度 を最小化
- 余白 をデフォルトに戻す
- ビットマップ の代わりにベクトル化
4‑6. linearization(Web最適化)
長いPDFは最初のページだけを素早く表示できるように linearization を施します。Ghostscript 例:
gs -sDEVICE=pdfwrite -dCompressPages=true -dPreserveEPS=false \
-dPDFSETTINGS=/prepress -dUseFlateCompression=true \
-o linearized.pdf input.pdf
5. 実際の圧縮フロー(例:社内レポート)
-
PDF作成
- Word → PDF(Adobe PDF「標準」設定)
- 画像は 300dpi で保存
-
画像圧縮
- Adobe Acrobat Pro → 「PDF ツール」→「バッチ」を選択
- 画像解像度↓, JPEG圧縮 30%
-
フォントサブセット
- 同上「プロパティ」→「フォント」
-
メタデータ削除
- exiftool で全属性削除
-
線形化
- Ghostscript コマンドを実行
-
最終確認
- Acrobat Pro で「ファイル」→「情報」
- ファイルサイズ ~ 10% へ
結果:300KB → 30KB(約 90% 削減)。
6. バッチ処理で時間短縮
6‑1. スクリプト例
#!/usr/bin/env bash
for input in *.pdf; do
base="${input%.*}"
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile="${base}_compressed.pdf" "$input"
done
- 全ファイルを同時に圧縮
-
-sPDFSETTINGSの変更で品質調整可
6‑2. クラウド連携
- Zapier + Smallpdf API
- Google Drive への自動アップロード
- Slack でファイル共有通知
7. 失敗がちな落とし穴と対策
-
品質を下げすぎて可読性が著しく低下
- まずは
-dPDFSETTINGS=/ebookで試す。
- まずは
-
画像が破損して表示できない
- Ghostscript の
-dDownsampleColorImages=trueを併用
- Ghostscript の
-
フォントエラー
- フォントサブセット化時に「フォントが欠落」エラーが出たら、フォント埋め込みを維持
-
-dSubsetFonts=false
-
PDF/A 互換性が途切れる
- 線形化やメタデータ削除前に必ず「PDF/A チェック」
-
メタデータが大量に残る
-
exiftoolは-all=-で全削除が安全
-
8. まとめ:1/10に縮小するためのチェックリスト
| 項目 | 実行手順 | 備考 |
|---|---|---|
| 1️⃣ 画像圧縮 | 解像度↓ + JPEG 30% | 画像の品質に注意 |
| 2️⃣ フォントサブセット | Acrobat “サブセット化” | フォント数を減らす |
| 3️⃣ メタ削除 | exiftool -all=- |
情報を最小化 |
| 4️⃣ 線形化 | Ghostscript -sPDFSETTINGS=/screen |
Web 最適化 |
| 5️⃣ バッチ処理 | スクリプトで自動化 | 時間短縮 |
| 6️⃣ 品質確認 | PDF/A チェック | 必要に応じて調整 |
このチェックリストを実践すれば、ほぼ確実にファイルサイズを10%相当にまで縮小できます。
PDF の扱いに悩む日々はこれで終わり。是非試してみてください。


コメント