PDFを小さくする方法:画像圧縮・テキスト最適化でサイズを削減する徹底ガイド

PDFを小さくする方法

導入

デジタル情報の配信は「容量」がもたらす制約を無視できません。特にPDFは、文書全体を画像化することなく、テキスト・画像・フォントなどを含む高度な構造を持つため、ファイルサイズが膨らみやすいです。
しかし、メール添付に限らず、クラウド同期、Web配信、印刷コストまで影響を与える大きな問題です。
この記事では、画像圧縮テキスト・構造の最適化に焦点を当て、実際にPDFを数十%~数割に圧縮する具体的手順とベストプラクティスを紹介します。


1. PDFサイズが大きくなる主因

項目 内容 典型的な重さ
画像 元画像の解像度・色情域(RGB4Kなど) 5 % – 80 %
フォント 埋め込む全フォント、アウトライン化 1 % – 10 %
メタ情報 作成者・タグ付け・カスタム属性 0.1 % – 1 %
添付ファイル PDF内にバイナリ添付 5 % – 30 %
未使用オブジェクト 生成後削除されないレイヤーやトラッシュ 0.5 % – 5 %

画像ファイルの圧縮は最も効果的ですが、テキストやフォントに対しても軽量化の余地があります。


2. 画像圧縮の基本戦略

  1. 解像度の見直し

    • 画面上で閲覧するだけなら 150 dpi、印刷なら 300 dpiが標準。
    • 「画像を表示」レベルで低解像度の画像を埋め込むと、圧縮率が飛躍的に上がります。
  2. カラーモードとフォーマット

    • RGB → CMYK → グレースケールへの変換で色数を削減。
    • 適切なフォーマット選択:
      • 写真はJPEG(有損)またはWebP。
      • ドローイングや図はPNG(可逆)あるいはJPEG2000。
  3. 画像の前処理

    • 画像編集ソフトでの最適化

      • Photoshop: Image > Image Sizeで解像度を調整し、Save for Webで圧縮。
      • GIMP: File > Export AsJPEGで品質を45–70%に設定。
    • バッチ処理

      • TinyPNG API、ImageMagick convert -quality 60 file.png file.jpg などを使い、複数ファイルを一斉圧縮。
  4. 画像重複の検出

    • 同じ画像を複数ページで使用していないか、pdfimagespdftk で抽出して確認。
    • 重複画像は一度だけ埋め込み、リンクで再利用する方法(PDF 1.7 の XObject)。

3. PDF作成時の画像処理フロー

ステップ ツール コマンド例
1. 画像解像度調整 ImageMagick mogrify -resize 1500x -quality 70 -format jpg *.png
2. PDF生成 LaTeX / LibreOffice pdflatex --shell-escape book.tex
3. 画像埋め込み最適化 Ghostscript gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -sOutputFile=out.pdf in.pdf

ポイント:Ghostscript の -dPDFSETTINGS は事前に画像を圧縮せず、内部で再圧縮する。/ebook は 150 dpi、/screen は 72 dpi の設定です。


4. フォント最適化

  1. 埋め込み最小化

    • TrueType/OpenType フォントは全グリフを埋め込まなくても大きいですが、LaTeX では \usepackage{fontspec}[Path=../fonts/]-subset オプションで使用した文字だけを埋め込む。
  2. フォント結合

    • pdf_font_merge コマンドで同一フォントの重複オブジェクトを統合。
  3. フォント置換

    • サンセリフ (Arial、Helvetica) とサンセリフ (Liberation Sans、Arial) は可読性を保ちつつ、軽量化に優れています。

5. テキストと構造の最適化

  1. コンテンツストリームの再圧縮

    • qpdf --object-streams=disable --recompress-fonts --compress-streams on a.pdf b.pdf
  2. 不要なオブジェクト削除

    • PDFのアノテーション、ブックマーク、添付ファイル、レイヤーの無意味な部分は pdfclean で除去。
  3. ページネタ

    • 複数ページで同じレイアウトを使っている場合は、pdfnup などで再利用できる構造を作る。

