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

PDF content incremental update

PDF content incremental updateは、で定義されている仕組みで、PDF文書全体を書き換えることなく、PDFファイルを変更することができます。

キーワード: pdf content incremental update, PDF content incremental update

概要

PDF content incremental updateは、 ( 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ファイルを変更することができます。完全なファイル構造を再構築する代わりに、新規または変更されたオブジェクトが既存ファイルの末尾に追加され、更新されたcross-reference tableとtrailerも併せて追加されます。このアプローチにより、元のファイル内容を保持しながら変更内容のみを記録することで、効率的なPDF操作が可能になります。

定義

Incremental updateは、PDF文書における特殊なファイル構造パターンで、既存のPDFファイルを上書きするのではなく、ファイルの末尾に新しい内容を追加することで変更を保存します。PDFにincremental updateが適用されると、元のファイル本体はそのまま残り、新しいオブジェクト、変更されたオブジェクト、新しいcross-referenceセクション、および新しいtrailerが末尾に順次追加されます。各incremental updateは新しいリビジョンレイヤーを作成し、変更されたオブジェクトの以前のバージョンを上書きしつつ、元のファイル構造との後方互換性を維持します。

これは、完全なファイルの書き換え(「最適化して保存」または「フラット化」とも呼ばれます)とは異なります。完全な書き換えでは、PDF全体が最初から再構築されます。Incremental updateは文書のリビジョン履歴を保持し、特に大きな文書の一部のみが変更された場合に、より高速な保存操作を可能にします。 ( 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ファイル形式は、複数の連続したincremental updateをサポートしており、各レイヤーが個別の変更セッションを表す階層構造を作成します。

重要性

PDFの生成、操作、または文書管理システムを扱う開発者にとって、incremental updateを理解することは、いくつかの実用的な理由から非常に重要です。

パフォーマンスの最適化: Incremental updateは、大きなPDF文書に小さな変更を加える際に、ファイルI/O操作と処理時間を大幅に削減します。メガバイトやギガバイトのデータを解析して書き換える代わりに、変更されたオブジェクトのみを書き込めば済みます。

デジタル署名: Incremental updateは、デジタル署名を維持するために不可欠です。PDFにデジタル署名が施されると、署名はファイルの特定のバイト範囲をカバーします。Incremental updateによって行われる後続の変更は、既存の署名を無効化することなく追加できるため、承認ワークフローやカウンターシグネチャが可能になります。

リビジョン追跡: Incremental updateによって作成される階層構造は文書履歴を保持するため、アプリケーションは変更を追跡したり、元に戻す機能を実装したり、文書の進化を経時的に分析したりできます。

フォームフィールドデータ: ユーザーがPDFフォームに入力する際、データは通常incremental updateを通じて保存され、元のフォームテンプレート構造を変更することなくフォームの値を保存できます。

仕組み

Incremental updateの技術的実装は、 ( 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 ) で定義された特定の構造に従います。

ファイル構造: Incremental updateを含むPDFは、元のファイル本体とそれに続く1つ以上の更新セクションで構成されます。各更新セクションには、順に4つのコンポーネントが含まれます:(1)新規および変更されたオブジェクト、(2)これらのオブジェクトを識別するcross-referenceセクションまたはstream、(3)trailer dictionary、(4)cross-referenceセクションを指すstartxrefキーワード。

オブジェクトのバージョン管理: オブジェクトが変更されると、新しいバージョンが更新セクションに同じオブジェクト番号で書き込まれますが、通常はより高い世代番号が付けられます。更新セクション内のcross-reference tableは、オブジェクト番号を新しいバイトオフセットにマッピングし、以前の場所を事実上上書きします。

Cross-referenceチェーン: 各incremental updateのtrailerには、前のcross-referenceセクションのバイトオフセットを指す/Prevエントリが含まれ、リンクチェーンを作成します。PDFリーダーは、最新の更新から後方にこのチェーンをたどり、各オブジェクトの現在のバージョンを特定します。

ファイル終端マーカー: 各incremental updateは独自の%%EOFマーカーで終了し、PDFリーダーは最後の%%EOFから後方に処理して文書の状態を適切に再構築する必要があります。

バイト範囲の保持: デジタル署名された文書の場合、signature dictionaryの/ByteRangeエントリは、署名でカバーされるバイトを指定します。Incremental updateはこの範囲の後にコンテンツを追加するため、署名を有効なままに保ちながら、文書に追加のコンテンツを追加できます。

Incremental updateを実装する開発者は、オブジェクト参照の整合性を慎重に維持し、適切なcross-referenceチェーンを確保し、複数の更新セクションに現れるオブジェクトなどのエッジケースを処理する必要があります。

関連用語

  • Cross-reference table – PDFファイル内でオブジェクト番号をバイト位置にマッピングするインデックス構造
  • PDF object – PDFファイルの基本的なデータ構造(dictionary、stream、array、単純値など)
  • Digital signature – PDF文書の真正性を検証し、改ざんを検出する暗号化メカニズム
  • Linearized PDF – Web配信用に最適化されたファイル編成技術(incremental updateとは互換性がない)
  • PDF trailer – PDFファイルまたは更新セクションの末尾にあるdictionaryで、メタデータとcross-referenceポインタを含む

出典

(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