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を渡します。
- タイプ: DynamicVectorRenderer.FILLOPACITY
- Color: 値が使用されないため、Null
- Object: 不透明度を指定するFloat(1は完全に不透明、0は透明)
- タイプ: DynamicVectorRenderer.STROKEOPACITY
- Color: 値が使用されないため、Null
- Object: 不透明度を指定するFloat(1は完全に不透明、0は透明)
- タイプ: DynamicVectorRenderer.STROKEDSHAPE
- Color: 図形の線の色を指定するColorオブジェクト
- Object: 線を引くShapeオブジェクト
- タイプ: DynamicVectorRenderer.FILLEDSHAPE
- Color: 図形の塗りつぶし色を指定するColorオブジェクト
- Object: 線を引くShapeオブジェクト
- タイプ: DynamicVectorRenderer.IMAGE
- Color: 値が使用されないため、Null
- Object: 追加する画像とその位置を含むImageObject
- タイプ: DynamicVectorRenderer.STRING
- Color: テキストの色を指定するColorオブジェクト
- Object: 追加する画像、そのフォント、位置を含むTextObject
- タイプ: DynamicVectorRenderer.CUSTOM
- Color: 値が使用されないため、Null
- Object: JPedalCustomDrawObject
を実装する任意のオブジェクト。これにより、任意のコンテンツを追加できます。
注意: 特定の場合、PDFファイルにクリップが設定されていることがあり、その場合、一部のカスタムオブジェクトが表示されないことがあります。追加オブジェクトを描画する前に、クリップをnullに設定することをお勧めします。
メソッド PdfDecoder.flushAdditionalObjectsOnPage(int page) は、指定されたページからすべての追加コンテンツを削除します。次にページが描画されるときには、コンテンツは存在しなくなります。
