PDF でフォントを埋め込むと、印刷時の文字化けやレイアウト崩れを防ぎつつ、複数人で共有したときも安心です。しかし「埋め込みすべて」=「ファイルサイズが爆増」と思い込んでいる方も多いでしょう。
ここでは、印刷品質を維持しながら、ファイルサイズと相互運用性を最適化するための実践的な手順をまとめます。
PDF フォント埋め込みを初めて扱う方も、既に実務で使っている方も、ぜひご覧ください。
PDF とフォント埋め込みの重要性
- 一貫した印刷品質
文字が別のフォントに置き換えられると、余白や行間が狂い、レイアウトが崩れます。 - ポータビリティの確保
受信側が同じフォントをインストールしていなくても、PDF 内に埋め込まれていれば問題ありません。 - 著作権とライセンス
フォントによっては埋め込みに制限があります。埋め込み前にライセンスを確認し、安全に行います。
フォント埋め込みの種類
| 埋め込み方式 | 説明 | 代表的な使用ケース |
|---|---|---|
| 埋め込み(Fully Embedded) | フォントファイル全体を PDF に組み込む | プロフェッショナル印刷、デザイン資料 |
| サブセット埋め込み(Subset Embedded) | 文書で実際に使用した文字だけを埋め込む | 文書の最小化、Web 配信 |
| 埋め込みなし(Not Embedded) | フォントは残り、PDF は代替フォントに依存 | 送信データが最小、受信側にフォントが必須 |
サブセット埋め込みは「ファイルサイズと品質のバランス」が優れているので、この記事では主にサブセット埋め込みを中心に扱います。
フォント埋め込みツール:おすすめの選択肢
| ツール | 特徴 | 代表的なコマンド / GUI |
|---|---|---|
| Adobe Acrobat Pro DC | 業界標準、GUI 操作で直感的 | 「ファイル」→「プロパティ」→「フォント」タブ |
| Ghostscript | CLI でバッチ処理が可能 | gs -sDEVICE=pdfwrite … |
| qpdf | 軽量かつ高速、サブセット機能あり | qpdf --embed-filters font=subset … |
| PDFBox (Java) | カスタム処理が書ける | PdfCopy で CopyMode.REPLACE |
| LibreOffice | コマンドラインで PDF 出力可能 | --impress --headless |
| LaTeX(XeLaTeX / LuaLaTeX) | 高品質な組版 | \usepackage{fontspec} 設定 |
多くの業務では Adobe Acrobat Pro DC が“安定&正確”ですが、CLI で自動化したい場合は Ghostscript と qpdf の組み合わせが最強です。
具体的手順(Adobe Acrobat Pro DC を例)
- PDF を開く
Acrobat で対象ファイルを開きます。 - フォント情報確認
「ファイル」→「プロパティ」→「フォント」タブを選択。埋め込まれたフォントが「埋め込み済み」と表示されるか確認。 - 埋め込みの設定
→ 「ファイル」→「印刷」→「プリンタ」→「Adobe PDF」→「プリンタ設定」
「高品質印刷」または「プロフェッショナル印刷」を選択。 - サブセットの使用
「PDF/A-1b」保存時に「サブセットフォントを使用」にチェック。 - ファイルサイズを確認
「ファイル」→「プロパティ」→「概要」でサイズを確認。 - 保存
※ 元ファイルを上書きしないよう「別名で保存」する習慣を。
ポイント
- フォントのライセンスが「埋め込み不可」の場合、保存時にエラーになります。
- PDF/A 形式に変換すると自動でサブセット化され、高い互換性が得られます。
Ghostscript での CLI 手順
gs -o output.pdf \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.7 \
-dPDFSETTINGS=/prepress \
-dSubsetFonts=true \
-dEmbedAllFonts=true \
-dColorConversionStrategy=/CMYK \
-dDetectDuplicateImages=true \
input.pdf
-dSubsetFonts=true:サブセット埋め込み-dEmbedAllFonts=true:フォントをすべて埋め込む場合はfalseに変更-dPDFSETTINGS=/prepress:印刷用高品質設定
ビルド自動化
Makefile に上記コマンドを組み込めれば、CI で PDF を自動生成できます。
QPDF で高速サブセット埋め込み
qpdf input.pdf --embed-filters font=subset --output output.pdf
- QPDF はサブセット埋め込みを高速に行い、不要なリソースも自動削除します。
- 既存 PDF を「クリーンアップ」したい場合は
--recompressオプションを追加。
qpdf --linearize input.pdf --output output_linear.pdf
Linearization(オープンファイル化)で、オンライン閲覧時に最初のページだけを先にロードでき、ユーザー体験を向上。
LaTeX で印刷向け PDF を作る
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\setmainfont[Path=fonts/,UprightFont=*.ttf]{CustomFont}
\usepackage{graphicx}
\begin{document}
Hello, 世界!
\end{document}
- XeLaTeX / LuaLaTeX で PDF を生成すると、
fontspecが自動的にサブセット化します。 -shell-escapeを付けてdvips | ps2pdfで PDF/A‑1b 変換も可能です。
ファイルサイズの最適化テクニック
| 手法 | 具体例 | 効果 |
|---|---|---|
| 画像圧縮 | -dPDFSETTINGS=/ebook |
画像が 50% くらい小さくなる |
| 不要オブジェクト削除 | qpdf --reduce-images |
画像のみ圧縮、テキストはそのまま |
| フォントサブセット | Ghostscript の -dSubsetFonts=true |
フォントサイズを数メガバイト削減 |
| 透明度の単純化 | -dColorConversionStrategy=/Gray |
画像の色深度を下げる |
| PDF/A 変換 | Acrobat “PDF/A-1b” | 互換性が上がり、フォント埋め込みが必須になる |
注意点
- 高度な画像圧縮は印刷時に解像度が落ちます。 300 dpi 推奨。
- PDF/A はタイムスタンプやメタデータも含むので、サイズが増えることがあります。
互換性とWebフォントの注意点
| 事項 | 詳細 |
|---|---|
| フォントファイル形式 | OTF/TTF は広くサポート。 WOFF2 は Web 専用で PDF に直接埋め込めない。 |
| ライセンス | 商用フォントの場合、埋め込み権が付いていないことが多い。埋め込み前にベンダーに確認。 |
| Unicode対応 | 特殊文字(絵文字等)はサブセット化時に除外されると表示崩れ。必ず「すべて使用文字を含める」設定を確認。 |
| PDF リーダー | 古いバージョン(Acrobat 8 以前)は PDF 1.5 までしか対応していない。 変換時に -dCompatibilityLevel=1.5 を指定すると安全。 |
埋め込み確認とトラブルシューティング
- フォント情報を確認
pdfinfo -font(Poppler)
例:$ pdfinfo -font file.pdf | grep "Font" - 印刷プレビューでの文字化け確認
一度印刷プレビューから PDF を作成し、文字化けがないか確認。 - フォントが抜けている場合
- Acrobat の「プロパティ」→「フォント」タブで「埋め込まれていない」と表示される場合は、元ファイルにフォントが埋め込まれていない可能性。
- PDF/A 変換で「埋め込み失敗」時は、フォントの再埋め込みを試みます。
- サイズが想定より大きい
- 画像が未圧縮: 画像編集ソフトで DPI を 300 に設定して再エンコード。
- フォントサブセット化が無効: CLI オプションを再確認。
- 相互互換性に問題
- PDF 1.4 以降の仕様に合わせて保存。
- 受信側で PDF/A ビューワーを使用すると確実。
まとめ
- フォント埋め込みは文書の見栄えと相互運用性を保証する鍵です。
- サブセット埋め込みが最適のバランス(質 ≈ サイズ)と、多くのツール(Adobe Acrobat, Ghostscript, qpdf, LaTeX)でサポートされます。
- ファイルサイズ最適化は画像圧縮と不要オブジェクト削除を組み合わせることで、数 MB で済ませられることが多いです。
- ライセンスは埋め込み前に必ずチェックし、違法コピーを防止します。
- 互換性を高めるため、PDF 1.4 以前のレガシーリーダーへの配慮は忘れずに。
これで、印刷品質を損なうことなく、ファイルサイズも抑えつつ、相互運用性を最大化した PDF を作成できるはずです。
ぜひ、実際に自分のプロジェクトで試し、最適設定を見つけてください。


コメント