Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

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) メソッドは、指定されたページからすべての追加コンテンツを削除します。次回ページが描画される際、コンテンツは表示されなくなります。