PDImageは、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ファイルに埋め込まれている、または参照されている画像オブジェクトを、プログラムによって読み取り、操作し、書き込むためのアクセス手段を開発者に提供します。PDImageは、PDF画像構造の複雑さを抽象化することで、Java開発者が低レベルのPDFオブジェクト構文を直接扱うことなく画像を操作できるようにします。
PDImageは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.graphics.imageパッケージ内の抽象クラスであり、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
)
で定義されている画像XObjectを表現します。画像XObjectとは、画像データを含む外部オブジェクトであり、PDF文書全体で複数回参照およびレンダリングできます。PDImageは、生の画像ファイル形式(JPEGやPNGなど)とは異なり、PDF構造内にすでに埋め込まれている画像を表現し、カラースペース、画像マスク、フィルタ、レンダリングパラメータなどのPDF固有のメタデータを含みます。このクラスは、幅、高さ、コンポーネントあたりのビット数、カラースペースなどの画像プロパティにアクセスするメソッドや、生の画像データを抽出したり、標準的なJavaのBufferedImageオブジェクトに変換して更なる処理を行うためのメソッドを提供します。
PDImageXObjectは、Apache PDFBoxライブラリにおいて、PDFドキュメント内の画像XObjectを表すクラスです。PDFBoxの高レベルPDModel APIの一部として、Java開発者にPDFファイル内の画像リソースの読み取り、操作、作成へのプログラマティックなアクセスを提供します。画像XObjectは
(
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ドキュメント全体で複数回参照できるようにします。
PDImageXObjectは、PDF画像XObjectの構造と操作をカプセル化したJavaクラスです。PDF用語では、XObjectは一つまたは複数のページに複数回描画できる自己完結型のグラフィックスオブジェクトであり、画像XObjectは特にラスター画像やビットマップ画像を表します。コンテンツストリームに直接埋め込まれるインライン画像とは異なり、画像XObjectはPDFファイル構造内に別個のオブジェクトとして保存され、ページリソースから名前によって参照されます。PDImageXObjectクラスは、画像データの抽出、画像プロパティ(寸法、色空間、解像度)の照会、およびBufferedImageなどの一般的なJava画像フォーマットから新しい画像XObjectを作成するメソッドを提供します。
JavaでPDF生成や操作を行う開発者にとって、PDImageXObjectは画像を効率的に扱うために不可欠です。既存のPDFから画像を抽出して分析やアーカイブを行う、PDFドキュメントに新しい画像を追加する、同じ画像XObjectを複数のページで再利用することで重複する画像データの埋め込みを避けてPDFファイルサイズを最適化するといった操作を可能にします。これは特にアクセシブルなPDFを作成する際に重要で、XObjectを通じた適切な画像処理により、
(
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
)
などの標準で要求される代替テキストや構造要素とのより良い統合が可能になります。PDImageXObjectの理解は、PDF処理ワークフロー、レポート生成システム、またはドキュメント変換ツールを構築する開発者にとって極めて重要です。
PDIndexedは、Apache PDFBox PDModel APIのクラスで、PDF文書内のIndexedカラースペース(インデックス化色空間)を表現します。Indexedカラースペースは、カラールックアップテーブルを使用して単一のインデックス値を完全な色指定にマッピングすることで、
(
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構造内でインデックス化色空間定義を作成、読み取り、操作するためのメソッドを提供します。
PDIndexedは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.graphics.colorパッケージ内の具象実装クラスで、PDF仕様で定義されているIndexedカラースペースタイプに対応します。Indexedカラースペースは、基底色空間(RGBやCMYKなど)と、インデックス値(通常0〜255)をその基底空間内の特定の色にマッピングするカラールックアップテーブルを含んでいます。色値が直接色を指定する直接色空間とは異なり、PDIndexedは間接参照メカニズムとして機能し、画像が使用可能な色の一部のみを使用する場合にファイルサイズを大幅に削減します。
PDIndexedは、PDDeviceRGBやPDDeviceCMYKなどの他のPDFBoxカラースペースクラスとは異なり、それ自体がデバイス依存またはデバイス非依存のカラースペースではなく、別のカラースペースを参照し、事前定義されたパレットへのインデックスアクセスを提供する特殊なカラースペースタイプです。この特性により、ロゴ、アイコン、限られた色要件を持つグラフィックスなどの画像に特に有用です。
PDIndexedの理解は、PDF文書内の画像最適化とカラー管理を行う開発者にとって極めて重要です。限られたカラーパレットを持つ画像(PNG-8画像やGIF変換など)を含むPDFを処理または生成する際、インデックス化色空間の適切な処理により、完全なRGB表現と比較して50%以上のファイルサイズ削減が可能になることがあります。これは、帯域幅やストレージが懸念事項となるWeb配信やモバイルアプリケーション向けにPDFを生成する場合に特に重要になります。
PDInlineImageは、Apache PDFBox PDModel APIのクラスで、PDFコンテンツストリーム内に直接埋め込まれたインライン画像を表します。リソースとして個別に保存され名前で参照される外部画像XObjectとは異なり、
(
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
)
で定義されているインライン画像は、BI(begin inline image)オペレータとEI(end inline image)オペレータの間にページコンテンツストリーム内に直接エンコードされます。このクラスは、開発者がJavaアプリケーションでPDF文書を操作する際に、これらの埋め込み画像オブジェクトにプログラム的にアクセスし操作するためのメソッドを提供します。
PDInlineImageは、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
)
によれば、インライン画像は特殊な画像表現形式であり、画像辞書と画像データがページリソース辞書内のImage XObjectとして個別に保存されるのではなく、コンテンツストリーム内に直接記述されます。このアプローチは、間接参照で外部リソースとして保存される画像を表すより一般的なPDImageXObjectクラスとは異なります。
PDJavascriptNameTreeNodeは、Apache PDFBoxライブラリのクラスで、PDF文書内のJavaScript名前ツリーへのプログラマティックなアクセスを提供します。JavaScript名前ツリーは、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アクションとスクリプトを整理します。このクラスにより、開発者はPDFBoxの高レベルPDModel APIを通じて、PDF文書に埋め込まれたJavaScriptコードの読み取り、変更、管理が可能になります。
PDJavascriptNameTreeNodeは、
(
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名前ツリー構造を扱うApache PDFBox内の特化した実装です。名前ツリーは、文字列キーをPDFオブジェクトにマッピングするPDFファイル内の効率的なデータ構造で、特にアルファベット順の並び替えと高速検索が重要な大規模コレクション向けに設計されています。このクラスは、辞書ベースの直接的なアプローチとは異なり、JavaScriptエントリの数が増加しても効率的にスケールするツリーベースの構造を提供します。このクラスはPDFBoxの基本名前ツリーノード機能を拡張し、特にJavaScriptアクションオブジェクトを扱うことで、開発者が文書内のすべてのJavaScriptコードを列挙したり、名前で特定のスクリプトを取得したり、文書カタログに新しいJavaScriptエントリを追加したりできるようにします。
PDJpegは、Apache PDFBoxライブラリに含まれるJavaクラスで、PDF文書内に埋め込まれたJPEG画像データを表現します。これは、
(
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
)
で定義されているDCTDecodeフィルタ仕様に準拠したJPEG画像ストリームを処理するための特殊な実装として機能します。このクラスにより、開発者はPDFファイル構造内にXObjectとして保存されているJPEG画像を抽出、操作、処理することができます。
PDJpegは、Apache PDFBoxの画像処理フレームワーク内の具象クラスで、PDF文書内のJPEG圧縮画像データを専門的に扱います。汎用的な画像クラスとは異なり、PDJpegはJPEGが使用するDCT(離散コサイン変換)圧縮方式に最適化されています。これは
(
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つです。このクラスはPDFBoxのPDImageXObject階層を継承し、基礎となるJPEGデータストリームへのアクセス、幅、高さ、色空間、コンポーネントあたりのビット数などの画像プロパティのデコード、さらなる処理のための標準的なJava BufferedImageオブジェクトへの変換などのメソッドを提供します。PDJpegは、PDFBox内の他の画像クラス(PDImageXObjectStreamやPDInlineImageなど)とは異なり、JPEG色空間や圧縮パラメータの適切な処理を含む、JPEGエンコード画像の特性とメタデータを処理するために特化されています。
PDJPXColorSpaceは、Apache PDFBox PDModel APIにおいて、PDF文書内のJPX(JPEG 2000)色空間情報を扱う特化したクラスです。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
)
で定義されているように、JPEG 2000画像には標準的なPDF色空間とは異なる埋め込み色空間データが含まれる場合があります。このクラスは、PDFファイル内のJPX圧縮画像ストリームに固有の色空間プロパティにアクセスし、操作するためのメソッドをJava開発者に提供します。
PDJPXColorSpaceは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.graphics.colorパッケージ内の高レベルJavaクラスで、JPEG 2000(JPX)圧縮画像に関連付けられた色空間を表現します。DeviceRGB、DeviceCMYK、CalRGBなどのPDF構造内で明示的に定義される標準的なPDF色空間とは異なり、JPX色空間はJPEG 2000画像ストリーム自体に埋め込むことができます。このクラスは、JPXビットストリーム内に含まれる色空間情報とPDFBoxの色空間処理システムとの橋渡しとして機能し、開発者がPDFの色空間辞書に直接表現されていない可能性のある色情報を抽出・処理できるようにします。このクラスは、標準的なPDFBox色空間インターフェースを拡張または実装しながら、JPEG 2000の色仕様メソッドに特有の特性を専門的に処理します。
JPEG 2000画像を含むPDF文書を扱う開発者にとって、PDJPXColorSpaceは正確な色のレンダリングと画像処理に不可欠です。JPEG 2000は、デジタル保存、医用画像、プロフェッショナル出版など、精密な色管理が重要となる高品質なドキュメントワークフローで一般的に使用されています。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を処理する際、開発者は圧縮形式に関係なく画像が正しく解釈されることを保証する必要があります。適切なJPX色空間処理がなければ、アプリケーションは誤った色で画像をレンダリングしたり、画像データの抽出に失敗したり、PDFバージョン間の変換時にエラーが発生したりする可能性があります。このクラスにより、開発者はPDF仕様でサポートされる全範囲の画像フォーマットを処理できる堅牢なPDF処理アプリケーションを構築できます。
PDLabは、Apache PDFBox内の高レベル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
)
で定義されたPDFオブジェクトを操作するための主要なインターフェイスとして機能します。このクラスは、低レベルのPDF構文の複雑さを抽象化し、デベロッパーがオブジェクト指向プログラミングパターンを使用してPDF文書を操作できるようにします。
PDLabは、Apache PDFBoxのPDModelパッケージの一部であり、PDFファイルに対してDocument Object Model(DOM)のような構造を実装しています。PDF構文ストリームやディクショナリを直接操作する低レベルAPIとは異なり、PDLabは
(
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オブジェクトを提供します。このクラスは、文書レベルのプロパティ、ページツリー、フォームフィールド、注釈、その他の構造要素にアクセスし変更するためのメソッドを提供します。PDLabは、個々のページ内のレンダリングや描画操作ではなく文書構造に焦点を当てている点で、コンテンツストリーム操作クラスとは異なります。
PDLayoutAttributeObjectは、Apache PDFBoxの高レベルPDModel APIに含まれるJavaクラスで、PDF構造要素内のレイアウト属性へのプログラマティックなアクセスを提供します。このクラスを使用することで、開発者はTagged 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構造ツリー内でコンテンツ要素がどのように配置、サイズ設定、整理されるかを制御します。PDLayoutAttributeObjectは、PDFの論理構造とその視覚的表現の間の橋渡しとして機能します。
PDLayoutAttributeObjectは、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
)
で概説されているPDF仕様に準拠した属性辞書に格納される、バウンディングボックス、配置戦略、カラム仕様、ブロックレベルの配置設定などのプロパティが含まれます。
PDLineDashPatternは、Apache PDFBox PDModel APIのクラスで、PDFグラフィックスのストローク操作で使用される破線パターンを表します。このクラスは、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
)
で規定されているグラフィックス状態パラメータの一部であり、PDF文書内のストロークされたパスの視覚的な外観を決定します。
PDLineDashPatternは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.graphics.stateパッケージ内の具象Javaクラスで、PDFグラフィックス状態の破線パターンプロパティをカプセル化します。実線とは異なり、破線は特定のパターンに従って、描画される(不透明な)セグメントと描画されない(透明な)セグメントを交互に繰り返します。このクラスは2つの主要なコンポーネントをラップします。破線と間隔の長さを交互に指定する破線配列(dash array)と、パターン内の開始オフセットを決定する破線位相(dash phase)です。基礎となるPDF仕様では破線パターンを単純な数値配列として定義していますが、PDLineDashPatternは、Java開発者が生のPDF構文を直接操作することなく、プログラムでこれらのパターンを扱いやすくするオブジェクト指向のアクセスメソッドを提供します。
PDF生成や操作を行う開発者にとって、PDLineDashPatternは、境界線、下線、フォームフィールド、またはベクターグラフィックスのカスタム線スタイルを作成する際に不可欠です。このクラスを理解することで、視覚的表現を正確に制御できるようになります。これは、エンジニアリング図面、署名欄付きの法律文書、またはアクセシブルなフォームなど、特定のスタイル標準を必要とする文書において特に重要です。破線パターンをプログラムで設定および取得する機能により、開発者は生成された文書全体で視覚的な一貫性を維持したり、PDFを変更する際に既存の線スタイルを複製したり、単純な実線以外の独特な線処理を求めるデザイン仕様を実装したりできます。