6. 実践で使えるツール・スクリプト

ツール 主な機能 使い方
Ghostscript PDF再圧縮、フォント埋め込み削減 gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -o out.pdf in.pdf
qpdf ストリーム圧縮、PDFクリーンアップ qpdf --object-streams=disable --recompress-fonts --compress-streams on a.pdf b.pdf
pdftk PDF結合・分割・オブジェクト削除 pdftk in.pdf cat output stripped.pdf
pdfimages 画像抽出・再圧縮 pdfimages -j in.pdf prefix
ImageMagick 画像編集・コマンドラインバッチ mogrify -resize 1500x -quality 75 -format jpg *.png
Adobe Acrobat Pro PDFオプティマイザー GUI ファイル > プロパティ > PDFオプティマイザー
オンラインサービス Smallpdf, ILovePDF, PDF Compressor ウェブサイトからドラッグ&ドロップで圧縮

Tip:最適化前後のファイルサイズと表示品質を常に比較して、必要最低限の圧縮レベルを決めるのがベストです。


7. ワークフロー例:LaTeX で作成した PDF を 10分で圧縮

# 1. 画像を一括で 150dpi JPEG に変換
mogrify -resize 1500x -quality 70 -format jpg *.png

# 2. PDF を Ghostscript で圧縮
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dCompatibilityLevel=1.5 -dEmbedAllFonts=true -dSubsetFonts=true -sOutputFile=compressed.pdf document.pdf

# 3. テキストストリーム再圧縮&オブジェクト整理
qpdf --object-streams=disable --recompress-fonts --compress-streams on compressed.pdf final.pdf

このスクリプトは「画像の前処理+Ghostscript+qpdf」の3段階でほぼ 2 倍〜5 倍のサイズ削減を実現します。


8. よくある質問と対策

質問 回答
高解像度画像が必要な場合 画像を埋め込む前に圧縮用画像(低解像度)を作成し、拡大表示は「ズーム」で行うサイトにリンクする。
埋め込んだフォントが正しく表示されない フォントサブセットをオフにして完全に埋め込むか、Web Open Font Format (WOFF2) で埋め込み。
PDF/A 1b の互換性が必要 gs -sDEVICE=pdfwrite -dPDFA=1 -dPDFACompatibilityPolicy=1 -o pdfa1b.pdf a.pdf
添付ファイルも削除したい pdfdetach -s ALL -o out.pdf in.pdf で全添付ファイルを取り除く。
オンラインツールだけで十分? 簡易圧縮は OK ですが、機密情報が含まれる場合はローカルで処理するほうが安全です。

9. 失敗しやすいポイントと防止策

  • 画像を過度に圧縮 → 色や線がぼやける。

    • 画像品質は20% のノイズ追加で確認。
  • フォントサブセット解除 → フォントサイズが増える。

    • --subset オプションを使いながら --recompress-fonts で圧縮。
  • 非表示オブジェクト削除忘れ → ファイルサイズが 5% も増える。

    • qpdf --filter で無効領域を除外。

10. まとめ

  1. 画像が最大の占有率 → 解像度・カラーモード・フォーマットを見直す。
  2. フォントや構造を精査 → サブセット化と不要オブジェクト削除。
  3. 圧縮ツールを組み合わせる → Ghostscript の PDFSETTINGS, qpdf, pdftk で再圧縮。
  4. 品質とサイズのバランスを検証 → 可視化ツールで差分確認。

PDF は「見た目を保つための万能パッケージ」ですが、適切に最適化すれば、数十MB だったものを 1–3 MB 程度に短縮できます。
これでメールでの送信、クラウド共有、Web掲載どこでも、ファイルサイズの壁をしのいでスムーズに配布が可能です。ぜひ今回紹介したフローを試し、高速で軽量なPDFを実現してください!

コメント