PDType0Font
PDType0Fontは、Apache PDFBoxライブラリにおいて、PDFドキュメント内のコンポジットフォント(Type 0フォント)を表現するクラスです。
PDType0Fontは、Apache PDFBoxライブラリにおいて、PDFドキュメント内のコンポジットフォント(Type 0フォント)を表現するクラスです。Type 0フォントは ( 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 ) で定義された複雑なフォント構造であり、マルチバイト文字エンコーディングをサポートしているため、中国語、日本語、韓国語、アラビア語などの非ラテン文字スクリプトを表示する上で不可欠です。PDType0Fontは、開発者がPDFドキュメントをプログラム的に操作する際に、これらのフォントにアクセスし操作するためのメソッドを提供します。
PDType0Fontは、PDFドキュメント構造を扱うための高レベルなJavaクラスを提供するPDFBox PDModel APIの一部です。シンプルフォント(Type 1、TrueType、Type 3)とは異なり、Type 0フォントはCIDFont(Character Identifier Font:文字識別子フォント)を子孫フォントとして使用するコンポジットフォントです。このアーキテクチャにより、単一のフォントが、シンプルフォントエンコーディングのように256文字に制限されることなく、文字識別子(CID)を通じて数千のグリフを参照できるようになります。
PDFBoxにおいて、PDType0FontはPDFontベースクラスを継承し、CMap(Character Map:文字マップ)リソースを処理するための特定の機能を実装しています。CMapは文字コードとCID間のマッピングを定義します。PDFに埋め込まれたUnicodeフォントや複雑なスクリプトをサポートするフォントが含まれる場合、それらは通常Type 0フォントとして実装されており、PDType0Fontは開発者がそれらと対話するために使用するクラスです。
国際化された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 ) で規定されているアクセシビリティ機能を必要とするドキュメントを扱う開発者にとって、PDType0Fontの理解は極めて重要です。Type 0フォントは、PDFドキュメントに完全なUnicodeサポートを含めるための標準的なメカニズムであり、複数の言語にわたって適切なテキスト抽出、検索機能、スクリーンリーダーとの互換性を実現します。
PDFをプログラム的に作成または修正する際、開発者は適切な文字レンダリングとテキストエンコーディングを確保するために、Type 0フォントを扱う必要が頻繁にあります。PDType0Fontは、フォントメトリクスの照会、グリフ幅の取得、使用されているエンコーディングスキームの理解のためのメソッドを提供します。これらはすべて、テキスト測定、レイアウト計算、コンテンツ抽出などのタスクに不可欠です。PDType0Fontのようなクラスを通じてType 0フォントを適切に処理しないと、アプリケーションは文字化けしたテキスト、誤った文字マッピング、またはアクセス不可能なドキュメントを生成する可能性があります。
PDType0Fontは、基礎となるPDFフォント辞書をラップし、そのプロパティにアクセスするためのJavaメソッドを提供することで機能します。PDFBoxがPDFドキュメントを解析し、/Type0サブタイプを持つフォントに遭遇すると、そのフォントリソースを表現するためにPDType0Fontオブジェクトをインスタンス化します。
このクラスは、Type 0フォント構造の主要なコンポーネントへのアクセスを提供します:
- 子孫フォント(Descendant Font):PDType0FontはCIDFont(子孫フォントプロパティを通じてアクセス)を参照し、実際のグリフ記述を含みます
- エンコーディング/CMap:フォントは文字コードをCIDにマッピングするためにCMapを使用し、PDType0Fontは文字からグリフへの変換のためにこれをアクセス可能にします
- フォントメトリクス:
getWidth()やgetHeight()などのメソッドにより、開発者はレイアウト計算のための寸法情報を取得できます - 埋め込みフォントプログラム:埋め込みフォントの場合、PDType0Fontは基礎となるTrueTypeまたはCFFフォントデータへのアクセスを提供します
開発者は通常、テキストレンダリングのためにフォントを読み込む際、既存のPDFからテキストコンテンツを抽出する際、または多言語サポートを持つ新しいPDFドキュメントを作成する際に、PDType0Fontと対話します。このクラスは、CIDキー付きフォントとCMap処理の複雑さを処理し、 ( 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 ) で定義されている基礎となるフォント構造へのアクセスを維持しながら、シンプルなインターフェイスを提供します。
- PDFont – PDFBoxにおけるすべてのPDFフォントタイプを表す抽象ベースクラスで、PDType0Fontはこれを継承します
- CIDFont – Type 0フォント構造内で子孫フォントとして機能する文字識別子フォント
- CMap – コンポジットフォントにおいて文字コードと文字識別子間のマッピングを定義する文字マップ
- Font Encoding – 文字コードをフォント内の特定のグリフにマッピングするメカニズム
- TrueType Font – Unicodeテキストレンダリングのために、Type 0フォント内に一般的に埋め込まれるフォント形式
- (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
