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

Generation number

Generation numberは、PDFオブジェクトのリビジョン識別子として機能する非負整数であり、Object numberと組み合わせて完全なオブジェクト参照を形成します。

カテゴリ: General PDF Concepts
キーワード: generation number, Generation number

概要

Generation numberは、PDFオブジェクトのリビジョン識別子として機能する非負整数であり、Object numberと組み合わせて完全なオブジェクト参照を形成します ( 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 ) 。Generation numberは元々、PDFファイルに増分更新が行われた際にオブジェクトのバージョンを追跡するために設計されましたが、現代のPDF作成ツールは通常、すべてのオブジェクトのgeneration numberを0に設定します。Object numberと共に、generation numberは間接オブジェクト参照を作成し、PDF構造がドキュメント全体で特定バージョンのオブジェクトを特定し参照できるようにします。

定義

Generation numberは、PDFファイルにおける間接オブジェクト識別子の第2要素であり、“n g obj"という形式でobject numberに続きます。ここでnはobject number、gはgeneration numberです ( 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 ) 。Generation numberは、参照されているオブジェクトのどのバージョンまたは世代を示します。元のPDF仕様設計では、増分更新でオブジェクトが変更された場合、古いバージョンはファイル内に残り、新しいバージョンは増分されたgeneration numberを受け取ります。このメカニズムにより、オブジェクトバージョンの追跡や、特定の時点でのドキュメント状態を保持する必要があるデジタル署名などの機能をサポートできました。

異なるオブジェクトを一意に識別するobject numberとは異なり、generation numberは同じ論理オブジェクトの異なるバージョンを区別します。ただし、実際には、現代のPDFライターは通常、バージョン追跡を伴う増分更新ではなくクロスリファレンステーブル全体を書き換えるため、今日作成されるほとんどのPDFファイルはすべてのオブジェクトでgeneration number 0を使用しています。

重要性

PDFファイルを扱う開発者にとって、generation numberを理解することは、間接オブジェクト参照を正しく解析し操作するために不可欠です。PDFファイルを読み取る際、通常は0であってもgeneration numberを考慮する必要があります。レガシーファイルや特定の専門的なPDF(増分更新やデジタル署名を持つものなど)には、0以外のgeneration numberが含まれている可能性があるためです。Generation numberを適切に処理しないと、オブジェクトの誤ったバージョンを参照したり、ファイル構造を誤って解釈したりする可能性があります。

プログラムでPDFを作成または変更する場合、ほとんどのシナリオでは、すべての新しいオブジェクトに対してgeneration number 0を安全に使用できます。これにより実装が簡素化され、現代のPDF作成の実践に沿うことができます。ただし、既存のファイルに増分更新を追加する場合やデジタル署名されたドキュメントを扱う場合、generation numberを適切に管理することが、ドキュメントの整合性とPDF標準への準拠を維持するために重要になります。

仕組み

PDFファイルでは、間接オブジェクトは"n g obj"という構文で定義されます。ここでnはobject number、gはgeneration numberであり、オブジェクトの内容が続き、“endobj"で閉じられます ( 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 ) 。たとえば、“5 0 obj"はgeneration 0のobject number 5を示します。これらのオブジェクトは、ドキュメント内の他の場所で"n g R"という形式の間接参照を使用して参照されます(例:“5 0 R”)。

クロスリファレンステーブル(新しいPDFではクロスリファレンスストリーム)は、各object numberとgeneration numberのペアを、そのオブジェクトが見つかるファイル内のバイトオフセットにマッピングします。PDFプロセッサが間接参照を解決する必要がある場合、クロスリファレンステーブルでobject numberとgeneration numberを検索して、実際のオブジェクトデータを特定します。

従来の増分更新では、オブジェクトを変更する必要がある場合、元のオブジェクトはそのままの場所に残り、新しいバージョンが増分されたgeneration numberでファイルに追加されます。クロスリファレンステーブルは新しいバージョンを指すように更新されます。オブジェクトが削除されると、クロスリファレンステーブル内のそのエントリは空き(free)としてマークされ、そのgeneration numberは新しいオブジェクトに再利用される可能性があります(generation numberは再び増分されます)。このメカニズムは、効率的なobject numberのリサイクルのための空きエントリのリンクリストを作成しますが、現代のPDFライターはこの複雑さを実装することはほとんどありません。

関連用語

  • Object number – PDFオブジェクトの一意な識別子で、generation numberと共に完全な参照を形成します
  • Indirect object – Object numberとgeneration numberを使用して他のオブジェクトから参照できるPDFオブジェクト
  • Cross-reference table – Object numberとgeneration numberをPDFファイル内の位置にマッピングする構造
  • Incremental update – ファイル全体を書き換えるのではなく、変更を追加することでPDFを変更する方法
  • Object reference – Object numberとgeneration numberを使用して指定される、PDFファイル内の別のオブジェクトへのポインタ

出典

(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