PDVectorFont
PDVectorFontは、Apache PDFBox PDModel APIのクラスで、PDF文書内のベクターベースフォントを表現します。
PDVectorFontは、Apache PDFBox PDModel APIのクラスで、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 ) で定義されたフォント仕様に準拠したフォントデータへのアクセスと操作を行うメソッドを提供します。
PDVectorFontは、Apache PDFBoxの高レベルPDModel API階層における抽象クラスで、主にType1フォントとTrueTypeフォントというベクターフォントタイプを扱います。ベクターフォントは、固定サイズのビットマップではなく、拡大縮小可能な幾何学的記述として文字のアウトラインを保存します。PDFBoxのアーキテクチャにおいて、PDVectorFontは基底クラスであるPDFontを拡張し、PDType1FontやPDTrueTypeFontなどの具体的なベクターフォント実装の親クラスとして機能します。このクラスは、 ( 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文書内でテキストがどのようにレンダリングされるべきかを定義するフォントプログラムデータ、文字メトリクス、エンコーディング情報、グリフアウトライン定義をカプセル化します。
このクラスは、フォントデータ構造の扱い方においてPDSimpleFontやPDCIDFontとは異なります。PDSimpleFontは基本的なシングルバイトエンコードフォントを扱い、PDCIDFontは複雑なスクリプト用の文字識別子ベースのフォントを管理するのに対し、PDVectorFontは拡大縮小可能な文字形状を定義するためにベクターグラフィックスプリミティブ(線、曲線、塗りつぶし)を使用するフォントに特化しています。
PDF文書を扱う開発者にとって、PDVectorFontを理解することは、以下のような実践的な理由から不可欠です。
テキストレンダリング品質: ベクターフォントは、あらゆるズームレベルや印刷解像度でテキストが鮮明で読みやすく表示されることを保証します。これは、 ( 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を作成または修正する際、開発者はベクターフォントデータを正しく扱う必要があります。これにより、フォントが適切に埋め込まれ、文書のレイアウトやアクセシビリティ機能を損なうフォント置換の問題を回避できます。
テキスト抽出の精度: ベクターフォント構造を理解することで、開発者はより正確なテキスト抽出ツールを構築できます。ベクターフォントに保存された文字エンコーディングとグリフマッピング情報は、テキストコンテンツがどのように解釈されるかに直接影響するためです。
クロスプラットフォームの一貫性: ベクターフォントは、異なるオペレーティングシステムやデバイス間で視覚的な一貫性を維持するため、予測可能なレンダリング動作が必要な文書にとって重要です。
PDVectorFontは、PDFファイルに保存された基礎となるフォントプログラムデータ上に抽象化レイヤーを提供することで動作します。PDFBoxがPDF文書を解析する際、文書のリソースディクショナリ内のフォントリソースを識別し、PDVectorFont実装を含む適切なPDFontサブクラスをインスタンス化します。
このクラスは、主要なフォントプロパティにアクセスするメソッドを提供します。
グリフアウトライン: ベクターフォントは、各文字の形状を一連の数学的パスとして保存します。PDVectorFontサブクラスは、フォントプログラム(PostScript Type1またはTrueTypeテーブル)からこれらのアウトラインを解析し、レンダリングに利用できるようにします。
フォントメトリクス: このクラスは、レイアウトエンジンがテキストを正しく配置するために必要な文字幅情報、バウンディングボックス、ベースラインデータを公開します。これらのメトリクスは、フォント記述子ディクショナリとフォントプログラムテーブルから読み取られます。
エンコーディングマッピング: PDVectorFontは、文字コード(PDFコンテンツストリーム内のバイト)とフォント内の特定のグリフ間のマッピングを処理します。このエンコーディング情報により、各バイト値に対してどのグリフ形状がレンダリングされるかが決定されます。
フォント記述子: このクラスは、フォント名、太さ、イタリック角度、文字セットカバレッジなどのメタデータを含むフォント記述子オブジェクトにアクセスします。この情報は、レンダリングエンジンが適切なテキストスタイルを適用するのに役立ちます。
テキストをレンダリングする際、PDFBoxはPDVectorFontのメソッドを使用して、文字コードをグリフ識別子に変換し、対応するベクターアウトラインを取得し、テキストマトリックスに従ってそれらを拡大縮小し、画面にレンダリングしたり他の形式に変換したりできる描画可能なパスに変換します。
- PDFont – Apache PDFBoxのPDModel APIにおけるすべてのフォントタイプの基底クラス
- PDType1Font – ベクターグリフ定義を持つPostScript Type 1フォントを表すサブクラス
- PDTrueTypeFont – 2次ベジェ曲線アウトラインを持つTrueTypeフォントを表すサブクラス
- Font Descriptor – フォントメタデータとメトリクス情報を含むPDFディクショナリオブジェクト
- Glyph – 特定のフォントにおける文字の視覚的表現
- (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
- (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
