Rendering encoding
レンダリングエンコーディングとは、PDFプロセッサがコンテンツストリーム内の文字コードを表示または印刷用の特定のグリフにマッピングする方法を指します。
レンダリングエンコーディングとは、PDFプロセッサがコンテンツストリーム内の文字コードを表示または印刷用の特定のグリフにマッピングする方法を指します。このエンコーディング機構は、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 ) 。レンダリング処理では、フォント辞書のエンコーディング情報を使用して、バイトシーケンスを視覚的な文字表現に変換します。
レンダリングエンコーディングは、PDFビューアまたはプロセッサがレンダリング段階で文字コードを表示可能なグリフに変換する際に適用する特定のエンコーディングスキームです。ドキュメントレベルの文字エンコーディング(UTF-8やUTF-16など)とは異なり、レンダリングエンコーディングはPDFコンテンツストリーム内のフォントレベルで動作し、フォント辞書の/Encodingエントリで定義されます。
この概念は、PDFから意味的なテキストコンテンツを取得することに焦点を当てたテキスト抽出エンコーディングとは異なります。レンダリングエンコーディングは純粋に視覚的なプレゼンテーション層に関わるもので、コンテンツストリーム内の各文字コードに対してどのグリフ形状を描画すべきかを決定します。PDFは、基本フォントに対してWinAnsiEncodingやMacRomanEncodingのようなシンプルなエンコーディングを使用する場合もあれば、CID(Character Identifier)システムを使用する複合フォントに対してより複雑なエンコーディングスキームを使用する場合もあります ( 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生成または操作を行う開発者にとって、レンダリングエンコーディングを理解することは、いくつかの理由から非常に重要です。
- テキスト表示の正確性: エンコーディングマッピングが正しくないと、基礎となるテキストデータが正しくても、画面または印刷物に誤った文字が表示されます
- フォント置換: フォントが埋め込まれていない場合、レンダリングエンジンはエンコーディング情報を使用して、利用可能なシステムフォントから適切な代替グリフを見つける必要があります
- アクセシビリティへの準拠: 適切なレンダリングエンコーディングにより、ToUnicodeマッピングと組み合わせることで、テキストが支援技術によって正しく解釈されることが保証されます ( 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プロセッサは、バイトシーケンスとして文字コードを含むテキスト表示オペレータ(
TjやTJなど)を読み取ります - エンコーディングの参照: プロセッサは、現在のフォントの辞書から
/Encodingエントリを取得し、文字からグリフへのマッピングスキームを決定します - 文字マッピング: 各文字コードは、エンコーディングスキームに従ってマッピングされます。これには、定義済みエンコーディング(StandardEncoding、WinAnsiEncodingなど)、カスタム
/Differences配列、または複合フォント用のCMapリソースが使用されます - グリフの選択: マッピングされた文字識別子を使用して、フォントプログラム内の特定のグリフアウトラインまたはラスターデータが検索されます
- レンダリング: 選択されたグリフは、現在のグラフィックス状態パラメータを使用して、指定された位置に描画されます
Tagged PDF文書の場合、レンダリングエンコーディングは論理構造と連携して動作し、視覚的なプレゼンテーションと意味的な意味の両方が保持されるようにします ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) 。ToUnicode CMapは、レンダリングエンコーディングとは独立して、文字コードをUnicode値にマッピングし、テキスト抽出とアクセシビリティのための追加レイヤーを提供します。
- Font Dictionary(フォント辞書) – エンコーディング仕様とフォントプログラム参照を含む、フォントメタデータを格納するPDFオブジェクト
- ToUnicode CMap – テキスト抽出とアクセシビリティのために文字コードをUnicode値に変換するマッピングテーブル
- Character Identifier(CID) – 複合フォントでグリフを文字エンコーディングとは独立して参照するために使用される数値
- Glyph(グリフ) – フォントプログラムで定義される文字の視覚的表現
- Text Extraction(テキスト抽出) – 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
