PDTristimulus は、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
)
で規定されている人間の視覚システムの応答に対応する3つの数値成分を使用して色を定義します。このクラスにより、開発者は PDF ドキュメントをプログラム的に操作する際に、CalRGB や CalGray などの校正された色空間を読み取り、操作することができます。
PDTristimulus は Apache PDFBox 内の Java クラスで、三刺激値の色座標を表す3つの浮動小数点値をカプセル化します。これらの値は通常、CIE XYZ 色空間における X、Y、Z 値に対応します。
(
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 ドキュメントにおいて校正された色空間を定義する基礎となるもので、白色点、黒色点、ガンマ補正パラメータを指定します。デバイス依存の RGB や CMYK 値とは異なり、三刺激値はデバイス独立の色指定を提供し、異なる出力デバイス間で一貫した色再現を保証します。PDTristimulus クラスは、デバイス固有の色エンコーディングではなく、人間の目で知覚される色の数学的表現を具体的に扱う点で、PDFBox の他の色クラスとは異なります。
PDTrueTypeFontは、Apache PDFBoxのPDModel APIに含まれるクラスで、PDF文書内のTrueTypeフォントを表現します。TrueTypeフォントは元々Appleによって開発され、後にMicrosoftに採用されたもので、PDF仕様でサポートされている複数のフォントタイプの1つです
(
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ファイルを作成、読み取り、または変更する際に、TrueTypeフォントリソースを扱うためのメソッドを提供します。
PDTrueTypeFontは、Apache PDFBoxの高レベルPDModel API内の具象実装クラスで、PDF文書に埋め込まれている、または参照されているTrueTypeフォントリソースを専門的に扱います。
(
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内のTrueTypeフォントは2次ベジェ曲線を使用してグリフのアウトラインデータを保存し、テキストレンダリングに必要なメトリクス情報を含んでいます。このクラスはPDFBoxのフォント階層を拡張し、システムリソースからTrueTypeフォントを読み込み、PDF文書に埋め込み、正確なテキストレイアウトとレンダリングに必要なフォントメトリクスを取得する機能を提供します。異なるアウトライン形式を使用するType1フォントやCFFフォントとは異なり、TrueTypeフォントはクロスプラットフォーム互換性を提供し、異なるシステム間で一貫したテキスト表示を必要とする文書、特に
(
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において一般的に使用されます。
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は開発者がそれらと対話するために使用するクラスです。
PDType1CFontは、Apache PDFBoxライブラリにおいて、PDFドキュメントの高レベルPDModel API内でType 1 Compact Font(CFF)を表現するクラスです。このクラスにより、開発者はPDF仕様で定義されている標準フォントタイプの1つであるCompact Font Formatを使用するType 1フォントをプログラム的に読み取り、操作、および処理できます
(
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
)
。Type 1Cフォントは、PostScript Type 1フォント技術との互換性を維持しながら、圧縮されたフォントデータによる効率的なフォント保存を提供します。
PDType1CFontは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.fontパッケージ内のJavaクラスで、PDFドキュメントに埋め込まれている、または参照されているType 1 Compactフォントをオブジェクト指向で表現するものです。フォントプログラムをPostScriptで保存する旧来のType 1フォント形式とは異なり、Type 1CフォントはCompact Font Format(CFF)を使用して、より効率的なデータエンコーディングにより小さいファイルサイズを実現します。このクラスはPDFBoxのフォント処理階層を拡張し、Type 1Cフォント固有のフォントメトリクス、文字マッピング、およびグリフデータにアクセスするメソッドを提供します。PDType1CFontは、従来のType 1フォントを処理する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
)
で定義されているType 1フォントのCFFベースのバリアントを専門的に処理します。
PDType1Fontは、Apache PDFBoxライブラリにおけるJavaクラスで、PDF文書のリソース構造内のType 1フォントを表現します。PDFBoxの高レベルPDModel APIの一部として、このクラスはPDF文書をプログラム的に作成または変更する際に、Type 1フォントの読み取り、操作、埋め込みを行うメソッドを提供します。Type 1フォントは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
)
で定義されている複数のフォントタイプの1つであり、PDType1FontはPDFBoxアプリケーションでこれらのフォントを扱うためのJava表現として機能します。
PDType1Fontは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.fontパッケージ内の具象実装クラスです。このクラスはPDSimpleFont抽象クラスを継承し、特にType 1フォントを処理します。Type 1フォントは、3次ベジェ曲線を使用して文字のアウトラインを定義するPostScriptベースのフォントプログラムです。TrueTypeフォント(PDFBoxではPDType0FontまたはPDTrueTypeFontで表現)とは異なり、Type 1フォントは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
)
で定義される異なる内部構造とエンコーディングメカニズムを持ちます。
PDType3CharProcは、Apache PDFBoxのPDModel APIに含まれるクラスで、PDF文書内のType 3フォント文字手続き(グリフ記述)を表現します。
(
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
)
で定義されているType 3フォントは、各文字グリフが描画操作を含むPDFコンテンツストリームによって記述されるユーザー定義フォントです。このクラスは、Javaアプリケーション内でType 3フォントを扱う際に、これらの文字固有のコンテンツストリームをプログラムで読み取り、操作するためのアクセスを提供します。
PDType3CharProcは、Type 3フォント内の単一文字(グリフ)を定義するコンテンツストリームをカプセル化する、Apache PDFBoxの高レベルラッパークラスです。事前定義されたグリフアウトラインを使用するType 1フォントやTrueTypeフォントとは異なり、PDFのType 3フォントは実行可能なPDFグラフィックス演算子を通じてカスタムグリフ定義を可能にします。各文字手続きは、基本的に、特定の文字をレンダリングするためのペイント演算子(パス、塗りつぶし、ストローク、画像など)を含む小型のPDFページです。
このクラスは、PDFBoxのコンテンツストリーム処理インフラストラクチャを継承または密接に連携し、基礎となるバイトストリームへのアクセスとグラフィックス演算子の解析を行うメソッドを提供します。このクラスは、事前レンダリングされたアウトラインやメトリクスデータではなく、グリフの手続き的定義を具体的に扱うという点で、PDFBox内の他のフォント関連クラスとは異なります。
PDF文書を扱う開発者にとって、PDType3CharProcは、Type 3フォントを含む文書を処理する際に不可欠です。Type 3フォントは、レガシーPDF、専門的な技術文書、またはカスタム記号やグラフィカルな文字を含む文書によく見られます。このクラスを理解することは、特に以下の場合に重要です:
PDType3Fontは、Apache PDFBox PDModel APIにおいて、PDF文書内のType 3フォントを表現するクラスです。Type 3フォントは、各グリフが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ファイル内のType 3フォントリソースをプログラムで読み取り、操作、作成することが可能になります。
PDType3Fontは、Apache PDFBoxのPDModel API階層内にある高レベルのJavaクラスで、Type 3フォントを専門的に扱います。事前定義されたフォントプログラムを参照するType 1フォントやTrueTypeフォントとは異なり、Type 3フォントはグリフをグラフィックスオペレータを含むPDFコンテンツストリームとして定義します。Type 3フォントの各文字は、本質的には塗りつぶし、ストローク、さらには画像を含むことができる描画命令を持つ小さなPDFページです。PDType3Fontクラスは、フォントメトリクス、文字定義、エンコーディング情報にアクセスするメソッドを提供すると同時に、低レベルのPDF辞書構造を抽象化します。このクラスは基底クラスであるPDSimpleFontを拡張し、レンダリングやテキスト抽出に必要なフォント固有の操作を実装しています。このクラスは、カスタムシンボル、フォントとして埋め込まれたロゴ、または標準フォント形式では実現できない特殊な組版効果を含むPDFを扱う際に特に重要です。
PDF文書を扱う開発者にとって、カスタムフォントや装飾フォントを含む文書を扱う際には、PDType3Fontの理解が不可欠です。Type 3フォントは、特殊なシンボルを含むフォーム、カスタム記法を含む技術文書、フォントがグラフィックスとして埋め込まれたレガシー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/UA準拠チェックを実装する際、開発者はType 3フォントを標準フォントとは異なる方法で処理する必要があります。これは、Type 3フォントには組み込みのUnicodeマッピングがなく、適切なアクセシビリティ情報を持たない可能性があるためです。PDType3Fontクラスは、グリフ定義の検査、フォントメタデータの抽出、アクセシビリティのための適切なToUnicodeマッピングの存在確認に必要なメソッドを提供します。さらに、プログラムでPDFを生成する際、このクラスにより開発者は標準フォントでは不十分な特殊なユースケース向けにカスタムフォント定義を作成できますが、結果として得られる文書がアクセシブルで標準準拠であることを保証するために慎重な配慮が必要です。
PDTypedDictionaryWrapperは、Apache PDFBoxの高レベルPDModel APIにおける抽象基底クラスで、PDFディクショナリオブジェクトを扱うための型安全なJavaインターフェースを提供します。このクラスは、ページ、注釈、フォームフィールド、ドキュメントリソースなど、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
)
で定義された構造化要素を表す多くのPDFBoxクラスの基盤となっています。このラッパーパターンにより、開発者は低レベルのディクショナリのキーと値のペアを直接操作するのではなく、強く型付けされたJavaオブジェクトを使用してPDF構造を操作できます。
PDTypedDictionaryWrapperは、COSDictionary(PDFBoxにおける低レベルのPDFディクショナリ表現)をラップし、その内容を型付けされたgetterおよびsetterメソッドを通じて公開する抽象Javaクラスです。このクラスは、PDFBoxの低レベルCOS(Carousel Object System)レイヤーと高レベルPDModel API間のアダプターとして機能します。開発者がこのクラスを拡張すると、特定のPDFディクショナリタイプ用の専用ラッパーを作成できます。例えば、ページディクショナリ用のPDPage、注釈ディクショナリ用のPDAnnotation、リソースディクショナリ用のPDResourcesなどです。各サブクラスは、
(
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
)
で定義された汎用ディクショナリエントリを、適切な型変換と検証を伴うJavaメソッドにマッピングします。
PDURIDictionaryは、Apache PDFBox PDModel APIのクラスで、PDF文書構造内のURI辞書を表現します。URI辞書は、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
)
で定義された特殊なオブジェクトであり、Webリンクや外部参照のためのURI(Uniform Resource Identifier)情報を格納します。このクラスは、PDFビューアがWebリンクや外部リソース参照を処理する方法を制御するURI辞書エントリを読み取り、操作するための高レベルなJavaインターフェースを提供します。
PDURIDictionaryは、PDF文書内の相対URIを解決するための基準URIを定義するPDF URI辞書オブジェクトをカプセル化した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
)
で定義されているPDF文書構造において、URI辞書は文書カタログ内で指定することができ、文書内のすべての相対URIが参照点として使用する基準URIを確立します。これは単純な文字列ベースのURI格納とは異なり、URI辞書はPDF仕様の要件に準拠した特定のキー・バリューペアを持つ構造化オブジェクトです。PDURIDictionaryクラスは、低レベルなCOS(Carousel Object Structure)層の操作を抽象化し、開発者がPDFオブジェクト構文を直接操作するのではなく、標準的なJavaメソッドを使用してURI設定を扱えるようにします。
PDUserAttributeObjectは、Apache PDFBox PDModel APIにおいて、PDF構造内のユーザー属性オブジェクトを表現するクラスです。この高レベルJavaクラスは、ページ、リソース、注釈、インタラクティブフォーム要素などの様々なPDFコンポーネントを読み取り、操作するためのメソッドを開発者に提供します。PDFBoxのオブジェクト指向抽象化レイヤーの一部として、
(
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仕様の取り扱いを簡素化します。
PDUserAttributeObjectは、Apache PDFBoxのPDModelパッケージ内の具象実装クラスであり、低レベルのPDFディクショナリオブジェクトをラップし、よりアクセスしやすいJava APIを通じて公開します。PDF構文要素を直接表現する低レベルのCOSBaseクラスとは異なり、PDUserAttributeObjectはより高い抽象レベルで動作し、型付きメソッドとPDF構造の詳細の自動処理を提供します。このクラスは特に、Tagged PDF構造のコンテキストにおいて、アクセシビリティと構造的メタデータが重要となる場合に、様々なPDF要素に関連付けられるユーザー属性情報を扱います
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
。