org.apache.pdfbox.pdmodel.interactive.actionパッケージは、Apache PDFBoxのコアコンポーネントであり、PDFアクションを作成、読み取り、操作するためのJava 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
)
で定義されているように、ユーザーの操作やドキュメントイベントによってトリガーされる操作です。このパッケージにより、開発者はナビゲーション、JavaScript実行、フォーム送信、マルチメディア制御など、さまざまなアクションタイプをプログラムで扱うことができます。
org.apache.pdfbox.pdmodel.interactive.actionパッケージは、
(
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アクション辞書に対するオブジェクト指向の抽象化を提供し、開発者が低レベルのPDF構文を直接操作することなくアクションを扱えるようにします。このパッケージには、PDAction、PDActionJavaScript、PDActionGoTo、PDActionURI、PDActionNamedなどのクラスが含まれており、それぞれが特定のアクションタイプに対応しています。生のPDFオブジェクトを扱う低レベルのorg.apache.pdfbox.cosパッケージとは異なり、このパッケージはインタラクティブなドキュメント機能に特化した高レベルAPIを提供します。また、より広範なorg.apache.pdfbox.pdmodel.interactiveパッケージとは異なり、注釈やフォームなどのすべてのインタラクティブ要素ではなく、アクション関連の機能のみに焦点を当てています。
org.apache.pdfbox.pdmodel.interactive.annotationパッケージは、Apache PDFBoxライブラリの中核コンポーネントであり、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
)
で定義されているインタラクティブ要素であり、文書の基本構造を変更することなく、マークアップ、コメント、その他のコンテンツをユーザーが追加できるようにします。このパッケージは、テキストノート、リンク、マークアップアノテーション、フォームウィジェットなど、さまざまなアノテーションタイプへのプログラマティックアクセスを実装し、文書のインタラクティビティとアクセシビリティを向上させます。
org.apache.pdfbox.pdmodel.interactive.annotationパッケージは、Apache PDFBox内のJava API名前空間であり、PDFアノテーションオブジェクトを扱うためのクラスを集約しています。このパッケージには、PDF仕様で定義されているさまざまなアノテーションサブタイプの具体的な実装が含まれています。例えば、PDAnnotationText、PDAnnotationLink、PDAnnotationMarkup、PDAnnotationWidgetなどです。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
)
で概説されている構造に従っており、アノテーションはページのメインコンテンツストリームとは別に、インタラクティブ機能を提供する特定のページに関連付けられた辞書として扱われます。
org.apache.pdfbox.pdmodel.interactive.formパッケージは、Apache PDFBoxライブラリの中核コンポーネントであり、PDFドキュメント内のインタラクティブフォーム(AcroForm)を作成、読み取り、操作するためのJava 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ドキュメントとプログラム的に対話することを可能にします。このパッケージには、PDFフォーム処理に不可欠なフォームフィールド、フィールドウィジェット、フォームレベルのプロパティを表すクラスとインターフェースが含まれています。
org.apache.pdfbox.pdmodel.interactive.formパッケージは、Apache PDFBox内のJava名前空間であり、AcroFormとも呼ばれるPDFインタラクティブフォームのオブジェクトモデルをカプセル化します。このパッケージは、PDFフォーム構造に直接マッピングされる包括的なクラスセットを提供します。これには、フォーム辞書を表すメインのPDAcroFormクラスや、テキストフィールド(PDTextField)、チェックボックス(PDCheckBox)、ラジオボタン(PDRadioButton)、コンボボックス(PDComboBox)、プッシュボタン(PDPushButton)などの各種フィールドタイプが含まれます。
生のPDF構文を扱う低レベルのPDF操作とは異なり、このパッケージは高レベルなオブジェクト指向APIを提供し、PDFフォーム仕様の複雑さを抽象化します。フォームフィールド、その外観ストリーム、注釈、および基礎となるPDF構造間の複雑な関係を処理することで、開発者はPDF辞書を直接解析するのではなく、直感的なJavaオブジェクトを使用してフォームを操作できます。
PDFフォームを処理するアプリケーションを構築する開発者にとって、このパッケージはいくつかの実用的な理由から不可欠です。第一に、自動化されたフォーム入力ワークフローを可能にし、組織がデータベース、Webサービス、またはユーザー入力からのデータを使用して、手動でのデータ入力なしにPDFフォームをプログラム的に入力できるようにします。第二に、フォームデータ抽出をサポートし、ビジネスインテリジェンス、レポート作成、またはデータ移行の目的で、PDFフォームを通じて送信された情報を収集および処理することを可能にします。
org.apache.pdfbox.renderingパッケージは、Apache PDFBoxのコアコンポーネントであり、PDFドキュメントをさまざまな視覚形式にレンダリングするための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
)
で定義されている完全なPDF仕様をサポートしており、複雑な文書構造を正確に表現できます。
org.apache.pdfbox.renderingは、Apache PDFBoxライブラリ内のJavaパッケージであり、PDFコンテンツをラスタライズされた画像に変換するために特別に設計されたクラスとインターフェースを含んでいます。このパッケージの主要クラスはPDFRendererであり、個々のPDFページまたはドキュメント全体をPNG、JPEG、またはBufferedImageオブジェクトなどのビットマップ形式にレンダリングするメソッドを提供します。コンテンツの抽出、操作、または作成に焦点を当てた他のPDFBoxパッケージとは異なり、このパッケージは視覚的なプレゼンテーション層に特化しており、抽象的なPDFページ記述を具体的なピクセルベースの表現に変換します。レンダリングプロセスは、すべてのPDFグラフィックスオペレーター、フォント、画像、およびカラースペースを解釈し、PDF仕様のレンダリングモデルに一致する正確な視覚的出力を生成します。
PDFドキュメントを扱う開発者にとって、レンダリングパッケージはいくつかの実用的なユースケースにおいて重要です。文書管理システムのサムネイルプレビューの作成、ネイティブPDFサポートがないブラウザでPDFを表示できるWebアプリケーションの実現、OCR前処理や視覚的比較ツールなどの画像ベースの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を扱う際に特に価値があります。視覚的なレンダリングにより、タグ付きコンテンツ構造が意図した視覚的表現を生成していることを検証できるためです。さらに、このパッケージは品質保証テストに不可欠な機能を提供し、開発者がPDFの変更や生成が異なるプラットフォームや環境において視覚的に正しい出力を生成することをプログラム的に検証できるようにします。
org.apache.pdfbox.textパッケージは、Apache PDFBoxのコアコンポーネントであり、PDF文書からテキストコンテンツを抽出および操作するための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処理アプリケーションにおけるテキスト抽出、検索機能、コンテンツ分析機能を実装します。
org.apache.pdfbox.textパッケージは、Apache PDFBox内のテキスト操作に特化した専用のJava APIレイヤーです。このパッケージには、PDFコンテンツストリームをトラバースしてテキストを抽出するPDFTextStripperや、個々の文字の配置と書式設定に関する情報を保持するTextPositionなどの主要クラスが含まれています。生のPDFオブジェクトとストリームを扱う低レベルのPDFBoxパッケージとは異なり、このパッケージはテキスト関連の操作に特化した抽象化された高レベルのインターフェースを提供します。このパッケージは、文字エンコーディングマッピング、フォント置換、座標変換など、PDFの視覚的表現を抽出可能なテキスト文字列に変換するために必要な複雑な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
)
などのアクセシビリティ標準に準拠した文書の場合、このパッケージはTagged PDF構造を活用して、読み順でテキストを抽出することができます。
Orientationは、Apache PDFBox Java 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
)
では明示的に独立したエンティティとして定義されていませんが、ページの向きは変換行列と回転値を通じて実現され、これらがページ上のコンテンツのレンダリング方法に影響を与えます。
Apache PDFBoxのOrientationクラスは、PDFドキュメントにおけるページ回転と方向レイアウトを処理する機能をカプセル化したAPIユーティリティです。通常、90度単位の回転値(0度、90度、180度、または270度)を使用し、レンダリングや表示時にページコンテンツをどのように配置すべきかを決定します。コンテンツストリームと変換行列を直接操作する必要がある手動の回転変換とは異なり、Orientationクラスは、一般的な回転操作を簡素化する高レベルの抽象化を提供します。このクラスは、基本的な回転パラメータとは異なり、向きの状態を管理し、複数のページやドキュメントセクション全体に一貫して変換を適用するための構造化されたアプローチを提供します。
PDFを扱う開発者にとって、適切な向きの処理は、いくつかの実用的な理由から不可欠です。横向きモードでスキャンされたドキュメント、回転した表や図を含むページ、さまざまなソースからインポートされたコンテンツは、可読性を維持するために向きの調整を必要とすることがよくあります。Orientationクラスは、これらの操作を簡素化し、複雑な行列計算や低レベルのPDF操作を必要とする回転タスクに対して一貫したAPIを提供します。これは、アクセシブルなドキュメントを作成する際に特に重要です。不適切な向きは、スクリーンリーダーのナビゲーションやコンテンツ抽出に大きな影響を与え、
(
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ビューアや処理ツール間で正しく機能することが保証されます。
Apache PDFBoxのOverlayは、あるPDF文書のコンテンツを別のPDF文書のページ上に重ね合わせる機能を提供するJava 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
)
では階層化されたコンテンツの基本構造が定義されていますが、PDFBoxのOverlayクラスは、PDFコンテンツをプログラムで結合するための高レベルなJavaインターフェースを提供します。
Apache PDFBoxのOverlayクラスは、ソースPDF文書の1ページ以上をターゲットPDF文書のページの上(または下)に配置することで、PDFコンテンツの結合を容易にするユーティリティです。単純なページの連結やマージとは異なり、Overlay操作は、ベース文書の既存コンテンツを保持しながら、新しい視覚要素を階層化して追加します。このクラスは、各ページの既存コンテンツの前面(上)または背景(下)にオーバーレイコンテンツを配置するなど、さまざまなオーバーレイモードをサポートしています。これは、ページコンテンツを直接変更するコンテンツストリームとは異なり、Overlayはページレベルで動作し、
(
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の構造内で、元のコンテンツとオーバーレイされたコンテンツの両方の整合性を維持します。
Overlay.PositionはApache PDFBoxライブラリの列挙型クラスで、既存の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
)
はページコンテンツストリームの基本構造を定義していますが、PDFBoxのOverlay.Positionは、PDF操作タスク中にオーバーレイ要素のz順序を管理するためのプログラマティックな抽象化を提供します。
Overlay.PositionはJavaの列挙型で、PDF文書内の元のページコンテンツに対してオーバーレイコンテンツを配置する位置を指定する定義済み定数を含んでいます。このクラスには通常、FOREGROUND(既存コンテンツの上にオーバーレイコンテンツを配置)やBACKGROUND(既存コンテンツの下にオーバーレイコンテンツを配置)などの値が含まれます。
(
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オペレーターやグラフィックス状態パラメータの理解が必要ですが、Overlay.Positionはコンテンツストリームの順序付けの複雑さを抽象化した開発者フレンドリーなインターフェースを提供します。この列挙型は特にApache PDFBoxのオーバーレイユーティリティクラスの一部であり、PDF仕様の概念ではなく、PDFドキュメントをプログラマティックに扱うJava開発者向けの便利機能です。
PageDrawerは、Apache PDFBoxライブラリの基幹クラスであり、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文書を処理する際、PageDrawerはコンテンツストリームに含まれる図形命令を解釈し、視覚的な出力に変換します。このクラスは、抽象的なPDFコンテンツオペレーターと具体的な視覚表現との橋渡し役を果たすため、PDFのレンダリングや変換タスクにおいて不可欠な存在です。
PageDrawerは、Apache PDFBoxにおいてPDFページの低レベルレンダリングロジックを実装する抽象Javaクラスです。コンテンツストリーム内に存在するPDFオペレーター(パス構築、テキスト配置、色設定、グラフィックス状態の変更など)の順序を処理し、これらを描画可能な要素に変換します。文書構造やメタデータを管理する高レベルのPDFBoxクラスとは異なり、PageDrawerはコンテンツストリームレベルで動作し、
(
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
)
で規定されているペインティングオペレーターおよびマーキングオペレーターを直接処理します。
PageDrawerParametersは、Apache PDFBoxにおいて、PDFページコンテンツのレンダリングに必要なパラメータをカプセル化する設定クラスです。このクラスは、描画対象のページオブジェクト自体、変換行列、グラフィックス状態設定など、描画されるページに関する重要な情報をレンダリングエンジンに提供します。PageDrawerParametersは、
(
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
)
で定義されたコンテンツストリームの解釈と実行を担当するPageDrawerコンポーネントに、複数のレンダリング設定値を渡すことを簡素化するパラメータオブジェクトとして機能します。
PageDrawerParametersは、Apache PDFBoxライブラリ内のデータ転送オブジェクト(DTO)であり、PDFページのコンテンツストリームをレンダリングするために必要なすべてのパラメータをまとめたものです。このクラスには通常、レンダリング対象のPDPageオブジェクトへの参照、座標系マッピング用の変換行列、初期グラフィックス状態、その他のレンダリングコンテキスト情報が含まれます。実際のレンダリング操作を実行するPageDrawerクラスとは異なり、PageDrawerParametersは純粋に設定データのコンテナとして機能します。このクラスは、現在の描画状態ではなくページレベルのレンダリング設定を保持する点でグラフィックス状態オブジェクトとは異なり、また
(
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
)
で定義されたページ構造とコンテンツではなく、特にレンダリングパラメータに焦点を当てている点でPDPageオブジェクトとは異なります。