Font encoding
Font encodingは、PDF文書内の文字コードを、フォントからレンダリングすべき特定のグリフに変換するマッピングシステムです。
Font encodingは、PDF文書内の文字コードを、フォントからレンダリングすべき特定のグリフに変換するマッピングシステムです。PDFワークフローにおいて、適切なfont encodingは、異なるプラットフォームやビューア間でテキストが正しく表示されることを保証し、テキスト抽出、検索、アクセシビリティ機能に不可欠です ( 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 encodingは、非ASCII文字、特殊記号を扱う場合や、正確な文字とUnicodeのマッピングが必要なアクセシブルな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 ) 。
Font encodingは、PDFのコンテンツストリームで使用される数値文字コードと、フォント内の実際のグリフ(文字の視覚的表現)との関係を定義します。PDFがテキストを表示する際、文字コード(通常はバイト値)を使用し、これをエンコーディングスキームを通じて解釈することで、レンダリングするグリフを決定します。目的に応じて異なるエンコーディングスキームが存在します。基本的なラテン文字セット用のWinAnsiEncodingやMacRomanEncodingのようなシンプルなエンコーディングや、CMAPテーブルを使用するUnicodeベースのフォント用のIdentity-Hのようなより複雑なエンコーディングがあります。
Font encodingは、一般的なテキストファイルにおける文字エンコーディングとは異なります。両者ともコードを文字にマッピングしますが、PDF font encodingは特に、文書の内部表現とフォント固有のグリフコレクションとの間のギャップを埋めるものです。また、Unicode自体とも異なります。PDFは内部的にカスタムエンコーディングを使用しながらも、ToUnicode CMapsを通じてテキスト抽出のためにUnicodeにマッピングすることができ、これはアクセシビリティと検索機能に不可欠です ( 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生成や操作を行う開発者にとって、font encodingの理解は以下の理由から極めて重要です。
テキスト抽出と検索性: 不適切または欠落したエンコーディング情報は、ユーザーがコンテンツをコピー&ペーストしたりPDF内を検索しようとした際に、文字化けしたテキストを引き起こす可能性があります。これはユーザーエクスペリエンスと文書の有用性に直接影響します。
アクセシビリティ準拠: スクリーンリーダーや支援技術は、視覚的なテキストを音声や点字に変換するために、適切なエンコーディングに依存しています。PDF/UA標準では、すべてのテキストコンテンツがアクセシブルであることを保証するために、正しい文字エンコーディングが要求されます ( 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ビューアは、欠落または曖昧なエンコーディング情報を異なる方法で処理する可能性があり、あるシステムでは正しく表示されるテキストが別のシステムでは失敗することにつながります。適切なエンコーディングは、すべてのプラットフォーム間で一貫したレンダリングを保証します。
国際文字のサポート: 非ラテン文字、アクセント記号付き文字、特殊記号を扱う場合、font encodingがこれらの文字が正しく表示されるか、または欠落グリフや置換文字として表示されるかを決定します。
PDFにおけるfont encodingは、いくつかの主要なメカニズムを通じて機能します。
Encoding辞書: シンプルフォント(Type 1、TrueType)は通常、フォント辞書にEncodingエントリを含み、使用するエンコーディングスキームを指定します。これは定義済みエンコーディング(WinAnsiEncoding、MacRomanEncoding、MacExpertEncoding)、またはベースエンコーディングを修正するカスタムDifferences配列のいずれかです ( 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 ) 。
CMAPリソース: 複合フォント(Type 0フォント、CJK言語やUnicodeでよく使用される)は、マルチバイト文字コードからグリフ識別子(CID)へのマッピングを定義するCMAP(Character Map)リソースを使用します。これらは大規模な文字セットに対してより柔軟なエンコーディングを提供します。
ToUnicode CMaps: 適切なテキスト抽出とアクセシビリティを実現するために、フォントは文字コードをUnicode値にマッピングするToUnicode CMAPを含むべきです。これはレンダリングエンコーディングとは別のものであり、ソフトウェアが視覚的な表現から意味的な文字情報を抽出することを可能にします ( 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プロセッサはコンテンツストリームから文字コードを取得し、フォントのエンコーディングを適用してグリフ名またはCIDを決定し、次にフォントプログラム内でその識別子を検索して、レンダリング用の実際のグリフアウトラインを取得します。
エンコーディングプロセスは2段階のルックアップと考えることができます: 文字コード → グリフ識別子(エンコーディング経由) → グリフアウトライン(フォントプログラムから)。両方の段階の適切な実装により、正確なレンダリングとテキスト抽出が保証されます。
- Character Map (CMap) – 複合フォントにおいて文字コードをグリフ識別子にマッピングするリソース
- Glyph – フォントで定義された文字の視覚的表現
- ToUnicode – エンコードされた文字コードからUnicodeテキストの抽出を可能にする特殊なCMAP
- Font subsetting – エンコーディングスキームと相互作用する、フォントから使用されたグリフのみをPDFに含める手法
- Type 0 Font – 複雑なスクリプトや大規模な文字セット用にCMAPベースのエンコーディングを使用する複合フォントタイプ
- (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
