PDAppearanceStream
PDAppearanceStreamは、Apache PDFBox PDModel APIのクラスで、PDFドキュメント内のアピアランスストリームオブジェクトを表現します。
PDAppearanceStreamは、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 ) で規定されているように、注釈、フォームフィールド、その他のインタラクティブ要素の視覚的表現を定義します。この高レベルJavaクラスは、開発者がこれらのPDF要素のレンダリング時の表示方法を決定するグラフィカルコンテンツを読み取り、作成、変更するためのメソッドを提供します。
PDAppearanceStreamは、Apache PDFBoxのorg.apache.pdfbox.pdmodel.interactive.annotationパッケージに含まれる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 ) において、アピアランスストリームは特殊なフォームXObjectで、注釈、フォームウィジェット、署名フィールドの視覚的外観をレンダリングするために必要なコンテンツストリームとリソースを含みます。ページの静的コンテンツを定義する一般的なコンテンツストリームとは異なり、アピアランスストリームはインタラクティブ要素に特化して関連付けられ、複数の状態(例えば、ボタンの通常、ロールオーバー、押下状態)を持つことができます。
PDAppearanceStreamはPDFormXObjectを継承しており、フォームベースのコンテンツを扱う機能を引き継ぎながら、アピアランス関連のプロパティを管理する専用メソッドを追加しています。このクラスは、アピアランスのバウンディングボックス、マトリックス変換、および視覚的表現を定義する描画オペレータを含むコンテンツストリームへのアクセスを提供します。
インタラクティブPDFを扱う開発者にとって、PDAppearanceStreamは、カスタム視覚表現を必要とするフォームフィールド、注釈、デジタル署名を作成または変更する際に不可欠です。このクラスを理解することは、 ( 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ビューアや支援技術で正しくレンダリングされることが保証されます。
PDAppearanceStreamを使用することで、開発者はインタラクティブ要素の表示方法をプログラム的に正確に制御できます。これは、一貫したブランディングの維持、視認性の確保、カスタムフォームフィールドデザインの実装において重要です。アピアランスストリームを適切に操作しない場合、フォームフィールドが空白の矩形として表示されたり、デフォルトのアピアランスをサポートしないPDFビューアでまったく表示されなかったりする可能性があります。
PDAppearanceStreamは、PDFアピアランスストリーム辞書とそれに関連するコンテンツストリームをカプセル化することで機能します。注釈やフォームフィールドをレンダリングする必要がある場合、PDFビューアは注釈のアピアランス辞書(APエントリ)から適切なアピアランスストリームを検索します。アピアランスストリームには以下が含まれます:
- コンテンツストリーム: パス、テキスト、画像を使用して視覚的表現を描画するPDFオペレータのシーケンス
- リソース辞書: アピアランスをレンダリングするために必要なフォント、色、画像、その他のリソースへの参照
- BBox(バウンディングボックス): アピアランスの座標空間と寸法を定義
- マトリックス: アピアランスを拡大縮小、回転、移動するためのオプションの変換マトリックス
開発者は、注釈から取得するか新しいインスタンスを作成することでPDAppearanceStreamを使用します。このクラスは、生のコンテンツにアクセスするためのgetContentStream()、フォントやその他のアセットを管理するためのgetResources()、寸法を定義するためのsetBBox()などのメソッドを提供します。コンテンツは、PDPageContentStreamを使用するか、基盤となるCOSStreamオブジェクトを直接操作することで記述できます。
カスタムアピアランスを作成する場合、開発者は通常、新しいPDAppearanceStreamをインスタンス化し、そのバウンディングボックスとリソースを設定し、コンテンツストリームに描画コマンドを書き込み、適切なアピアランス状態キーの下で注釈のアピアランス辞書に割り当てます。
- PDAnnotation – 視覚的表現にアピアランスストリームを使用するすべてのPDF注釈オブジェクトの基底クラス
- PDFormXObject – PDAppearanceStreamの親クラスで、PDFドキュメント内の再利用可能なグラフィカルコンテンツを表現
- PDPageContentStream – アピアランスストリームやページコンテンツにグラフィカルコンテンツとオペレータを書き込むために使用されるクラス
- PDResources – アピアランスストリームで使用されるフォント、画像、その他のリソースのコレクションを管理
- PDAnnotationWidget – レンダリングのためにアピアランスストリームを必要とするインタラクティブフォームフィールド注釈を表現
- (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
