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

COSObjectable

COSObjectableは、Apache PDFBoxにおける基本的なインターフェースであり、COS(Carousel Object Structure)レベルでのオブジェクトを表現します。

キーワード: cosobjectable, COSObjectable

概要

COSObjectableは、Apache PDFBoxにおける基本的なインターフェースであり、COS(Carousel Object Structure)レベルでのオブジェクトを表現します。COSは、 ( 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ドキュメントの内部構造に直接対応する低レベル層です。このインターフェースにより、Javaオブジェクトを辞書、配列、ストリーム、プリミティブ型などの生のPDF表現との間で相互変換することが可能になります。COSObjectableの理解は、PDFBoxでPDFファイルの基盤となるアーキテクチャを扱う開発者にとって不可欠です。

定義

COSObjectableは、Apache PDFBoxにおけるJavaインターフェースであり、高レベルのPDF抽象化と低レベルのCOSオブジェクトとの橋渡しを行います。Carousel Object Structure(COS)は、PDFBoxによる ( 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ドキュメントの基本的な構成要素を表現します。これには辞書(COSDictionary)、配列(COSArray)、ストリーム(COSStream)、文字列(COSString)、数値(COSNumber)、名前(COSName)、ブール値(COSBoolean)が含まれます。

COSObjectableを実装するクラスは、基盤となるCOS表現を返すgetCOSObject()メソッドを提供する必要があります。これは、生のオブジェクト自体である直接的なCOSクラスとは異なります。COSObjectable実装クラスは通常、より便利なAPIを提供する高レベルのラッパークラスであり、基盤となるCOS構造へのアクセスを維持します。例えば、PDDocumentPDPage、その他のPD*クラスはCOSObjectableを実装し、内部のCOS辞書を公開します。

重要性

Apache PDFBoxを使用する開発者にとって、COSObjectableは以下の理由から重要です。

生のPDF構造へのアクセス: 高レベルAPIが必要な特定の機能を提供しない場合、開発者は基盤となるCOSオブジェクトにアクセスし、 ( 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仕様に従ってPDFコンテンツを直接操作できます。

カスタムPDF機能: カスタムPDF機能の実装や、 ( Citation: N.A., (N.A.). (). 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機能の処理には、COSレベルの辞書や配列の直接操作が必要になることがよくあります。

デバッグとトラブルシューティング: COSObjectableインターフェースを理解することで、開発者は実際のPDF構造を検査できるため、不正な形式や非標準のPDFファイルの問題を診断しやすくなります。

パフォーマンスの最適化: 直接的なCOSアクセスは、複数の抽象化レイヤーを経由するよりも効率的な操作を提供できる場合があります。特に大規模なドキュメントの処理やバッチ操作を実行する際に有効です。

仕組み

COSObjectableインターフェースは、単一のメソッドgetCOSObject()を定義しており、これはPDFBoxのすべてのCOS型のルートクラスであるCOSBaseオブジェクトを返します。典型的なワークフローは以下の通りです。

ラッパーパターン: 高レベルのPDFBoxクラス(「PD」プレフィックス付き)は、開発者に使いやすいAPIを提供するためにCOSオブジェクトをラップします。例えば、PDPageは ( 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 ) で定義されたページのプロパティを含むCOSDictionaryをラップします。

双方向変換: 開発者は抽象化レベル間を移動できます。一般的な操作には高レベルメソッドを使用し、特殊なタスクにはCOSレベルに降りて処理します。PDPageオブジェクトは、そのAPIメソッドを通じて操作することも、getCOSObject()を通じて基盤となるCOSDictionaryを直接変更することもできます。

型階層: 返されたCOSBaseオブジェクトは、期待されるPDF構造に基づいて特定のCOS型(COSDictionary、COSArrayなど)にキャストできます。例えば、 ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ )Tagged PDF構造を扱う際、開発者はCOS表現を通じてStructTreeRoot辞書に直接アクセスする必要がある場合があります。

永続性: COSオブジェクトに加えられた変更は、保存時にPDFドキュメントに反映されます。これは、COS層がPDFファイル形式にシリアライズされる実際のドキュメント構造を表現しているためです。

関連用語

  • COS(Carousel Object Structure) – PDFBoxにおける低レベルのオブジェクトモデルで、PDFドキュメントの内部構造を反映します
  • COSDictionary – PDF辞書を表現するCOSオブジェクトで、PDFオブジェクトとそのプロパティを定義するキーと値のペアを含みます
  • COSArray – PDF配列を表現するCOSオブジェクトで、COSオブジェクトの順序付きコレクションです
  • PDDocument – PDFドキュメント全体を表現する高レベルのPDFBoxクラスで、COSObjectableを実装します
  • COSBase – PDFBoxにおけるすべてのCOSオブジェクトの抽象基底クラスで、getCOSObject()メソッドによって返されます

出典

(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
PDF Association (2023)
(). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
(N.A.) (2014)
(N.A.). (). 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