PDDocumentNameDictionary
PDDocumentNameDictionaryは、Apache PDFBoxのPDModel APIに含まれるJavaクラスで、PDF文書のNames辞書へのプログラムによるアクセスを提供します。
PDDocumentNameDictionaryは、Apache PDFBoxのPDModel APIに含まれるJavaクラスで、PDF文書のNames辞書へのプログラムによるアクセスを提供します。 ( 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 ) で定義されているNames辞書は、PDF文書全体でグローバルに参照する必要がある名前付きリソースと移動先を保存するための集約レジストリとして機能します。このクラスを使用することで、開発者は低レベルのPDF構造を直接操作することなく、埋め込みファイル、JavaScriptアクション、移動先などの名前付きリソースを読み取りおよび変更できます。
PDDocumentNameDictionaryは、PDF文書のカタログにあるオプションのNames辞書エントリを表現する高レベルのラッパークラスです。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 ) において、Names辞書は文字列キーをPDFオブジェクトにマッピングする名前ツリー構造として機能し、間接オブジェクト参照ではなく人間が読める名前でリソースを参照できるようにします。
PDDocumentNameDictionaryクラスは、PDF仕様で定義されているさまざまな名前ツリーに対して型安全なアクセサメソッドを提供します。以下はその例です:
- Dests – ナビゲーション用の名前付き移動先
- AP – アピアランスストリーム
- JavaScript – 文書レベルのJavaScriptアクション
- Pages – 名前付きページ参照
- Templates – 名前付きページテンプレート
- IDS – 構造要素のIDツリー(Tagged PDFのアクセシビリティにとって重要)
- URLS – 統一リソースロケータ
- EmbeddedFiles – 埋め込みファイルストリーム
- AlternatePresentations – 代替プレゼンテーション仕様
- Renditions – マルチメディア用のレンディションオブジェクト
PDFBoxのCOSDictionaryクラスを使用した直接的な辞書操作とは異なり、PDDocumentNameDictionaryは名前ツリー構造の複雑さを処理し、適切なオブジェクトタイプを保証し、PDF仕様への準拠を維持する、より安全で直感的なAPIを提供します。
PDFドキュメントをプログラムで扱う開発者にとって、PDDocumentNameDictionaryは以下のような実用的なシナリオで不可欠です:
文書の組み立てと結合: 複数のPDF文書を結合する際、名前付きリソースを適切に調整して競合を回避する必要があります。このクラスは名前付きリソースを列挙および変更するメソッドを提供し、結合された文書が埋め込みファイル、JavaScriptアクション、移動先への正しい参照を維持することを保証します。
アクセシビリティ準拠: ( 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 ) などの標準に準拠したTagged PDF文書は、構造要素識別子を対応する構造要素にマッピングするためにIDS名前ツリーをよく使用します。PDDocumentNameDictionaryはこのマッピングへのアクセスを提供し、これは支援技術やアクセシビリティ検証ツールにとって重要です。
インタラクティブ機能: ナビゲーション、マルチメディア、または埋め込みファイルを持つPDF文書は、名前付きリソースに大きく依存しています。このクラスは、開発者が基礎となる名前ツリーデータ構造を理解する必要なく、埋め込みファイルストリーム、JavaScriptアクション、名前付き移動先への直接アクセスを提供することで、これらの機能の管理を簡素化します。
文書の検査と検証: PDF文書を準拠性、セキュリティ、またはコンテンツインベントリのために分析するツールは、すべての名前付きリソースを列挙する必要があります。PDDocumentNameDictionaryは、異なるPDFバージョン間でこれらのリソースにアクセスし検査するための標準化された方法を提供します。
PDDocumentNameDictionaryは、 ( 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文書のカタログNamesエントリに対するファサードとして動作します。
Names辞書へのアクセス: 開発者はPDDocumentのカタログを通じてインスタンスを取得します:
PDDocumentCatalog catalog = pdDocument.getDocumentCatalog();
PDDocumentNameDictionary namesDictionary = catalog.getNames();
Names辞書が存在しない場合、変更が行われるとPDFBoxは新しく作成できます。
名前ツリー構造: 内部的には、Names辞書は大量の名前付きエントリを効率的に保存および取得するために名前ツリー構造を使用します。名前ツリーは以下のようなバランスツリー構造です:
- リーフノードには名前と値のペアのソート済み配列が含まれます
- 中間ノードには子ノードへの参照と、各サブツリーの名前範囲を定義する限界エントリが含まれます
PDDocumentNameDictionaryはこのツリーのトラバーサルを自動的に処理し、開発者が単純なキー・バリューのセマンティクスで作業できるようにします。
一般的な操作: このクラスは各標準名前ツリーに対して型付きゲッターメソッドを提供します:
// 埋め込みファイルへのアクセス
PDEmbeddedFilesNameTreeNode embeddedFiles = namesDictionary.getEmbeddedFiles();
// 名前付き移動先へのアクセス
PDDestinationNameTreeNode destinations = namesDictionary.getDests();
// JavaScriptアクションへのアクセス
PDJavascriptNameTreeNode javascript = namesDictionary.getJavaScript();
返される各オブジェクトは、エントリを列挙し、名前で特定の値を取得し、エントリを追加または削除するメソッドを提供する特殊化された名前ツリーノードです。
変更の安全性: このAPIを通じて名前付きリソースを変更する際、PDFBoxは名前ツリー構造の整合性を維持し、エントリが適切にソートされたままであり、ツリーのバランス要件が満たされることを保証します。これにより、PDFビューアで正しく開かない可能性のある不正な形式のPDF文書の作成を防ぎます。
- PDDocumentCatalog – Names辞書を含むPDF文書の論理構造のルートオブジェクト
- PDEmbeddedFilesNameTreeNode – PDF内の埋め込みファイル添付を管理するための特殊化された名前ツリー
- PDDestinationNameTreeNode – 文書ナビゲーションとハイパーリンクで使用される名前付き移動先のための名前ツリー構造
- COSDictionary – PDDocumentNameDictionaryがラップする汎用PDFディクショナリオブジェクトを表すPDFBoxの低レベルクラス
- Tagged PDF – このクラスを通じてアクセス可能なIDS名前ツリーをよく使用する、構造情報を持つ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
- (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
