Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Object reference

オブジェクト参照(object reference)は、PDFファイル内の間接オブジェクトへのポインタであり、`n g R`という構文を使用します。

カテゴリ: General PDF Concepts
キーワード: object reference, Object reference

概要

オブジェクト参照(object reference)は、PDFファイル内の間接オブジェクトへのポインタであり、n g Rという構文を使用します。ここで、nはオブジェクト番号、gは世代番号を表します。 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) は、この仕組みをPDFオブジェクトがファイル構造内で相互に参照するための基本的な方法として定義しています。オブジェクト参照により、PDFフォーマットはデータを重複させることなく要素間の複雑な関係を構築でき、PDFの内部リンクシステムの基盤を形成しています。

定義

オブジェクト参照は3つの構成要素から成ります:オブジェクト番号(正の整数)、世代番号(非負の整数)、そしてキーワードRです。例えば、12 0 Rは、オブジェクト番号12、世代番号0の間接オブジェクトを参照します。これは、実際のデータをインラインで含む直接オブジェクト(direct object)や、参照される対象である間接オブジェクト(indirect object)とは異なります。世代番号により、インクリメンタル更新時のオブジェクトの再利用が可能になります。オブジェクトが削除または置換されると世代番号が増加し、ファイルが時間とともに変更されても参照が曖昧にならないことを保証します。

重要性

PDF操作を行う開発者にとって、オブジェクト参照の理解は以下の理由から極めて重要です。第一に、同じオブジェクトを重複なく複数回参照できるため、効率的なメモリ管理が可能になります。第二に、プログラムによるPDF構造のナビゲーションに不可欠です。注釈(annotation)、フォームフィールド、ページコンテンツ、リソースディクショナリなどは、すべてオブジェクト参照を利用して関係性を確立しています。第三に、PDFの解析や生成時に、実際のデータにアクセスするためにはオブジェクト参照を正しく解決する必要があります。参照自体は単なるポインタであり、コンテンツそのものではありません。最後に、PDFの問題をデバッグする際には、ドキュメント構造を理解するためにオブジェクト参照の連鎖を追跡することが頻繁に必要になります。

仕組み

PDFパーサーが42 0 Rのようなオブジェクト参照に遭遇すると、この情報を使用してファイル内の他の場所にある対応する間接オブジェクト定義を特定します。パーサーは通常、相互参照テーブル(cross-reference table、xrefテーブル)または相互参照ストリーム(cross-reference stream)を参照します。これらはオブジェクト番号とファイル内のバイトオフセットのマッピングを維持しています。特定されると、間接オブジェクト定義は42 0 obj ... endobjという形式に従い、実際のデータを含んでいます。オブジェクト参照は、PDFオブジェクトが期待される任意の場所に出現できます。ディクショナリ、配列、またはストリーム内などです。例えば、ページディクショナリには親ページツリーノードを参照する/Parent 3 0 Rや、ページに表示される内容を定義するコンテンツストリームを参照する/Contents 15 0 Rが含まれることがあります。世代番号(更新されたことがないオブジェクトでは通常0)は、インクリメンタル保存時にオブジェクトが置換されると増加し、後方互換性のためにファイルがオブジェクトの複数のバージョンを維持できるようにします。

関連用語

  • 間接オブジェクト(Indirect object) – オブジェクト参照が指し示す実際のオブジェクト定義
  • 直接オブジェクト(Direct object) – 参照ではなくインラインで値が定義されるオブジェクト
  • 相互参照テーブル(Cross-reference table) – オブジェクト番号をファイル位置にマッピングするインデックス構造
  • オブジェクト番号(Object number) – オブジェクト参照の一意識別子コンポーネント
  • 世代番号(Generation number) – オブジェクト更新を追跡するバージョン番号コンポーネント

出典

(N.A.) (2020)
(N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html