Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Differences array

Differences arrayは、フォントエンコーディング辞書内の特定のエントリで、開発者が個々の文字コードを特定のグリフ名に再マッピングできるようにします。

カテゴリ: Text & Fonts
キーワード: differences array, Differences array

概要

Differences arrayは、フォントエンコーディング辞書内の特定のエントリで、開発者が個々の文字コードを特定のグリフ名に再マッピングできるようにします。 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているように、この配列は、完全に新しいエンコーディングスキームを定義することなく、選択された文字コードのデフォルトエンコーディングをオーバーライドする仕組みを提供します。Differences arrayは、カスタムフォントを使用する場合や、特定のグリフを非標準の文字位置でアクセスする必要がある場合に特に重要です。

定義

Differences arrayは、PDFフォントのEncoding辞書内の配列オブジェクトで、ベースエンコーディングに対する例外を指定します。この配列は、数値コードとグリフ名のシーケンスが交互に並んだ構造で、各数値は開始文字コードを示し、その後に1つ以上のグリフ名が続きます。これらのグリフ名は、そのコード位置から順次マッピングされます。256個すべての文字コードに対するマッピングを定義する完全なエンコーディングベクターとは異なり、Differences arrayは、ベースエンコーディング(WinAnsiEncoding、MacRomanEncoding、StandardEncodingなど)とは異なるコードのみを指定します。

Differences arrayは、カスタムエンコーディング辞書とは異なり、既存のベースエンコーディングを完全に置き換えるのではなく、それを基に構築されます。これにより、わずかな文字コードマッピングのみを変更する必要がある場合に、より効率的になります。配列形式により、単一の配列内に複数の差分シーケンスを含めることができ、非連続のコード変更が可能になります。

重要性

PDF生成やテキスト抽出を行う開発者にとって、Differences arrayを理解することは、以下の理由から非常に重要です。

正確なテキストレンダリング: PDFがカスタムグリフマッピングを使用する場合、Differences arrayにより、文字コードが正しく解釈され、レンダリングされます。この配列を適切に処理しないと、テキストが文字化けしたり、誤った文字が表示されたりする可能性があります。

テキスト抽出の信頼性: PDFパーシングライブラリは、テキストコンテンツを正確に抽出するために、Differences arrayを考慮する必要があります。これらのマッピングを無視すると、抽出されたテキストがPDFに視覚的に表示されている内容と一致しなくなる可能性があります。

フォントサブセット化の最適化: ファイルサイズを削減するためにフォントのサブセットを埋め込む際、Differences arrayにより、完全なカスタムエンコーディング定義を必要とせずに、サブセットグリフを便利な文字位置に再マッピングできます。

特殊文字のサポート: Differences arrayにより、標準エンコーディングでは利用できないグリフ(特殊記号、合字、代替文字形式など)へのアクセスが可能になります。これは、プロフェッショナルなタイポグラフィや多言語サポートに不可欠です。

仕組み

Differences arrayは、特定のパターンを持つフラット配列として構造化されています。整数(文字コードを表す)で始まり、その後に1つ以上の名前オブジェクト(グリフ名を表す)が続きます。各グリフ名は、指定された整数から始まる文字コードに順次割り当てられます。配列内に別の整数が現れると、次のグリフ名シーケンスの開始位置がリセットされます。

例えば、Differences arrayは次のようになります: [39 /quotesingle 96 /grave 128 /Euro /bullet /quotesinglbase]。これは、文字コード39を"quotesingle"という名前のグリフに、コード96を"grave"に、コード128を"Euro"に、コード129を"bullet"に、コード130を"quotesinglbase"に再マッピングします。

ベースエンコーディング(Encoding辞書で個別に指定)は、Differences arrayで言及されていないすべての文字コードに対して有効のままです。PDFレンダラーやテキスト抽出ツールがDifferences arrayを持つフォントに遭遇した場合、以下を実行する必要があります。

  1. ベースエンコーディングマッピングから開始
  2. Differences arrayで指定された変更を順次適用
  3. 結果として得られた結合マッピングを使用して、コンテンツストリーム内の文字コードを解釈

Differences arrayで使用されるグリフ名は、フォントプログラムによって認識される名前に対応している必要があり、通常はAdobeの標準グリフ命名規則に従います。Type 1フォントやTrueTypeフォントの場合、これらの名前はフォントのグリフコレクション内の特定のグリフを参照します。PDFプロセッサは、これらの名前を使用して、レンダリングのための正しいグリフアウトラインを特定します。

関連用語

  • Encoding dictionary(エンコーディング辞書) – Differences arrayとベースエンコーディング指定を含む親構造
  • Glyph name(グリフ名) – フォント内の特定の文字形状を参照するために使用される標準化された識別子
  • Base encoding(ベースエンコーディング) – Differences arrayが変更する標準エンコーディングスキーム(WinAnsiEncodingなど)
  • Character code(文字コード) – エンコーディングを通じて特定のグリフにマッピングされる、PDFコンテンツストリーム内の数値
  • Font descriptor(フォントディスクリプタ) – フォントに関するメタデータとメトリクスを含む辞書で、エンコーディング情報と連携して機能

出典

(N.A.) (2020)
(N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html