COSString
COSStringは、Apache PDFBoxにおける基本的なクラスで、PDFドキュメントのCOS(Carousel Object Structure)レベルでの文字列オブジェクトを表します。
COSStringは、Apache PDFBoxにおける基本的なクラスで、PDFドキュメントのCOS(Carousel Object Structure)レベルでの文字列オブジェクトを表します。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構造が構築される基本的なオブジェクト型を提供します。COSStringは、生のPDFファイル形式に現れるリテラル文字列と16進数文字列の両方を処理し、テキストデータのエンコーディングとバイトレベルの表現を管理します。
COSStringは、Apache PDFBoxのCOSパッケージに含まれる低レベルのJavaクラスで、PDFドキュメント内の文字列オブジェクトを表現します。構造化されたPDFコンテンツを扱う高レベルのPDFBoxクラスとは異なり、COSStringはプリミティブなオブジェクトレベルで動作し、PDF仕様に記述されている文字列オブジェクトに直接対応します。このクラスはPDF文字列の生のバイト列をカプセル化し、リテラル文字列(括弧で囲まれたもの)と16進数文字列(山括弧で囲まれたもの)の区別を処理します。COSStringは、PDFファイルに現れる正確なバイト表現を保持することで、JavaのネイティブStringクラスとは異なります。これは、非ASCII文字やPDF文字列に埋め込まれる可能性のあるバイナリデータを扱う際に、エンコーディングの整合性を維持するために不可欠です。
PDF操作を行う開発者にとって、COSStringはPDFファイルの低レベルコンテンツにアクセスし、変更するために不可欠です。テキストの抽出、フォームフィールドの処理、メタデータの操作を行う際、開発者は文字エンコーディングや特殊文字の適切な処理を確保するために、COSレベルで文字列データを扱う必要がしばしば生じます。これは、Tagged PDF ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) のアクセシビリティ機能を扱う場合に特に重要で、適切な文字列エンコーディングはスクリーンリーダーの互換性やテキスト抽出の精度に影響します。COSStringを理解することで、開発者はエンコーディングの破損、誤ったテキスト抽出、プログラムによるPDFコンテンツの変更時のデータ損失といった一般的な落とし穴を回避できます。
COSStringは、文字列データを内部的にバイト配列として格納することで動作し、PDFファイルからの元の表現を維持します。PDFが解析される際、PDFBoxは文字列オブジェクトを読み取り、エスケープシーケンスやエンコーディングマーカーを含む正確なバイトを保持するCOSStringインスタンスを作成します。このクラスは、PDF文字列エンコーディング(PDFDocEncodingやUTF-16BEなど)からJavaの内部UTF-16表現への変換を自動的に処理し、文字列値をJava Stringオブジェクトとして取得するメソッドを提供します。開発者は、JavaのStringをコンストラクタに渡すことでプログラム的にCOSStringオブジェクトを作成でき、PDFBoxはPDFの書き込み時に適切なエンコーディングを処理します。このクラスはまた、PDFリテラル文字列でエスケープが必要な特殊文字(括弧、バックスラッシュ、改行など)も管理します。16進数文字列を扱う場合、COSStringは16進数表記と実際のバイト値の間の変換を処理し、PDFファイルの読み書き時のラウンドトリップ忠実性を確保します。
- COSBase – COSStringを含む、PDFBoxのすべてのCOSレベルオブジェクトの抽象基底クラス
- COSName – PDF名前オブジェクトを表すCOSクラスで、文字列に似ているが識別子として使用される
- COSDictionary – しばしばCOSString値を含むPDF辞書オブジェクトを表すCOSクラス
- PDFDocEncoding – 他のエンコーディングが指定されていない場合にPDF文字列に使用されるデフォルトの文字エンコーディング
- Tagged 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/
