PDF文書 (.pdf)
ISO 標準Portable Document Format(PDF)は、アプリケーションソフトウェア、ハードウェア、オペレーティングシステムに依存せず、一貫したドキュメント表示を実現するために設計された、広く普及したデジタル文書の標準です。
PDF を JPG に変換
無料のブラウザ内 PDF から JPG へのコンバーター。お使いのデバイスでファイルを即座に変換します。
PDFをオンラインで圧縮
プライベート - ファイルがデバイスの外に出ることはありません
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPDFファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPDFファイルを識別します:
16進数シグネチャ(オフセット0):
25 50 44 46ASCII表現: %PDF
標準化: ISO 32000-1 (2008) / ISO 32000-2 (2020)
技術仕様
| コンテナアーキテクチャ | クロスリファレンステーブルを持つバイナリ/ASCIIハイブリッドオブジェクト階層 |
| 圧縮 | FlateDecode (Deflate)、DCTDecode (JPEG)、CCITT Fax、JBIG2、JPXDecode |
| バイトエンディアン | バイナリオブジェクトストリーム用のビッグエンディアン(ネットワークバイトオーダー) |
| 色空間 | sRGB, Display P3, DeviceCMYK, グレースケール, 特色(パントン) |
| チャンネルと構造 | マルチレイヤーベクター、タイポグラフィ、ラスターストリーム、埋め込みメタデータ |
| 最大寸法 | 200 x 200インチ(UserUnitによりPDF 1.6以降では最大15,000,000インチまで許可) |
| 透過性 | 完全なアルファ透明度、ブレンドモード、不透明度マスク |
| ストリーミングとプログレッシブ | リニアライズドPDF(「ファストウェブビュー」)によりHTTP Rangeリクエストを介したバイトレンジストリーミングが可能 |
技術比較表:PDFと競合製品
| 技術属性 | PDF (現在) | DOCX | EPUB | HTML5 |
|---|---|---|---|---|
| 視覚的レイアウトの忠実度 | レイアウトの保持に役立ちますが、描画結果はビューアーや出力機器によって異なります。 | フローベース:Wordのバージョンやインストールされているフォントによって異なります | リフロー可能なリーダーレイアウト:固定されたタイポグラフィの保証はありません | 流動的なCSSボックスモデル:画面に依存したレンダリング |
| 自己完結性 | フォントや画像を埋め込めますが、内容は文書や作成時の設定によって異なります | 自己完結型XMLコンテナ(通常、システムフォントは埋め込まれません) | 自己完結型ZIPコンテナ(パッケージ化されたXHTML/CSSアセット) | MHTMLなどを介してパッケージ化されない限り、外部のHTTPリソースが必要です |
| 暗号署名 | ISO仕様に組み込まれたネイティブなPAdESおよびX.509暗号署名 | Office XML DSigデジタル署名をサポート | カスタムデジタルコンテナ署名が必要 | Web Crypto APIまたは外部のTLSトランスポート保証が必要 |
| モバイルレスポンシブ対応 | 固定ページキャンバス(小型画面ではズームとパンが必要) | 優れたレスポンシブテキストリフロー | 流動的なモバイル電子書籍閲覧向けに特別に設計 | CSSメディアクエリによるネイティブなレスポンシブレイアウト |
| 標準化 | オープン国際標準(ISO 32000-2:2020) | ECMA-376 / ISO/IEC 29500 | W3C / IDPFオープン標準 | W3Cリビングスタンダード / WHATWG |
一般的な破損モードと16進数リカバリガイド
AcrobatまたはPDFビューアーが「ファイルが破損しており、修復できませんでした」と報告するか、完全に白紙の状態で開きます。
根本原因: ASCIIモードでのFTPまたはHTTP転送により、バイナリのバイトシーケンスが変換され(0x0Aが0x0D 0x0Aに置換された)、クロスリファレンス(xref)テーブルのバイトオフセットが破損しました。
復旧: 最新のPDF修復ユーティリティ(例:qpdf --repairまたはFile2File.app修復)を使用してファイルを線形に再スキャンし、オブジェクト辞書を再構築して、新しいxrefテーブルを再生成します。
PDFビューアーがドキュメントの読み込みに失敗するか、最終ページでクラッシュします。
根本原因: 「%%EOF」マーカーとトレーラー辞書が欠落している、ダウンロードの途切れまたは不完全なディスク書き込み。
復旧: 「tail -c 128 document.pdf」を使用してファイルの末尾を検査します。%%EOFが欠落している場合は、ルートカタログオブジェクトが存在するかどうかを確認し、有効な最大オブジェクト番号を指す人工的なxrefテーブルを追加します。
埋め込みフォントが判読不能な記号、空のブロック(.notdef)、または疑問符としてレンダリングされます。
根本原因: 閲覧しているマシンに存在しないシステムフォントを参照している非埋め込みサブセットフォント、または破損したToUnicode CMapテーブル。
復旧: Ghostscript(gs -o fixed.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true broken.pdf)を使用して不足しているフォントサブセットを再埋め込みするか、テキスト要素をベクター曲線に変換します。
セキュリティ分析とパーサー攻撃ベクトル
PDFはアクティブスクリプト、埋め込みファイル、圧縮オブジェクトストリームなどの機能をサポートしており、リーダーは安全に解析して処理する必要があります。ブラウザーのPDFビューアーは、文書処理を隔離するためにサンドボックスを使う場合があります。
既知の攻撃ベクター
- ドキュメントを開いたときに任意のコードやフィッシングエクスプロイトを実行する埋め込みAcrobat JavaScript(JS API)。
- 外部システムバイナリやシェルスクリプトを実行するように構成された起動アクション(/Launch)。
- レガシーなType 1およびTrueTypeフォントの解析エンジンにおけるフォントレンダリングの脆弱性により、バッファオーバーフローを引き起こします。
- 悪意のあるURIアクション(/URI)またはフォーム送信を介した、サーバーサイドリクエストフォージェリ(SSRF)およびNTLMハッシュ資格情報の窃盗。
防御的ベストプラクティス: Adobe AcrobatのJavaScript実行が有効な状態で、信頼できないPDFを決して開かないでください。Web閲覧の場合は、常にブラウザーのサンドボックス化されたWebAssembly/PDF.jsエンジンでレンダリングするか、信頼できないPDFをサニタイズされたPDF/A-1bドキュメントに変換してください。
歴史的背景とマイルストーン
主なメリット
- 異なるシステム間でページレイアウトを保つよう設計されていますが、フォント、ビューアー、印刷設定によって表示が異なることがあります。
- デジタル暗号署名、墨消しアノテーション、DRMアクセス権限をサポートします。
- ベクター画像、フォント、圧縮ラスターのストリームを含められますが、フォントなどのリソースが常に埋め込まれるわけではありません。
技術的な制限とデメリット
- 固定レイアウトのページキャンバスにより、画面の小さいスマートフォンでの自動的な画面幅に応じたリフローが困難になります。
- 複雑な内部オブジェクトストリーム階層により、コンパクト化や未参照オブジェクトの削除を行わないとファイルサイズが肥大化する可能性があります。
- 埋め込みJavaScriptおよび動的な起動アクション機能により、攻撃対象領域が拡大します。
興味深い技術トリビア
- オリジナルのキャメロット・プロジェクトの論文では、あらゆるアプリケーションからあらゆるディスプレイへ電子的にドキュメントを直接印刷することが構想されていました。
- すべてのPDFファイルは、ファイルの終わりを示すトレーラーである正確な文字列「%%EOF」で終了します。
- 裁判所や公文書館の中には、保存ワークフローでPDF/Aを指定するところがあります。要件は管轄区域や機関によって異なります。
よくある技術的な質問
PDFのページが異なる画面やプリンターで似た見た目になるのはなぜですか?
PDFはページ内容を固定座標で保存するため、レイアウトを保ちやすくなります。ただし、フォント、ビューアー、色管理、プリンター設定によって表示が異なることがあります。
標準PDFとPDF/Aの違いは何ですか?
PDF/A(ISO 19005)は、長期保存用に設計された特殊なサブセットです。JavaScript、外部フォントリンク、暗号化、音声/動画の埋め込み、デバイス依存の色空間など、将来の可読性を損なう可能性のある機能を厳しく禁止しています。すべてのフォントとカラープロファイルを100%埋め込む必要があります。
現代のドキュメントにおけるPDFの圧縮はどのように機能しますか?
PDFは、コンテンツタイプに合わせた複数の個別の圧縮フィルターを使用します。テキスト、ベクターコマンド、フォントメトリックは、FlateDecode(zlib/deflate)を使用して圧縮されます。写真画像にはDCTDecode(JPEG)またはJPXDecode(JPEG 2000)が使用され、2値のモノクロスキャンテキストにはJBIG2またはCCITT Fax Group 4圧縮が使用されます。
ページや画像を削除した後でも、PDFファイルのサイズが大きいままになるのはなぜですか?
PDFを修正する際、多くのエディターは「インクリメンタルアップデート」を実行します。これは、古いオブジェクトを削除せずに新しいオブジェクトストリームと新しいxrefファイルをファイルの末尾に追加し、素早い元に戻す操作を可能にするものです。実際にファイルサイズを縮小するには、未参照オブジェクトをガベージコレクションする最適化パスをドキュメントに実行する必要があります。
関連するPDF変換ペア
PDFの各ページをJPG画像にして、投稿したり、チャットで送ったり、スライドに挿入したりできます。ページは150 dpiでレンダリングされ、複数ページのPDFは、ページごとに1枚のJPGをまとめたZIPになります。
PDFの各ページを、テキスト、表、図を鮮明に表示できるロスレスPNG画像として保存できます。ページは150 dpiでレンダリングされ、複数ページのPDFからは、ページごとに1枚のPNGを含むZIPが作成されます。
PNGのスクリーンショットや図を、ピクセルと透明度を保ったまま1ページのPDFとして共有できます。PDFページは固定画像であり、編集可能なPNGファイルではありません。
JPEG写真を1ページのPDFにして、レビューや印刷に利用できます。元の画像データは埋め込まれますが、PDFには写真編集機能はありません。
文書や承認レビュー用に、WebP画像から1ページのPDFを作成します。ブラウザーが画像として描画するため、WebPデータやアニメーションは保持されません。
SVGのロゴやイラストを1ページのPDFとして共有できます。拡大縮小可能なパスは解像度が固定された画像になるため、拡大してもベクターの細部は復元できません。
静止画のHEIC写真を、共有やフォームへの添付に使える1ページのPDFに変換します。ページには8-bit画像データが使われ、HEICシーケンスやHDRのソースデータは含まれません。
キャンペーンの確認用に、AVIF形式のWeb画像をPDFの1ページに配置します。標準的なキャンバス画像として描画されるため、AVIFの符号化方式やHDRの補助データは失われます。