COSBase
COSBaseは、Apache PDFBoxにおける抽象基底クラスで、PDF仕様で定義されているCarousel Object Structure(COS)の低レベルオブジェクトを表現します。
COSBaseは、Apache PDFBoxにおける抽象基底クラスで、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 ) で定義されているCarousel Object Structure(COS)の低レベルオブジェクトを表現します。このクラスは、PDFBoxにおけるすべてのPDFプリミティブオブジェクトおよび複合オブジェクトの基礎となり、PDF文書を構成する生のデータ構造をJavaで表現します。オブジェクトレベルでPDF操作を行う開発者にとって、COSBaseの理解は不可欠です。
COSBaseは、Apache PDFBoxライブラリにおける抽象Javaクラスで、すべてのCOS(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 ) で定義されているCOSモデルは、PDF文書の最も基本的なレベルにおける基礎構造を表します。COSBaseには、COSDictionary(辞書オブジェクト)、COSArray(配列)、COSStream(ストリームオブジェクト)、COSString(テキスト文字列)、COSIntegerおよびCOSFloat(数値)、COSName(名前オブジェクト)、COSBoolean(真偽値)、COSNull(nullオブジェクト)などの具象サブクラスがあります。
PDDocumentやPDPageなどの開発者にとって使いやすい抽象化を提供する高レベルのPDFBoxクラスとは異なり、COSBaseとそのサブクラスは生のPDF構文レベルで動作します。つまり、PDF仕様で記述されているオブジェクトタイプと構造を直接反映しているため、Tagged PDFコンテンツの作成やカスタムPDF機能の実装など、PDF文書構造の正確な制御を必要とするタスクに不可欠です。
Apache PDFBoxで作業する開発者にとって、COSBaseは基盤となるPDFオブジェクト構造への直接アクセスを提供するため、極めて重要です。この低レベルアクセスは、特に以下の場合に重要となります:
- PDF/UA-1 ( 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文書の作成または変更で、文書構造の正確な制御が必要な場合
- PDFBoxの高レベルAPIで公開されていないカスタムPDF機能の実装
- 生のオブジェクトデータを調査してPDF構造の問題をデバッグする場合
- オブジェクトの関係を直接操作してPDF文書サイズを最適化する場合
- 辞書エントリ、ストリームデータ、配列要素の操作を必要とするPDF機能を扱う場合
COSBaseを理解することで、開発者はPDFBoxの高レベルAPIが提供する便利なメソッドを超えて、仕様レベルでPDF文書を直接操作できるようになります。
COSBaseは、 ( 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がPDFファイルを読み込むと、文書構造を解析し、ファイル内の各オブジェクトに対応するCOSBaseサブクラスのインスタンスを作成します。これらのオブジェクトは相互に参照を保持し、完全な文書構造を表すオブジェクトグラフを形成します。
このクラスは、すべてのCOSオブジェクトが共有する基本的なメソッドを提供します。これには、ビジターを受け入れるメソッド(Visitorパターンを使用)、間接オブジェクト参照の管理、オブジェクトのシリアル化処理などが含まれます。COSBaseオブジェクトを扱う際、開発者は通常、特定のサブクラス型にキャストして型固有の機能にアクセスします。たとえば、COSBaseとして取得されたCOSDictionaryオブジェクトをキャストすることで、キーと値のペアを取得・設定するgetItem()やsetItem()などの辞書固有のメソッドにアクセスできます。
COSBaseオブジェクトは、直接オブジェクトまたは間接オブジェクトのいずれかになります。間接オブジェクトは、オブジェクト番号と世代番号を通じて参照され、PDFの複数の部分が同じオブジェクトを参照できるようにします。これは、他のCOSBaseインスタンスをラップして間接参照機能を提供するCOSObjectを通じて管理されます。PDFBoxがPDF文書を書き出す際、COSBaseオブジェクトグラフを走査し、各オブジェクトをPDF構文規則に従って出力ファイルにシリアル化します。
- COSDictionary – キーと値のペアを持つPDF辞書オブジェクトを表すCOSBaseサブクラス
- COSArray – PDFオブジェクトの順序付きコレクションを表すCOSBaseサブクラス
- COSStream – バイナリまたはテキストデータを含むPDFストリームオブジェクトを表すCOSBaseサブクラス
- PDDocument – 内部的にCOSBaseオブジェクトを使用する、PDF文書全体を表す高レベルのPDFBoxクラス
- Carousel Object Structure(COS) – COSBaseが実装する、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
