PDF dictionary API
PDF dictionary APIは、PDF文書内のディクショナリオブジェクトの作成、読み取り、変更、操作を可能にするプログラマティックインターフェースです。
PDF dictionary APIは、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 ) で規定されているように、キーと値のペアを格納し、ほぼすべてのPDF要素の構造と動作を定義するPDFの基本的なデータ構造です。これらのAPIは、ページ、注釈、フォント、メタデータなどのPDFオブジェクトのプロパティにアクセスし操作するためのメソッドを提供します。
PDF dictionary APIは、PDFディクショナリオブジェクトの低レベル構文を、アクセス可能なプログラミング構造に抽象化するソフトウェアインターフェースレイヤーです。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 ) において、ディクショナリはオブジェクトのペアを含む連想テーブルであり、最初の要素(キー)は名前オブジェクトで、2番目の要素(値)は別のディクショナリを含む任意のPDFオブジェクトタイプを取ることができます。
PDF dictionary APIは、高レベルの文書変更ではなくディクショナリレベルの直接操作に焦点を当てている点で、一般的なPDF操作ライブラリとは異なります。文書レベルのAPIが「addPage()」のようなメソッドを提供する一方で、dictionary APIは /MediaBox、/Resources、/Annots などのページディクショナリのエントリへの詳細なアクセスを提供します。この低レベルのアクセスにより、開発者は仕様で定義されているPDFオブジェクトモデルを直接操作できるため、高レベルの抽象化ではカバーされないカスタム機能の実装やエッジケースの処理が可能になります。
PDF dictionary APIの理解と使用は、基本的な文書構築を超えた高度なPDF操作を必要とする開発者にとって不可欠です。これらのAPIはPDF構造の正確な制御を可能にし、Tagged PDF構造 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) のようなアクセシビリティ機能の実装、カスタムインタラクティブフォームの作成、PDF/UA ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) などの特殊なPDF標準への準拠を確保する際に必須となります。
大量のPDFを処理する、または特定の文書プロパティを必要とするエンタープライズアプリケーションにとって、dictionary APIは文書全体を再処理することなく必要な部分のみを操作するための効率性と正確性を提供します。また、問題のある要素を定義する正確なディクショナリエントリを調査することでPDFの問題をトラブルシューティングしたり、仕様要件に対してPDF構造を検証する検証ルーチンを実装したりすることも可能にします。
PDF dictionary APIは通常、ディクショナリエントリに対するCRUD操作(作成、読み取り、更新、削除)を中心に構成されたメソッドを提供します。このようなAPIを使用する開発者は、通常次のように操作します:
- ディクショナリオブジェクトへのアクセス:PDFを開き、Catalogディクショナリ、ページディクショナリ、注釈ディクショナリなどの特定のディクショナリに移動します
- エントリの読み取り:
get(key)やgetValue()などのメソッドを使用して、特定のキーに関連付けられた値を取得します - エントリの変更:
put(key, value)やsetEntry()などのメソッドを使用して、キーと値のペアを設定または更新します - 構造の検証:PDF仕様ルールに従って、必須キーの存在を確認し、値のタイプを検証します
ほとんどのPDF dictionary APIは、PDFオブジェクトタイプ(名前、文字列、数値、配列、ストリーム)とネイティブなプログラミング言語タイプ間の型変換を処理します。また、間接オブジェクト参照も管理します。これにより、ディクショナリはオブジェクト番号によってPDFファイル内の他のオブジェクトを参照できます。高度なAPIは、ディクショナリが表すオブジェクトの種類を判定するための /Type エントリへのアクセスや、
(
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
)
でネストされたページディクショナリによって定義されるページツリー構造のトラバースなど、一般的なディクショナリパターンのための便利なメソッドを提供する場合があります。
- PDFオブジェクトモデル – PDF文書を構成するオブジェクト(ディクショナリ、配列、ストリームなど)の階層構造
- 間接オブジェクト – 複数のディクショナリから参照できる番号付きPDFオブジェクトで、オブジェクトの再利用と相互参照を可能にします
- PDF catalogディクショナリ – すべての主要な文書コンポーネントへの参照を含むPDF文書のルートディクショナリ
- Streamディクショナリ – コンテンツとリソースに使用される関連バイナリデータストリームのプロパティを定義する特殊なディクショナリ
- Tagged PDF構造 – アクセシビリティとコンテンツの再利用のための文書構造を定義するためにディクショナリを使用する階層フレームワーク
- (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
- PDF Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
