PDF body
PDF bodyは、ドキュメントを構成する実際のコンテンツオブジェクトを含むPDFファイルのメインセクションです。
PDF bodyは、ドキュメントを構成する実際のコンテンツオブジェクトを含むPDFファイルのメインセクションです。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているように、bodyは、ページ、フォント、画像、グラフィックス、その他のリソースを含む、ドキュメントのすべてのコンテンツを表す一連の間接オブジェクトで構成されています。bodyは、PDFファイル構造において、ヘッダーセクションの後、相互参照テーブルとトレーラーの前に配置されます。
PDF bodyは、PDFファイル構造の中で最大かつ最も複雑なセクションであり、ドキュメントのコンテンツとリソースを定義するすべての間接オブジェクトを含んでいます。単にファイルをPDFとして識別するだけのヘッダーとは異なり、bodyは実際のデータ構造を番号付きオブジェクトとして格納します。body内の各オブジェクトは、一意のオブジェクト番号と世代番号を持ち、他のオブジェクトが間接的に参照できるようになっています。bodyには、辞書、配列、ストリーム(画像やフォント用)、単純なデータ型など、さまざまなオブジェクトタイプを含めることができます。これらのオブジェクトは階層構造で整理されており、通常はドキュメントのオブジェクトツリーのルートとして機能するカタログ辞書から始まります。
PDFの生成や操作に携わる開発者にとって、body構造を理解することは、いくつかの理由から不可欠です。第一に、プログラムでPDFを作成する際には、有効なファイルを生成するためにbody内のオブジェクトを適切に構築し、配列する必要があります。第二に、既存のPDFを解析または変更する際には、テキスト、画像、メタデータなどの特定のコンテンツ要素を見つけて更新するために、bodyのオブジェクト構造をナビゲートする必要があります。第三に、body内のオブジェクトの整理方法は、ファイルサイズと解析パフォーマンスに直接影響します。構造が不適切なbodyは、ファイルの肥大化やレンダリングの遅延を引き起こす可能性があります。最後に、アクセシビリティ機能を実装したり、Tagged PDFを扱ったりする際には、適切なドキュメント構造ツリーとコンテンツマーキングを確立するために、bodyオブジェクトと広範囲にわたってやり取りすることになります。
PDF bodyは、ファイル内に順次書き込まれる番号付き間接オブジェクトのコレクションとして動作します。各オブジェクトは、そのオブジェクト番号と世代番号(通常は0)を含むヘッダー行で始まり、その後にキーワード「obj」、オブジェクトの内容が続き、「endobj」で終わります。例えば、単純なページオブジェクトは「5 0 obj」と番号付けされ、ページの寸法とコンテンツストリームを定義する辞書を含む場合があります。オブジェクトは、「n 0 R」(nはターゲットオブジェクト番号)の形式で間接参照を使用して相互に参照します。bodyの最初のオブジェクトは通常、カタログ辞書であり、トレーラーセクションがドキュメントルートとして参照します。body内のストリームオブジェクト(画像やページ記述などのコンテンツに使用される)は、辞書の後に「stream」キーワード、バイナリまたはエンコードされたデータ、「endstream」キーワードで構成されます。PDFリーダーは、bodyの後に続く相互参照テーブルを使用して、body全体を順次スキャンすることなく、オブジェクト番号によって任意のオブジェクトを素早く見つけることができます。
- Cross-reference table(相互参照テーブル) – PDF body内のオブジェクト番号をバイトオフセットにマッピングするインデックス構造
- Indirect object(間接オブジェクト) – PDF body内の番号付きオブジェクトで、他のオブジェクトから参照可能
- Document catalog(ドキュメントカタログ) – PDF body内のルートオブジェクトで、ドキュメント構造へのエントリーポイントとして機能
- Content stream(コンテンツストリーム) – ページコンテンツを記述するグラフィックス演算子とオペランドを含むbody内のストリームオブジェクト
- Object stream(オブジェクトストリーム) – ファイルサイズを削減するために複数の他のオブジェクトを含むことができる圧縮されたストリームオブジェクト
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
