BuiltInEncoding
BuiltInEncodingは、Apache PDFBoxにおいて、PDF仕様で事前定義された標準的な文字エンコーディング方式を表すクラスです。
BuiltInEncodingは、Apache PDFBoxにおいて、PDF仕様で事前定義された標準的な文字エンコーディング方式を表すクラスです。これらのエンコーディングは、PDFのコンテンツストリーム内の文字コードが、フォント内の特定のグリフにどのようにマッピングされるかを定義し、異なるシステム間で一貫したテキストレンダリングを保証します。Built-inエンコーディングは、 ( 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文書がテキスト表現を処理する上で基礎となるものです。
BuiltInEncodingは、Apache PDFBoxのJavaクラスで、PDF仕様で定義された標準エンコーディング方式を実装しています。これには、StandardEncoding、MacRomanEncoding、WinAnsiEncoding、PDFDocEncodingが含まれます。ドキュメントごとに定義できるカスタムエンコーディングとは異なり、built-inエンコーディングは、PDF標準自体の一部である事前定義された文字からグリフへのマッピングです。このクラスは、PDFテキストコンテンツを処理する際に、これらの標準化されたエンコーディングテーブルにアクセスして利用するためのメソッドを提供します。
BuiltInEncodingクラスは、カスタムエンコーディングの実装とは異なり、静的で仕様に準拠したマッピングを提供するため、PDF文書に追加のエンコーディングデータを埋め込む必要がありません。カスタムエンコーディングが特定の文字セットや言語に最適化されている場合がある一方で、built-inエンコーディングは、欧米言語で使用される一般的な文字セットに対して、予測可能なクロスプラットフォーム互換性を提供します。
PDFの生成やテキスト抽出に携わる開発者にとって、BuiltInEncodingを理解することは、以下の理由から非常に重要です。
テキスト抽出の正確性: PDFからテキストを抽出する際、適切なbuilt-inエンコーディングを正しく識別して適用することで、文字コードが正しく読み取り可能なテキストに変換されることが保証されます。エンコーディングを誤って識別すると、文字化けや不正確な文字出力が発生する可能性があります。
アクセシビリティへの準拠: ( 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を作成するには、適切なエンコーディング処理が不可欠です。スクリーンリーダーや支援技術は、PDFコンテンツを音声や点字に変換するために、正しい文字エンコーディングに依存しています。
クロスプラットフォームの一貫性: Built-inエンコーディングは、異なるオペレーティングシステムやPDFビューアー間でのテキスト表現の標準化された基盤を提供します。この一貫性は、完全なフォントプログラムを埋め込むことなく、多様なプラットフォームで文書を確実に表示する必要がある場合に特に重要です。
BuiltInEncodingは、文字コード(通常は0〜255の1バイト値)を特定の文字名にマッピングするルックアップテーブルを提供することで機能します。この文字名は、フォントからグリフを選択するために使用されます。PDFBoxがPDF文書内のテキストに遭遇すると、次のプロセスを実行します。
エンコーディングの識別: PDFBoxは、フォント辞書を調べて、特定のフォントに対してどのbuilt-inエンコーディングが指定されているかを判断します。エンコーディングが明示的に指定されていない場合は、フォントタイプに基づいてデフォルトのエンコーディングを使用することがあります。
文字コードの変換: テキストコンテンツを処理する際、PDFBoxはBuiltInEncodingクラスを使用して、コンテンツストリームの生のバイト値を文字名(“A”、“ampersand”、“eacute"など)に変換します。
グリフの選択: これらの文字名は、フォントプログラムから適切なグリフを選択するために使用されます。Type 1フォントの場合、これには、フォントのCharStrings辞書で名前によってグリフを検索することが含まれます。
フォールバック処理: このクラスは、特定のbuilt-inエンコーディングで特定の文字コードが未定義である場合も処理し、レンダリングの失敗を防ぐための適切なフォールバック動作を提供します。
サポートされている標準built-inエンコーディングには、WinAnsiEncoding(Windows Code Page 1252)、MacRomanEncoding(クラシックMac OS Roman)、StandardEncoding(ラテン文字用のAdobeの標準エンコーディング)、PDFDocEncoding(文書情報辞書のテキスト文字列に使用)が含まれます。各エンコーディングは、 ( 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 ) 内の異なるプラットフォーム規約とユースケースに最適化されています。
- Font Dictionary(フォント辞書) – エンコーディング仕様とフォントプログラム参照を含む、フォントメタデータを含むPDF辞書オブジェクト
- Character Encoding(文字エンコーディング) – 文字コードを文字にマッピングする一般的なシステムで、PDF文書ではbuilt-inまたはカスタム定義できる
- Glyph(グリフ) – フォントプログラムで定義された文字の視覚的表現
- Type 1 Font – PDFで一般的に使用されるPostScriptベースのフォント形式で、文字名ベースのグリフ選択に依存する
- 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
- (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
