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

PDF incremental update

PDF incremental updateは、ドキュメント構造全体を書き換えることなくPDFファイルを修正できる仕組みです。

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

概要

PDF incremental updateは、ドキュメント構造全体を書き換えることなくPDFファイルを修正できる仕組みです。 ( 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ファイルの末尾に変更を追加し、元のコンテンツを保持したまま、ドキュメント履歴を維持する階層構造を作成します。このアプローチにより、ファイル全体を再生成するオーバーヘッドなしに、効率的な編集、デジタル署名、フォーム入力操作が可能になります。

定義

PDF incremental updateは、既存のPDFをゼロから書き直すのではなく、ファイルの末尾に修正を追加する特定のファイル構造パターンです。PDFがincremental updateされると、元のbody、cross-reference table、trailerはそのまま維持されます。更新では、新規または修正されたobjectが追加され、その後に新しいcross-referenceセクション(またはcross-reference stream)とtrailerが続き、これらは新しいコンテンツと元のファイルの変更されていない部分の両方を参照します。

これは、完全な書き直し(「linearization」または「optimization」とも呼ばれます)とは異なります。完全な書き直しでは、PDF構造全体が再生成され、すべてのobjectが再番号付けおよび再編成されます。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を含めることができ、それぞれが特定のobjectの以前のバージョンを上書きする層を形成し、他のobjectは変更されないままにします。PDFリーダーはこれらの層を順次処理し、後のバージョンのobjectが以前のものより優先されます。

重要性

PDFの生成と操作を行う開発者にとって、incremental updateを理解することは、いくつかの実践的な理由から不可欠です。

パフォーマンスの最適化: 大きなPDFをincremental updateする場合、変更された部分のみを修正すればよいため、数メガバイトまたはギガバイトのファイルを書き直すのと比較して、I/O操作と処理時間が大幅に削減されます。

デジタル署名の保持: デジタル署名は、署名されたバイトが変更されると無効になります。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は、元のPDFコンテンツとそれに続く1つ以上の更新セクションで構成されます。各更新セクションには4つの部分が含まれます:(1) 新規または修正されたobjectを含むbody、(2) 新規および修正されたobjectのバイトオフセットをリストするcross-referenceセクション(tableまたはstream)、(3) メタデータと以前のcross-referenceセクションへの参照を含むtrailer dictionary、(4) %%EOFマーカー。

Objectのバージョン管理: Objectがincremental updateを通じて修正されると、新しいバージョンは同じobject番号とgeneration番号(1増加)で更新セクションに書き込まれます。PDFリーダーは、cross-referenceセクションを新しいものから古いものへとトラバースし、遭遇した各object番号の最初の出現を使用します。

Cross-referenceチェーン: 各更新のtrailerには、以前のcross-referenceセクションのバイトオフセットを指す/Prevエントリが含まれており、リンクチェーンを作成します。PDFプロセッサはこのチェーンを逆方向にたどって、ドキュメントの現在の状態の完全な全体像を構築します。

バイトオフセットの保持: 元のファイルのコンテンツは決して変更してはなりません。元のcross-reference table内のすべてのバイトオフセットは有効なままです。新しいobjectには、以前は存在しなかったobject番号が割り当てられるか、generation値が増加した番号が再利用されます。

Incremental updateの削除: 開発者は、すべての現在のobject状態を読み取り、incremental update構造のない新しいファイルを書き込むことで、PDFを「フラット化」できます。このプロセスは、「最適化として保存」とよく呼ばれ、履歴バージョンを削除しますが、その過程で署名が無効になる可能性があります。

関連用語

  • Cross-reference table – PDFファイル内のobject番号とバイトオフセットをマッピングするインデックス構造
  • PDF object – PDF文書の基本的なデータ構造で、dictionary、array、stream、プリミティブ値を含む
  • Digital signature – PDFコンテンツの整合性と作成者のアイデンティティを検証する暗号化認証メカニズム
  • Linearized PDF – バイトサービングと高速なWeb表示用に最適化された特別に編成されたPDF構造で、incremental updateと互換性がない
  • PDF trailer – PDFファイルまたは更新セクションの最終セクションで、ドキュメントメタデータと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