Java PDF ViewerでPDF上に追加のオブジェクトを描画する
JPedal APIを使用すると、レンダリングされたPDFの上に追加のコンテンツを追加できます。ドキュメントに追加される注釈とは異なり、追加コンテンツはドキュメント本体を変更することなくPDFページ上にレンダリングされます。追加コンテンツは、閲覧時や印刷時にページに追加することができます。以下で説明するすべての例はこちら で確認できます。
PdfDecoder.drawAdditionalObjectsOverPage(int page, int[] type, Color[] colors, Object[] obj) メソッドを使用すると、表示されるページに追加コンテンツを描画できます。このメソッドは、コンテンツを追加するページ番号と、コンテンツ情報を保持する3つの配列(後述)を受け取ります。
PdfDecoder.printAdditionalObjectsOverPage(int page, int[] type, Color[] colors, Object[] obj) メソッドを使用すると、表示されるページに追加コンテンツを描画できます。このメソッドは、コンテンツを追加するページ番号と、コンテンツ情報を保持する3つの配列(後述)を受け取ります。さらに、すべてのページにコンテンツを印刷できるメソッドPdfDecoder.printAdditionalObjectsOverAllPages(int[] type, Color[] colors, Object[] obj) も用意されています。
追加できるコンテンツにはいくつかのタイプがあり、それぞれ異なるタイプのオブジェクトを提供する必要があります。追加コンテンツを指定する際は、提供する配列にint、Colorオブジェクト、およびObjectを指定します。
- Type: DynamicVectorRenderer.FILLOPACITY
- Color: 値が使用されないためNull
- Object: 不透明度を指定するFloatで、1が完全に不透明、0が透明
- Type: DynamicVectorRenderer.STROKEOPACITY
- Color: 値が使用されないためNull
- Object: 不透明度を指定するFloatで、1が完全に不透明、0が透明
- Type: DynamicVectorRenderer.STROKEDSHAPE
- Color: 図形をストロークする色を指定するColorオブジェクト
- Object: ストロークされるShapeオブジェクト
- Type: DynamicVectorRenderer.FILLEDSHAPE
- Color: 図形を塗りつぶす色を指定するColorオブジェクト
- Object: ストロークされるShapeオブジェクト
- Type: DynamicVectorRenderer.IMAGE
- Color: 値が使用されないためNull
- Object: 追加する画像とその位置を含むImageObject
- Type: DynamicVectorRenderer.STRING
- Color: テキストの色を指定するColorオブジェクト
- Object: 追加する画像、フォント、位置を含むTextObject
- Type: DynamicVectorRenderer.CUSTOM
- Color: 値が使用されないためNull
- Object: JPedalCustomDrawObject
を実装する任意のオブジェクト。これにより、任意のコンテンツを追加できます。
注意: 特定のケースでは、PDFファイルにクリップが設定されている場合があり、その場合一部のカスタムオブジェクトが表示されないことがあります。追加オブジェクトを描画する前にクリップをnullに設定することを推奨します。
PdfDecoder.flushAdditionalObjectsOnPage(int page) メソッドは、指定されたページからすべての追加コンテンツを削除します。次回ページが描画される際、コンテンツは表示されなくなります。
