PDFontDescriptor
PDFontDescriptorは、Apache PDFBox PDModel APIの高レベルクラスであり、フォントの特性を記述するメトリクスと属性を含むフォントディスクリプタ辞書を表現します。
PDFontDescriptorは、Apache PDFBox PDModel APIの高レベルクラスであり、フォントの特性を記述するメトリクスと属性を含むフォントディスクリプタ辞書を表現します。フォントディスクリプタは、 ( 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文書内の必須構造です。このクラスにより、開発者はPDF文書をプログラム的に操作する際に、フォントディスクリプタのプロパティを読み取り、作成、変更することができます。
PDFontDescriptorは、PDF仕様で定義されたフォントディスクリプタ辞書をカプセル化するJavaクラスです。 ( 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 ) によると、フォントディスクリプタには、フォント名、フォントファミリー、ウェイト、バウンディングボックス、アセント、ディセント、およびイタリック、ボールド、固定ピッチなどの特性を示すフラグを含む、フォントのメトリクス、スタイル、特性に関する重要な情報が含まれます。
このクラスは、基礎となるCOS(Carousel Object Structure)辞書のラッパーとして機能し、フォントディスクリプタのエントリにアクセスして操作するための型安全なメソッドを提供します。直接的なフォントオブジェクト(PDFontやそのサブクラスなど)とは異なり、PDFontDescriptorは実際のグリフデータやエンコーディング情報ではなく、フォントの視覚的・タイポグラフィ的特性を記述するメタデータとメトリクスを具体的に扱います。
PDFontDescriptorインスタンスは、通常、直接作成するのではなく、フォントオブジェクトを通じてアクセスされますが、カスタムフォントを埋め込む場合やPDF文書内の既存のフォント定義を変更する場合には、開発者がこれらを構築する必要があることがあります。
PDF文書を扱う開発者にとって、PDFontDescriptorは以下のような実用的なシナリオで重要です。
フォントの埋め込みと代替: フォントを埋め込む際やフォント代替ロジックを実装する際、開発者はテキストの適切なレンダリングとレイアウトの保持を確保するために、フォントのメトリクスと特性にアクセスする必要があります。ディスクリプタは、フォントを正確にマッチングまたは置換するために必要な技術仕様を提供します。
アクセシビリティ準拠: ( 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 ) で概説されているアクセシビリティのためのTagged PDFでは、支援技術が文書コンテンツを正しく解釈できるように、適切なフォント情報が必要です。フォントディスクリプタは、スクリーンリーダーやその他のアクセシビリティツールによってテキストが適切に抽出され、読み取られることを保証します。
文書の検証と分析: PDF処理ワークフローでは、文書のコンプライアンスを検証したり、欠落または破損したフォントを特定したり、文書リソースに関するレポートを生成したりするために、フォントプロパティを検査する必要があることがよくあります。PDFontDescriptorは、この重要なメタデータへのプログラム的なアクセスを提供します。
クロスプラットフォームの一貫性: フォントディスクリプタは、元のフォントが利用できない場合でもテキストレンダリングをガイドする正確なフォントメトリクスを提供することで、異なるプラットフォームや表示アプリケーション間での視覚的な一貫性を維持するのに役立ちます。
PDFontDescriptorは、PDFBoxオブジェクトモデル階層の一部として動作し、フォントディスクリプタ辞書エントリにアクセスして変更するメソッドを実装します。クラスを通じて利用可能な主要なプロパティには以下が含まれます。
メトリクスプロパティ: getAscent()、getDescent()、getCapHeight()、getXHeight()などのメソッドは、テキストの配置と行間隔を決定する垂直フォントメトリクスを返します。getFontBoundingBox()メソッドは、フォント内のすべてのグリフを包含するバウンディングボックスを返します。
識別プロパティ: getFontName()メソッドはフォントのPostScript名を返し、getFontFamily()はフォントファミリー名を提供します。getFontWeight()メソッドは、フォントの視覚的なウェイト(細字から太字まで)を示します。
フラグプロパティ: ディスクリプタには、FixedPitch、Serif、Symbolic、Script、Nonsymbolic、Italic、AllCap、SmallCap、ForceBoldなどのフォント特性を示すフラグが含まれており、getFlags()を介してアクセスできます。これらのフラグは、レンダリングエンジンが適切な表示判断を行うのに役立ちます。
埋め込みフォントデータ: フォントが埋め込まれている場合、ディスクリプタはgetFontFile()、getFontFile2()、またはgetFontFile3()などのメソッドを通じて実際のフォントプログラムを参照します。これらはそれぞれType 1、TrueType、またはその他のフォントプログラムデータを含むストリームを返します。
開発者は通常、フォントオブジェクト階層を通じてPDFontDescriptorと対話します。たとえば、PDFページのリソースからフォントを取得する際、PDFontオブジェクトはgetFontDescriptor()メソッドを介してそのディスクリプタへのアクセスを提供します。ディスクリプタへの変更は、文書全体でフォントがどのように解釈されレンダリングされるかに影響します。
- PDFont – PDFBox内のすべてのフォントタイプの基底クラスで、PDFontDescriptorを含むまたは参照します
- PDResources – フォントを含むページレベルおよび文書レベルのリソースのコンテナクラス
- Font embedding(フォント埋め込み) – 適切なフォントディスクリプタ設定を必要とする、PDF文書内にフォントプログラムデータを含めるプロセス
- COS dictionary(COS辞書) – PDFontDescriptorがラップしてPDFオブジェクトへの型安全なアクセスを提供する低レベルデータ構造
- Tagged PDF – ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) に記載されているように、アクセシビリティ機能を有効にするために適切なフォントディスクリプタを使用するPDF文書構造
- (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
