COSDictionaryMap
COSDictionaryMapは、Apache PDFBoxのユーティリティクラスで、COS(Carousel Object Structure)ディクショナリオブジェクトをラップし、Java MapインターフェースとしてのアクセスAPIを提供します。
COSDictionaryMapは、Apache PDFBoxのユーティリティクラスで、COS(Carousel Object Structure)ディクショナリオブジェクトをラップし、Java MapインターフェースとしてのアクセスAPIを提供します。COSは、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文書要素の基盤となっています。このクラスを使用することで、Java開発者は、使い慣れたJava Collections APIのメソッドを使用してPDFのディクショナリオブジェクトを操作しながら、基盤となるPDF構造への直接アクセスを維持できます。
COSDictionaryMapは、Apache PDFBoxにおけるブリッジクラスで、COSDictionaryオブジェクトをラップし、Java MapインターフェースとしてのAPIを実装します。これにより、開発者は標準的なJavaのMap操作(put、get、remove、keySetなど)を使用してPDFディクショナリエントリを操作でき、JavaオブジェクトとCOS基本型の間の変換は自動的に処理されます。特定のPDF概念を専用メソッドで表現する高レベルのPDFBoxクラス(PDDocumentやPDPageなど)とは異なり、COSDictionaryMapは生のオブジェクトレベルで動作し、 ( 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 ) で定義されているCarousel Object Structureへの直接アクセスを提供します。これは、PDFBoxの高レベルAPIに専用の便利メソッドが用意されていないディクショナリエントリにアクセスする場合や、カスタムまたは拡張ディクショナリを扱う場合に特に有用です。
PDF文書を扱う開発者にとって、COSDictionaryMapは、PDFBoxの高レベルAPIで完全に抽象化されていないPDF構造を扱う際に不可欠な柔軟性を提供します。これは、Tagged PDF文書 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) のアクセシビリティ構造のような特殊なPDF機能を扱う場合に特に重要です。そのような場合、カスタムディクショナリエントリが必要になることがあります。このクラスは、開発者がJava型とCOS型の間の変換コードを記述する必要をなくし、エラーを減らしてコードの可読性を向上させます。また、正確な構造が事前にわからないPDF文書をプログラムで探索できるため、PDF解析、デバッグ、および標準的なPDF操作を超えたカスタムPDF機能の実装に有用です。
COSDictionaryMapは、COSDictionaryインスタンスをラップし、MapインターフェースのAPI操作を基盤となるCOSオブジェクトに委譲します。開発者がput()やget()メソッドを呼び出すと、このクラスはJavaオブジェクト(String、Integer、Booleanなど)とそれに対応するCOS型(COSName、COSInteger、COSBooleanなど)の間で自動的に変換を行います。keySet()メソッドは、ディクショナリキーを表すCOSNameオブジェクトを返し、これらは操作しやすいように文字列に変換できます。このクラスは、ラップされたCOSDictionaryとの双方向同期を維持するため、MapインターフェースAPIを通じて行われた変更は、基盤となるPDF構造に即座に反映されます。これは、COSレベルでPDFオブジェクトを変更する際に文書の整合性を維持するために重要です。Carousel Object Structureは、 ( 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コンテンツの基盤を形成しているためです。開発者は通常、高レベルのPDFBoxオブジェクトのCOSレベル表現にアクセスするか、PDFストリームから抽出されたCOSDictionaryオブジェクトを直接操作することで、COSDictionaryMapインスタンスを取得します。
- COSDictionary – Carousel Object StructureにおけるPDFディクショナリオブジェクトを表すApache PDFBoxの基盤クラス
- Carousel Object Structure(COS) – すべての文書コンテンツとメタデータを表現するために、PDF文書内部で使用される低レベルオブジェクトモデル
- PDFBox – PDF文書の作成、操作、コンテンツ抽出を行うためのオープンソースJavaライブラリ
- Tagged PDF – アクセシビリティのために読み順序と文書階層を定義する構造マークアップを持つPDF文書 ( 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文書を構成するオブジェクト(ディクショナリ、配列、ストリームなど)の階層構造
- (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
