PDFieldは、Apache PDFBoxのPDModel APIにおける高レベルクラスで、PDFインタラクティブフォーム(AcroForm)内のフォームフィールドを表現します。
(
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
)
で定義されている文書構造の一部として、PDFieldはJava開発者に対して、テキストフィールド、チェックボックス、ラジオボタン、ドロップダウンリストなどのフォーム要素を読み取り、作成、変更するためのプログラマティックなアクセスを提供します。このクラスは、基盤となるPDFディクショナリ構造を抽象化することで、PDF仕様の深い知識を必要とせずにPDFフォームを扱いやすくします。PDFieldは、PDFフォームからのデータ入力、抽出、検証が必要なアプリケーションにとって不可欠です。
PDFieldは、Apache PDFBoxライブラリにおける抽象基底クラスで、PDF文書内に存在する様々なタイプのインタラクティブフォームフィールドを表現します。このクラスは、PDTextField、PDCheckBox、PDRadioButton、PDChoice(コンボボックスとリストボックス用)、PDSignatureFieldなどの特定のフィールドタイプの親クラスとして機能します。各PDFieldインスタンスは、PDFのAcroForm構造内のフィールドディクショナリに対応しており、これは
(
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がインタラクティブフォームを実装するためのメカニズムです。
PDFieldTreeは、Apache PDFBoxのPDModel APIにおける高レベルJavaクラスで、PDFドキュメント内のフォームフィールドの階層構造にプログラムでアクセスする機能を提供します。このクラスを使用することで、開発者は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
)
で定義されているインタラクティブフォーム要素の操作、読み取り、変更が可能になります。PDFieldTreeは、PDFドキュメントにおけるAcroFormフィールド辞書とその親子関係を扱うための主要なインターフェースとして機能します。
PDFieldTreeは、PDFドキュメント内のフォームフィールド(AcroForm)のツリー構造を表現するApache PDFBoxの具象実装クラスです。COS(Carousel Object Structure)辞書を直接操作する低レベルのPDFBoxクラスとは異なり、PDFieldTreeは
(
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
)
で規定されているフォームフィールドの階層構造を走査・操作するための抽象化された開発者フレンドリーなインターフェースを提供します。
PDFileSpecificationは、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
)
で定義されているように、PDF内で外部ファイルや埋め込みファイルストリームがどのように参照されるかを定義します。このクラスは、ファイル仕様オブジェクトを作成、読み取り、変更するためのメソッドを提供し、開発者がファイル添付や外部ファイル参照をプログラム的に扱えるようにします。
PDFileSpecificationは、
(
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ファイル仕様辞書構造をカプセル化したJavaクラスです。PDFアーキテクチャにおいて、ファイル仕様とは、パスで参照される外部ファイルであれ、PDF自体に含まれる埋め込みファイルストリームであれ、ファイルの位置特定とアクセス方法を記述するデータ構造です。このクラスは、ファイル名、説明、埋め込みファイルストリーム、ファイルシステム識別子などのファイル仕様プロパティを操作するためのオブジェクト指向インターフェースを提供します。PDFプリミティブオブジェクトを直接扱う低レベルのCOS(Carousel Object Structure)クラスとは異なり、PDFileSpecificationはより高い抽象化レベルで動作し、開発者にとって一般的なファイル添付操作を簡素化します。
PDFMarkedContentExtractorは、Apache PDFBoxライブラリに含まれる特殊なクラスで、PDF文書からマークされたコンテンツ(marked content)を抽出・処理する機能を開発者に提供します。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
)
。このクラスは、マークされたコンテンツのシーケンスへのプログラム的なアクセスを提供し、開発者が単純なテキスト抽出ではなく構造タグに基づいて情報を読み取り、分析し、抽出できるようにします。
PDFMarkedContentExtractorは、Apache PDFBoxのPDModelパッケージに含まれる高レベルAPIコンポーネントで、PDFページのコンテンツストリームからマークされたコンテンツを抽出する処理を専門的に行います。PDFから単に生のテキストを取得する基本的なテキスト抽出ツールとは異なり、このクラスはPDFコンテンツストリーム内のBMC(Begin Marked Content)およびBDC(Begin Marked Content with Properties)オペレーターによって定義されるマークされたコンテンツ構造を理解し、それに従います
(
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
)
。このエクストラクターは、マークされたコンテンツタグで囲まれたコンテンツを識別し、関連するプロパティを取得し、論理構造の階層を認識することができます。これは、連続的なテキスト抽出に焦点を当てたPDFTextStripperや、視覚的なレンダリングを処理するPDFRendererとは異なります。PDFMarkedContentExtractorは、PDFをアクセシブルで機械可読にする構造メタデータ層を特に対象としています。
PDFMergerUtilityは、Apache PDFBox PDModel APIに含まれる高水準のユーティリティクラスで、開発者が複数のPDF文書をプログラムで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
)
で定義された注釈、フォームフィールド、文書メタデータなどの内部構造を保持します。Javaアプリケーションにおいて、PDF操作タスクで最もよく使用されるクラスの1つです。
PDFMergerUtilityは、Apache PDFBoxのPDModelパッケージに含まれる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
)
で定義されているPDFの内部オブジェクト構造に直接アクセスする必要がある低水準のPDF操作アプローチとは異なり、PDFMergerUtilityはこれらの複雑さをシンプルなAPIの背後に抽象化しています。このクラスは、ページツリーの結合、リソースの統合、相互参照テーブルの管理といった技術的な詳細を自動的に処理します。
PDFObjectStreamParserは、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
)
で定義されているようにPDF 1.5で導入された機能で、複数の間接オブジェクトを圧縮形式で格納するための空間効率の高い仕組みです。このパーサーにより、開発者は最新のPDFファイルを扱う際に、これらの圧縮されたオブジェクトを抽出・操作できるようになります。
PDFObjectStreamParserは、Apache PDFBox内の低レベル解析コンポーネントで、オブジェクトストリーム(/Type /ObjStm指定を持つストリームオブジェクト)の読み取りと解釈を専門的に処理します。PDF構造への高レベルアクセスを提供するPDDocumentクラスとは異なり、PDFObjectStreamParserは、
(
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
)
で規定されているようにオブジェクトストリーム内に格納された個別オブジェクトの展開と抽出という技術的なタスクに焦点を当てています。このパーサーは、オブジェクトストリームの2部構成を処理します。第1セクションにはオブジェクト番号とバイトオフセットのペアが含まれ、第2セクションには圧縮ストリーム内の実際のオブジェクトデータが含まれます。
PDFontは、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
)
に準拠したPDF内のテキストコンテンツをレンダリングするために不可欠なフォントオブジェクトへのアクセスと操作を行うJavaインターフェースを提供します。このクラスは、Type 1、TrueType、OpenType、CIDフォントなど、さまざまなPDFフォントタイプを扱うための基盤として機能します。PDFontにより、開発者はフォントプロパティの読み取り、テキスト文字列のエンコード、PDF文書の作成や修正時の適切なテキストレンダリングを実現できます。
PDFontは、Apache PDFBoxライブラリにおける抽象基底クラスで、PDF仕様で定義されたフォントリソースを扱うために必要な機能をカプセル化します。生のフォントデータ構造を扱う低レベルのフォント解析クラスとは異なり、PDFontはPDModelレイヤーで動作し、フォントメトリクスの取得、PDFコンテンツストリーム用の文字列エンコード、グリフ情報へのアクセスなど、一般的なフォント操作のための開発者に優しいメソッドを提供します。
クラス階層には、特定のフォントタイプ用の具体的な実装が含まれます:複合フォント(Unicode テキストで一般的に使用)用のPDType0Font、PostScript Type 1フォント用のPDType1Font、TrueTypeフォント用のPDTrueTypeFont、ユーザー定義フォント用のPDType3Font、マルチプルマスターフォント用のPDMMType1Fontです。各サブクラスは、それぞれのフォント形式の特定のエンコードとレンダリング要件を処理しながら、PDFont基底クラスを通じて一貫したインターフェースを維持します。
PDFontは、JavaのFontクラスとは異なり、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フォントディクショナリへの準拠など、PDF文書の要件に特化して対応しています。
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
)
によると、フォントディスクリプタには、フォント名、フォントファミリー、ウェイト、バウンディングボックス、アセント、ディセント、およびイタリック、ボールド、固定ピッチなどの特性を示すフラグを含む、フォントのメトリクス、スタイル、特性に関する重要な情報が含まれます。
PDFontFactoryは、Apache PDFBox PDModel APIのユーティリティクラスで、PDFドキュメント操作に使用されるフォントオブジェクトの作成と読み込みを行うファクトリメソッドを提供します。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
)
で定義されたフォント仕様に依存していますが、PDFontFactoryはJavaアプリケーションでこれらのフォントをプログラム的に扱うプロセスを簡素化します。このクラスは、PDFコンテンツの読み取り、作成、または変更時にフォントへのアクセスや埋め込みが必要な開発者にとって、主要なエントリーポイントとして機能します。
PDFontFactoryは、Apache PDFBoxの高レベルPDModel API内のファクトリクラスで、PDFフォント処理の複雑さを抽象化します。PDFフォント辞書を直接表現する低レベルのフォントクラスとは異なり、PDFontFactoryはフォントの読み込み、タイプ検出、およびフォントオブジェクトの適切な初期化を処理する便利なメソッドを提供します。このクラスは、Type 1、TrueType、Type 3、および複合フォント(Type 0)を含むすべての標準PDFフォントタイプをサポートしています。フォントタイプと使用要件に基づいて、フォントのサブセット化、エンコーディングテーブル、およびグリフマッピングを自動的に管理します。PDFontFactoryは、検証、エラー処理、およびソースフォントファイル形式に基づく適切なフォント実装の自動選択を提供することで、直接的なフォントインスタンス化とは異なります。
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操作の最も複雑な側面の1つです。PDFontFactoryは、基礎となるフォントタイプに関係なく、フォント操作のための統一されたインターフェースを提供することで、この複雑さを大幅に軽減します。これは特に、スクリーンリーダーや支援技術のために適切なフォント埋め込みとUnicodeマッピングを必要とする
(
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を作成する際に重要です。PDFontFactoryがなければ、開発者はフォントストリームの解析、ディスクリプタの作成、およびエンコーディングテーブルの管理を手動で処理する必要があり、これらはエラーが発生しやすく、保守が困難なタスクです。ファクトリパターンは、アプリケーション全体で一貫したフォントオブジェクトの作成を保証し、不適切に初期化されたフォントに関連するバグを削減します。
PDFontLikeは、Apache PDFBoxの高レベルPDModel APIにおけるインターフェースで、PDF文書内のフォントを扱うための統一的な抽象化を提供します。このインターフェースにより、開発者は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
)
で定義されている様々な具象フォント実装を区別する必要なく、フォントのプロパティやメトリクスにアクセスできます。異なるフォントタイプに共通のインターフェースを実装することで、PDFontLikeはPDF処理アプリケーションにおけるフォント操作を簡素化します。
PDFontLikeは、Apache PDFBoxライブラリ内のJavaインターフェースで、すべてのPDFフォントタイプの基本抽象化として機能します。このインターフェースは、Type 1、TrueType、Type 3、CIDFont、およびPDF仕様でサポートされている他のフォント形式を含む、すべてのPDFフォント実装に適用可能な共通メソッドを定義しています。PDFontLikeを実装するクラスは、テキストのエンコード、グリフメトリクスの取得、フォント記述子の取得、およびフォント固有のプロパティへのアクセスなどの機能を提供します。この抽象化レイヤーにより、開発者は基盤となるフォントタイプに関係なく汎用的に動作するコードを記述でき、必要に応じてPDType1Font、PDTrueTypeFont、PDType0Fontなどの具象実装を通じてタイプ固有の機能にもアクセスできます。
PDF文書を扱う開発者にとって、PDFontLikeは異なるPDFフォントタイプ間でフォント操作を簡素化する重要な抽象化を提供します。これは特に、フォントタイプが多様である既存のPDF文書を処理する際に重要です。開発者は広範な型チェックを行うことなく、汎用的なフォント処理コードを記述できるためです。PDF/UA
(
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を扱う場合、テキストが正しく抽出され、支援技術がコンテンツを正確に読み取れるようにするために、適切なフォント処理が不可欠です。このインターフェースは、フォント置換、テキスト測定、レイアウト計算など、PDF生成および変更ワークフローにおける一般的なタスクも容易にします。PDFontLikeを理解することで、開発者は多様なPDF文書全体でフォントを一貫して処理する、より堅牢なPDF処理アプリケーションを構築できます。