Font subtype Type3
Font subtype Type3は、事前定義されたグリフアウトラインではなく、PDFコンテンツストリームを通じてカスタムグリフレンダリングを可能にする、サブタイプ`/Type3`で識別される特殊なPDFフォントリソースです。
Font subtype Type3は、事前定義されたグリフアウトラインではなく、PDFコンテンツストリームを通じてカスタムグリフレンダリングを可能にする、サブタイプ/Type3で識別される特殊な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
)
。標準的なフォント形式を参照するType 1フォントやTrueTypeフォントとは異なり、Type3フォントは各文字グリフを完全なPDFコンテンツストリームとして定義し、カスタムビジュアル効果に最大限の柔軟性を提供します。このフォントタイプは、特殊なグラフィックス、通常とは異なる文字レンダリング、またはレガシー文書の互換性のためによく使用されます。
Type3フォントは、PDF内のユーザー定義フォントであり、各グリフは描画操作、テキスト、さらには画像を含む完全なPDFコンテンツストリームで記述されます。/Subtype /Type3を持つフォント辞書には、Form XObjectとして格納された文字定義が含まれており、任意のPDFグラフィックスオペレーターを使用して各文字を描画できます。特定のアウトライン形式を持つ外部フォントプログラムに依存する標準的なフォントサブタイプ(Type 1、TrueType、またはCIDFont)とは異なり、Type3フォントは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
)
。
Type3フォントを特徴づける主な特性には以下があります:
- コンテンツストリーム定義:各グリフは、有効なPDFグラフィックス操作を含むことができるPDFコンテンツストリームです
- ヒンティング情報の欠如:Type3フォントには、アウトラインフォントに見られるヒンティングデータがなく、小さいサイズでのレンダリング品質に影響を与える可能性があります
- 任意の複雑さ:グリフは、パターン、画像、複数の色、透明度を組み込むことができます
- 文字マッピング:文字コードをグリフプロシージャにマッピングするためにエンコーディング辞書を使用します
PDF生成または操作を行う開発者にとって、Type3フォントの理解は以下のいくつかの実用的な理由から重要です:
レンダリングの複雑さ:Type3フォントは、各グリフが単純なアウトラインのレンダリングではなく、コンテンツストリーム全体の実行を必要とするため、処理パフォーマンスに大きな影響を与える可能性があります。アプリケーションは、Type3フォントを含む文書を処理する際に適切にリソースを割り当てる必要があります。
アクセシビリティの課題:Type3フォントは、文字からUnicodeへのマッピングが不明確または存在しない可能性があるため、テキスト抽出やスクリーンリーダーのサポートを困難にし、アクセシビリティの問題を引き起こすことがよくあります。アクセシブルなPDFを作成する開発者は、標準的なフォントの代替が存在する場合、一般的にType3フォントを避けるべきです。
セキュリティ上の考慮事項:Type3グリフは任意のPDFコンテンツストリームを実行するため、複雑またはリソース集約的な操作を埋め込むために使用される可能性があります。PDFプロセッサは、Type3フォントをレンダリングする際に過度なリソース消費を防ぐため、適切な保護措置を実装する必要があります。
レガシー文書のサポート:多くの古いPDFワークフローや特殊なアプリケーションは、カスタムビジュアル効果のためにType3フォントを生成していました。PDF処理システムを保守する開発者は、下位互換性を確保するためにType3フォントを正しく処理する必要があります。
Type3フォント辞書には、グリフのレンダリング方法を定義するいくつかの必須エントリとオプションエントリが含まれています:
フォント辞書の構造:フォント辞書には、/Type /Fontおよび/Subtype /Type3と、文字名をレンダリングプロシージャにマッピングする/CharProcs辞書を含める必要があります。/FontBBox配列はすべてのグリフの最大バウンディングボックスを定義し、/FontMatrix変換行列はグリフ座標をテキスト空間にマッピングします
(
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
)
。
文字プロシージャ:/CharProcs辞書には、各キーが文字名で各値がそのグリフを描画するPDFオペレーターを含むストリームオブジェクト(Form XObject)であるエントリが含まれます。これらのストリームには、パス構築、描画操作、画像、その他のPDFグラフィックスプリミティブを含めることができます。
エンコーディングとマッピング:Type3フォントは、文字コード(コンテンツストリーム内のバイト)を/CharProcs辞書内の文字名にマッピングするために/Encodingエントリを使用します。これは、事前定義されたエンコーディング、カスタムエンコーディング辞書、または基本エンコーディングを変更する差分配列にすることができます。
メトリクスと位置決め:/Widths配列は、各文字コードの水平移動量(幅)を指定します。/FirstCharおよび/LastCharエントリは、幅が提供される文字コードの範囲を定義します。適切なテキストレンダリングのため、これらのメトリクスは各グリフのコンテンツストリームの視覚的範囲を正確に反映する必要があります。
レンダリングプロセス:PDFプロセッサがType3フォントを使用するテキストに遭遇すると、エンコーディングで各文字コードを検索して文字名を取得し、/CharProcsから対応するプロシージャを取得し、フォント行列変換を適用し、コンテンツストリームを実行して現在のテキスト位置にグリフをレンダリングします。
- Font descriptor – フォントメトリクスと属性を含む辞書。通常、他のフォントサブタイプには必須ですが、Type3にはオプションです
- Font subtype Type1 – PostScriptベースのグリフ記述を使用する標準的なアウトラインフォント形式
- Content stream – ページまたはグリフの外観を定義するPDFオペレーターとオペランドのシーケンス
- Form XObject – 複数回参照およびレンダリングできる自己完結型のPDFコンテンツストリーム
- Character encoding – テキスト文字列内のバイト値とフォント内の文字識別子との間のマッピング
- (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
