PDExtendedGraphicsState
PDExtendedGraphicsStateは、Apache PDFBoxライブラリのJavaクラスで、PDF拡張グラフィックス状態辞書への高レベルアクセスを提供します。
PDExtendedGraphicsStateは、Apache PDFBoxライブラリの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のPDModel APIレイヤーの一部であり、低レベルのPDF構造を開発者にとって使いやすいJavaオブジェクトに抽象化し、PDF文書の読み取りと操作を可能にします。
PDExtendedGraphicsStateは、Apache PDFBoxにおける具体的な実装クラスで、PDF仕様の拡張グラフィックス状態(ExtGState)オブジェクトを表現します。PDF文書において、拡張グラフィックス状態辞書には、基本的な色や位置指定を超えた、透明度設定、オーバープリント制御、ブレンドモード、ストロークパラメータなど、コンテンツのレンダリング方法を変更するパラメータが含まれています。
このクラスは、単純なPDFコンテンツストリームコマンドでは利用できないパラメータをカプセル化することで、基本的なグラフィックス状態オペレータとは異なります。色や線幅の設定などの基本的なグラフィックス状態操作はコンテンツストリーム内で直接呼び出すことができますが、拡張グラフィックス状態パラメータは名前で参照される別の辞書リソースを必要とします。PDExtendedGraphicsStateはこの辞書構造をラップし、PDF仕様で定義された各パラメータのgetterおよびsetterメソッドを提供します。
このクラスはPDFBoxのリソース管理フレームワーク内で動作し、拡張グラフィックス状態辞書はページのリソース辞書に保存され、コンテンツストリーム内でgsオペレータとリソース名を使用して参照されます。
PDF生成や操作を行う開発者にとって、PDExtendedGraphicsStateは、高度な視覚効果を必要とする文書を作成する場合や、複雑なグラフィックスの適切なレンダリングを保証する場合に不可欠です。透明効果、重なり合うオブジェクト間の高度なブレンド、ストロークとフィルの動作に対する正確な制御は、すべて拡張グラフィックス状態パラメータに依存しています。
このクラスは、アクセシビリティを確保するために視覚的な表現を注意深く制御する必要がある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文書を解析する際、PDExtendedGraphicsStateを使用することで、開発者はコンテンツに適用されたレンダリングパラメータを読み取り理解できるため、PDF分析ツール、コンバータ、検証ソフトウェアにとって重要です。
PDExtendedGraphicsStateは、拡張グラフィックス状態パラメータを格納するPDF辞書オブジェクトのラッパーとして機能します。新しい拡張グラフィックス状態を作成する際、開発者はクラスをインスタンス化し、そのsetterメソッドを使用して特定のパラメータを設定します。
PDExtendedGraphicsState gs = new PDExtendedGraphicsState();
gs.setLineWidth(2.0f);
gs.setStrokingAlphaConstant(0.5f);
gs.setBlendMode(BlendMode.MULTIPLY);
その後、コンテンツストリームで参照される前に、このクラスを一意の名前でページのリソース辞書に追加する必要があります。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 ) 仕様に従って、基礎となる辞書の作成とパラメータのエンコーディングを処理します。
PDExtendedGraphicsStateが公開する主要なパラメータには以下が含まれます。
- 透明度設定:ストローク操作および非ストローク操作のアルファ定数、ソフトマスク、アルファソースフラグ
- ブレンドモード:オブジェクトが重なり合う際の色の相互作用を制御(Normal、Multiply、Screen、Overlayなど)
- 線のレンダリング:線幅、キャップスタイル、ジョインスタイル、マイター制限、破線パターン
- オーバープリント制御:ある色を別の色の上に描画する際、下の色を削除するかどうかを決定
- ストローク調整:デバイスピクセルに合わせてストロークを調整するかどうかを制御
既存のPDFを読み取る際、PDExtendedGraphicsStateオブジェクトはリソース辞書から取得され、そのgetterメソッドを通じて設定されたパラメータにアクセスでき、開発者がレンダリング動作を分析または変更できるようにします。
- PDResources – PDFページまたはフォームに関連付けられたすべてのリソース(フォント、画像、グラフィックス状態)のコンテナクラス
- PDPageContentStream – 拡張グラフィックス状態への参照を含む、PDFページへのコンテンツストリーム操作を書き込むためのクラス
- BlendMode – グラフィカルオブジェクトが重なり合う際の色の結合方法を定義する列挙型
- PDGraphicsState – コンテンツストリーム処理中の完全なグラフィックス状態スタックのランタイム表現
- PDFormXObject – 独自の拡張グラフィックス状態設定を持つことができる再利用可能なグラフィカルコンテンツ
- (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
