Font descriptor key /BaseFont
`/BaseFont` キーは、フォント辞書とフォント記述子に必須のエントリで、フォントのPostScript名を識別するか、PDFドキュメント内でテキストをレンダリングするためのメトリック情報を提供します。
/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フォント名のいずれかに対応します。
/BaseFont キーは /FontName キーとは異なります。/BaseFont は主要なフォント辞書に現れ、PDFプロセッサに対してフォントを識別するのに対し、/FontName はフォント記述子内に現れ、フォントプログラムからの元の名前を提供します。フォントがサブセット化されている場合(ドキュメントで実際に使用されている文字のみを含む)、/BaseFont 名には一意のタグとプラス記号が接頭辞として付けられることが多く(例:ABCDEF+TimesRoman)、一意性を確保します。
PDF生成や処理を行う開発者にとって、/BaseFont キーを正しく設定することは、異なるPDFビューアやプラットフォーム間で信頼性の高いテキストレンダリングを実現するために不可欠です。/BaseFont の値が間違っているか欠落していると、フォント置換エラーが発生し、PDFプロセッサが意図したフォントをデフォルトフォントで置き換えてしまい、ドキュメントのレイアウトや外観が崩れる可能性があります。これは、アクセシブルな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
)
。
PDFライブラリやツールを構築する際、開発者は /BaseFont の値が埋め込まれたフォントプログラムの実際のPostScript名と一致することを確認する必要があります。そうでない場合、PDFは検証に失敗したり、正しく表示されない可能性があります。Tagged PDFワークフローでは、/BaseFont を含む適切なフォント記述子エントリが、支援技術が依存するドキュメント構造に貢献します
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
。
典型的なPDFフォント辞書では、/BaseFont キーは /Type、/Subtype、/FontDescriptor などの他のフォント関連キーと並んで現れます。PDFプロセッサが特定のフォントリソースを参照するテキストに遭遇すると、/BaseFont の値を使用して適切なフォントプログラムを検索して読み込みます。フォントがPDFに埋め込まれている場合、プロセッサは /BaseFont 名を埋め込まれたフォントデータと照合します。フォントが埋め込まれていない場合、プロセッサはシステム上で一致するフォントを見つけようとするか、フォント置換ルールを適用します。
メインフォント辞書の /FontDescriptor キーで参照されるフォント記述子には、親辞書の名前に対応する独自の /BaseFont(または /FontName)エントリが含まれています。フォント記述子には、/FontBBox、/ItalicAngle、/Ascent、/Descent などの追加のメトリックも含まれており、PDFプロセッサがグリフを適切に配置してレンダリングするのに役立ちます。
サブセットフォントの場合、命名規則では、大文字6文字の接頭辞の後にプラス記号、次に元のフォント名を付けることが求められます。これにより、各サブセットが一意のフォントリソースとして扱われ、同じベースフォントが複数のページやドキュメントで異なる方法でサブセット化されている場合の競合が防止されます。PDFプロセッサは、フォント置換を試みる際にこの接頭辞を取り除き、元のフォント名に基づいて適切なフォールバックフォントを見つけられるようにします。
- Font dictionary(フォント辞書) – フォントリソースを定義し、
/BaseFontキーを含むPDF辞書オブジェクト - Font descriptor(フォント記述子) – 独自のフォント名エントリを含む、詳細なフォントメトリックと特性を含むサブ辞書
- PostScript name(PostScript名) – フォントプログラムで定義されているフォントの公式識別子で、
/BaseFontの値として使用される - Font embedding(フォント埋め込み) – PDFファイル内にフォントプログラムデータを含めるプロセスで、正確な
/BaseFont識別が必要 - Font subsetting(フォントサブセット化) – ドキュメントで実際に使用されているグリフのみを含めることで、一意の接頭辞を持つ特別な
/BaseFont命名が必要
- (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
