COSObjectKey
COSObjectKeyは、Apache PDFBoxにおいて、PDFの低レベルなCarousel Object Structure(COS)レイヤー内のオブジェクトを一意に識別するためのクラスです。
COSObjectKeyは、Apache PDFBoxにおいて、PDFの低レベルなCarousel Object Structure(COS)レイヤー内のオブジェクトを一意に識別するためのクラスです。COSレイヤーは、 ( 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文書構造全体にわたって間接オブジェクトを配置および管理するための参照機構として機能します。
COSObjectKeyは、PDFファイル内の間接オブジェクトを一意に識別する2つの整数値、すなわちオブジェクト番号と世代番号をカプセル化します。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 ) では、間接オブジェクトは「n g obj」という形式でこの番号ペアによって参照されます。ここでnはオブジェクト番号、gは世代番号です。COSObjectKeyクラスは、この識別スキームのJava表現を提供し、PDFBoxがPDFオブジェクトを効率的に追跡、取得、管理できるようにします。実際のPDFオブジェクトの内容を表すCOSObjectクラスやCOSBaseクラスとは異なり、COSObjectKeyは純粋な参照識別子であり、ポインタやハッシュマップのキーに類似しています。
Apache PDFBoxで開発を行う開発者にとって、COSObjectKeyの理解は、オブジェクトの重複排除、相互参照テーブルの管理、文書構造の詳細な解析など、低レベルな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 ) に準拠したアクセシビリティ要件をサポートするTagged PDFを含む複雑な文書を扱う場合、開発者は文書構造全体にわたってオブジェクト参照を追跡する必要があります。COSObjectKeyは、PDFオブジェクトの効率的な検索とキャッシングを可能にし、冗長な解析を防ぎ、文書階層をナビゲートする際のパフォーマンスを向上させます。既存のPDFを修正する際には特に重要です。正しいオブジェクト参照を維持することで、文書の整合性が保証され、破損を防ぐことができます。
COSObjectKeyは、オブジェクト番号(1から始まる正の整数)と世代番号(最新のPDFではほとんどのオブジェクトで通常0)の2つのコンポーネントで構成されます。PDFBoxがPDFファイルを解析する際、これらの識別子ペアをファイル内のバイトオフセットにマッピングする相互参照テーブルを読み取ります。ライブラリは、解析されたオブジェクトをキャッシュする内部ハッシュマップのキーとして機能するCOSObjectKeyインスタンスを作成します。コードがキーによってオブジェクトを要求すると、PDFBoxはまずキャッシュをチェックします。見つからない場合は、キーを使用して相互参照テーブル内のオブジェクトを配置し、適切なファイル位置にシークして、オブジェクトの内容を解析します。世代番号により、PDFは増分更新をサポートできます。つまり、同じオブジェクト番号を維持しながら、文書の新しいバージョンでオブジェクトを置き換えることができます。 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で説明されている構造階層において、これらのキーはコンテンツストリーム、構造要素、その他のPDFコンポーネント間の関係を維持するのに役立ちます。
- COSBase – 実際のPDFコンテンツを表す、PDFBoxにおけるすべてのCOSオブジェクトの抽象基底クラス
- COSObject – COSObjectKeyと、それが参照する実際のCOSBase値を組み合わせたラッパークラス
- COSDictionary – PDF辞書構造を表すCOSオブジェクトタイプで、多くの場合COSObjectKey参照を介してアクセスされる
- Cross-Reference Table(相互参照テーブル) – オブジェクト番号と世代番号をファイル内の位置にマッピングするPDF構造
- Indirect Object(間接オブジェクト) – オブジェクト識別子ペアを使用して他のオブジェクトから参照できる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
