/Ascent フォントディスクリプタキーは、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
)
で規定されているように、/Ascent キーは PDF ドキュメントにおける適切なテキストレイアウトとレンダリングに不可欠です。
/Ascent キーは、フォントディスクリプタ辞書内の数値エントリであり、ベースラインからフォント内のグリフが到達する最高点までの垂直距離を定義します。この測定値は、フォントのグリフ座標系で与えられ、通常 Type 1 フォントでは 1000 グリフ空間単位あたり、TrueType および OpenType フォントではフォントの units-per-em 値に基づいて表されます。
/BaseFont キーは、フォント辞書とフォント記述子に必須のエントリで、フォントのPostScript名を識別するか、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
)
。/BaseFont の値は、PDFプロセッサがテキストコンテンツを正しく解釈して表示するために重要であり、特にフォント置換や文字マッピングが必要な場合に不可欠です。
/BaseFont キーは、PDFドキュメント内のフォントリソースのPostScript名を指定する名前オブジェクトです。フォント辞書では、/BaseFont は参照されるフォントプログラムを識別し、フォント記述子辞書では、フォントの識別に関する追加のメタデータを提供します。この値は名前オブジェクト(スラッシュで始まる)でなければならず、フォントが埋め込まれている場合は、フォントプログラム自体に埋め込まれた実際のPostScript名と一致する必要があります。HelveticaやTimes-Romanなどの標準フォントの場合、/BaseFont の値は
(
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
)
で定義されている14種類の標準PDFフォント名のいずれかに対応します。
/CapHeightキーは、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文書における正確なテキストレンダリングとレイアウト計算に不可欠です。この値は、アセンダーや装飾要素を含まない「H」や「E」のような上部が平らな大文字の高さを表します。
/CapHeightキーは、フォントディスクリプタ辞書内の数値エントリであり、フォントの座標系におけるベースラインから大文字の上端までの距離を定義します。フォント内の任意のグリフの最大高さ(アクセント記号や発音区別符号を含む)を測定する/Ascentキーとは異なり、/CapHeightは上部が平らな大文字の高さのみを測定します。この値はグリフ空間単位で表され、ほとんどのフォントでは通常1emあたり1000単位であり、正の数値でなければなりません。/CapHeightは、/Ascent、/Descent、/ItalicAngle、/StemVと並んで、フォントのグリフに関する重要な寸法情報を提供するフォントディスクリプタの必須メトリックの1つです。
PDF生成やテキスト操作を行う開発者にとって、/CapHeight値は以下の理由から非常に重要です。第一に、異なるフォントやフォントサイズを混在させる際に、テキスト要素の配置における正確な垂直方向の整列と間隔計算を可能にします。第二に、
(
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文書を作成または検証する際、異なるPDFビューアやプラットフォーム間で一貫したレンダリングを保証するために、フォントディスクリプタに/CapHeightを正しく指定する必要があります。不正確または欠落した/CapHeight値は、レイアウトの不整合、テキスト配置エラー、アクセシビリティの問題を引き起こす可能性があります。
/Descentキーは、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
)
。descent値は、適切なテキストレイアウト、行間計算、およびPDF文書内のテキストの正確な垂直配置を確保するために重要です。
/Descentは、PDF仕様で定義される数値型のフォントディスクリプタキーであり、特定のフォントにおいて、どの文字の最低点がベースラインからどれだけ下に降りるかを測定します。グリフ座標空間では、ベースラインは通常y=0に位置するため、descent値は慣例的に負の数値となります(例えば、グリフがベースラインより200単位下に伸びるフォントの場合は-200)。
これは、ベースラインから大文字の上端までを測定する/CapHeightキーや、ベースラインより上の最大高さを測定する/Ascentキーとは異なります。/Ascentと/Descentを合わせてフォント内のすべてのグリフの垂直範囲を定義しますが、/Descentは特にディセンダー(‘g’、‘j’、‘p’、‘q’、‘y’などの文字のベースラインより下に伸びる部分)の深度を捉えます。
/Descent値は、
(
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
)
で規定されているように、すべてのフォントディスクリプタ辞書に存在する必要があります。これは、特定のテキスト文字列の実際の測定範囲ではなく、フォントデザインに固有のタイポグラフィックなdescent特性を表します。
/FirstChar キーは、PDF のフォント辞書内の整数エントリで、フォントの Widths 配列で定義される最初の文字の文字コードを指定します。
(
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
)
で定義されているように、このキーは /LastChar と連携して、幅情報が提供される文字コードの範囲を確立します。これらのキーは、文字コードとフォントメトリクスに格納されている対応する幅の値との間のマッピングを作成します。
/FirstChar は、Type 1 および TrueType フォント辞書における必須キーで、PDF が明示的な幅情報を提供する文字コード範囲の下限を定義します。このキーには、/Widths 配列で幅が指定される最初のグリフの文字コード(単純フォントの場合、通常は 0〜255 の範囲)を表す整数値が含まれます。/FirstChar の値は必ずしも 0 である必要はありません。フォントは任意の文字コードからメトリクスを定義できるため、PDF はドキュメント内で実際に使用される文字のサブセットのみを含めることができます。これは、文字コード範囲を定義するのではなく、フォント全体のメトリクスを記述する /Ascent や /CapHeight などのフォント記述子キーとは異なります。
/FontBBoxキーは、フォント記述子辞書内の必須エントリで、フォントのグリフアウトラインのバウンディングボックスを定義します。このキーは、フォント内のすべてのグリフを包含する矩形を指定し、フォントの座標系における座標[llx, lly, urx, ury]を表す4つの数値の配列として表現されます
(
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プロセッサがテキストレイアウト、レンダリング、およびフォント文字の適切な表示を確保するために使用する重要な空間情報を提供します。
/FontBBoxは、グリフ座標空間内の矩形を定義する4つの整数または実数の配列を含むフォント記述子キーです。配列の形式は[llx lly urx ury]で、llxとllyは左下のxおよびy座標を表し、urxとuryは右上のxおよびy座標を表します。これらの座標は、通常1000単位がフォントのデザインスペースにおける1emに等しい単位で指定されます。
グリフ空間からテキスト空間への変換を定義する/FontMatrixとは異なり、/FontBBoxはグリフ自体の空間的な範囲を定義します。/Ascentと/Descentは一般的な文字の垂直メトリクスを記述しますが、/FontBBoxは通常の組版上の境界を超える可能性のある拡張文字や装飾要素を含む、フォント内のすべての可能なグリフアウトラインを包含する必要があります。
PDF生成やテキストレンダリングに携わる開発者にとって、/FontBBoxは以下のような実用的な理由から不可欠です。
/ItalicAngle キーは、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 レンダリングエンジンがイタリックテキスト文字を適切に配置および表示するのに役立ちます。直立(非イタリック)フォントの場合、この値は 0 に設定され、イタリックフォントは通常、右への傾斜を示す負の値を持ちます。
/ItalicAngle は、フォントの主要な垂直ストロークの傾斜角度を表す数値を格納するフォントディスクリプタキーです。
(
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
)
で定義されているように、この値は垂直軸から反時計回りに度数で測定されます。つまり、典型的なイタリックフォント(右に傾斜する)は負の /ItalicAngle 値を持ち、一般的に -5 から -20 度の範囲になります。値が 0 の場合は、完全に直立した非イタリックフォントを示します。これは、垂直距離を測定する /Ascent や /Descent、ストロークの太さを表す /FontWeight などの他のフォントメトリクスとは異なります。/ItalicAngle は、イタリックおよびオブリック書体を定義する幾何学的な傾斜特性を特に捉えるもので、正確なテキストレンダリング、スペーシング計算、および合成変換に不可欠な情報を提供します。
/LastChar キーは、Type 1 および TrueType フォントディクショナリ内の整数エントリであり、フォントの /Widths 配列でグリフ幅情報が提供される最大の文字コードを指定します。/FirstChar と組み合わせることで、フォントディスクリプタ内で明示的な幅エントリを持つ文字コードの範囲を定義します
(
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 ドキュメントにおける適切なテキストレンダリングとレイアウト計算に不可欠です。
/LastChar は、シンプルフォント(Type 1 および TrueType フォント)のフォントディクショナリにおける必須の整数キーです。これは、/Widths 配列に対応するエントリを持つ最大の文字コード値を表します。/Widths 配列には、フォント内の各文字の進行幅が文字コードでインデックス付けされて格納されています。有効な範囲は /FirstChar から /LastChar までの包括的な範囲であり、/Widths 配列には正確に (/LastChar - /FirstChar + 1) 個のエントリが含まれている必要があります。
/StemVフォントディスクリプタキーは、フォントにおける主要な縦方向のステム(縦線)の太さを、水平方向の単位で測定した値を指定します。
(
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プロセッサが適切なテキストの太さと外観を決定するために使用されます。
/StemVは、PDFフォントディスクリプタ辞書内の数値エントリであり、フォントのグリフにおける主要な縦方向のストローク(線)の幅を、ストロークの方向に対して垂直に測定した値を示します。この値はグリフ座標系(通常はem単位あたりの単位数)で表現され、「I」、「l」、「H」などの文字における縦線のような一般的な縦方向要素の太さを表します。これは、横方向のステムを測定する/StemHや、ストロークの太さではなく縦方向の距離を測定する/CapHeightや/XHeightのような一般的な指標とは異なります。
(
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
)
によると、/StemVはType 3フォントを除くすべてのフォントディスクリプタで必須です。値は正の数でなければならず、1000単位のemスクエアにおいて、非常に細いフォントでは約50単位から、ボールドや太字フォントでは200単位以上の範囲が一般的です。正確な値が決定できない場合は、フォントのウェイト分類に基づいた妥当な近似値を提供する必要があります。
/Widthsキーは、PDFフォント辞書内の配列エントリで、フォント内の各グリフの水平方向の幅をテキストスペースの1/1000単位で指定します。このキーは、適切なテキストレイアウトとレンダリングに不可欠であり、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
)
。/Widths配列は、他のフォントディスクリプタキーと連携して、テキストレンダリングのための完全なメトリクス情報を提供します。
/Widthsキーには、フォント内の連続した文字コード範囲のグリフ幅を表す数値の配列が含まれます。配列内の各要素は、/FirstCharキーで指定された文字コードから始まり、/LastCharで指定されたコードまで続く、単一文字のアドバンス幅に対応します。これらの幅の値は、グリフスペース単位で表現され、通常、Type 1およびTrueTypeフォントでは1000単位/emスクエアにスケーリングされます。/Widths配列は、シンプルフォント(Type 1、TrueType、Type 3)では必須ですが、複合フォント(Type 0)では異なる方法で処理され、幅情報はCIDFontの/W配列に保存されます。大規模な文字セットを効率的に処理するためにより複雑な形式を使用するCIDFontsの/Wキーとは異なり、/Widthsはシンプルな順次配列構造を提供します。
正確なグリフ幅情報は、PDFレンダリングエンジンがページ上でテキストを正しく配置し、改行、単語間隔、テキスト配置を計算するために不可欠です。適切な/Widthsデータがないと、テキストの間隔が不正確になったり、重なったり、位置がずれたりして、文書レイアウトが崩れ、正確な文字位置に依存するアクセシビリティ機能に影響を与える可能性があります
(
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を作成または操作する開発者にとって、カスタムフォントの埋め込み、フォントのサブセット化、または異なるビューアアプリケーション間でテキストが正しくリフローすることを保証する際に、/Widthsキーを理解することは不可欠です。不正確または欠落した幅情報は、テキスト抽出、検索機能、および文字境界を理解する必要がある支援技術にも問題を引き起こす可能性があります。