COSFloat
COSFloatは、Apache PDFBoxのJavaクラスで、PDFドキュメントの低レベルなCarousel Object Structure(COS)レイヤー内で浮動小数点数値を表現します。
COSFloatは、Apache PDFBoxのJavaクラスで、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プリミティブを扱えるようにします。COSFloatは、測定値、座標、色値、変換行列など、PDFドキュメント全体で使用される小数を具体的に処理します。
COSFloatは、Apache PDFBoxのCOSパッケージ内の具象実装クラスで、COSNumber抽象クラスを継承しています。このクラスは、座標(12.75)、色成分(0.5)、スケール係数(1.25)など、PDFファイルに現れる浮動小数点値を格納・操作します。整数を扱うCOSIntegerとは異なり、COSFloatは正確なレンダリングと配置に必要な小数精度を保持します。COSレイヤーはPDFBoxアーキテクチャの基盤に位置し、 ( 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 ) で定義されている7つの基本的なPDFオブジェクトタイプのJavaオブジェクト表現を提供します:ブール値、整数と実数、文字列、名前、配列、辞書、ストリームです。COSFloatは、この仕様の「実数」タイプを具体的に実装しています。
COSFloatの理解は、低レベルな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アクセシビリティ機能には、正確な配置とレイアウト情報が必要であり、これらはCOSFloat値として格納される浮動小数点計算を伴うことがよくあります。開発者がPDFコンテンツストリームを直接変更したり、正確な座標情報を抽出したり、カスタムPDF生成ロジックを実装したりする必要がある場合、頻繁にCOSFloatオブジェクトと対話します。このクラスは、PDFレンダリングの問題をデバッグする際や、高レベルなPDFBox APIがドキュメント構造に対する必要な詳細な制御を提供しない場合に特に重要になります。
COSFloatはJavaのfloatプリミティブをラップし、PDFの数値構文規則への準拠を維持しながら、PDFファイルストリームへの読み書きを行うメソッドを提供します。PDFBoxがPDFファイルを解析する際、コンテンツストリームやオブジェクト定義内で小数を検出すると、COSFloatインスタンスを作成します。このクラスは、数値を取得するgetValue()と変更するsetValue()を提供し、PDF形式への再シリアライズのためのメソッドも備えています。COSFloatオブジェクトは実質的に不変であり、COSレイヤー全体で共通のビジターパターンに従うため、オブジェクトグラフ全体に対して操作を実行できます。 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で説明されているTagged PDF構造を扱う際、COSFloat値は配置属性、バウンディングボックスの定義、コンテンツのレンダリング方法やアクセシビリティ構造要素のページ上の位置を決定する変換行列によく現れます。
- COSObject – PDFの基本的なデータタイプを表すすべてのCOSオブジェクトの基底クラス
- COSInteger – PDFドキュメント内の整数値を表すCOSクラス
- COSDictionary – PDFオブジェクト構造内のキー・バリューマッピングを表すCOSクラス
- COSArray – PDFオブジェクトの順序付きコレクションを表すCOSクラス
- Content Stream – ページコンテンツを記述する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
