配置領域をカラーで塗りつぶす透かしを挿入します。
PDF文書の指定した配置領域にカラーで塗りつぶした透かしを追加します。追加に必要な主な要素は以下の通りです。
本プログラム例では、塗りつぶす色をコマンドラインで指定します。色指定方法は、2.2.7 透かしの文字色と同じです。
package cookbook; import jp.co.antenna.ptl.*; public class ColorWaterMarkAppend { // そのクラスのusageを表示する関数 public static void printUsage(){ System.out.print("usage: java ColorWaterMarkAppend in-pdf-file out-pdf-file"); System.out.println(" colorR colorG colorB"); System.out.println("color-R, color-G, color-B :"); System.out.println("0.0~1.0の数値で指定。それぞれの色について1.0が最大"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 3) { printUsage(); // usageメッセージの表示 return; } // コマンドライン引数の読み取り float colorR = Float.parseFloat(args[2]); float colorG = Float.parseFloat(args[3]); float colorB = Float.parseFloat(args[4]); ...【WaterMarkSetMargin.javaと同じ処理のため省略 ・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード ・PtlParamOutputを用いて出力PDF名を指定】... // 透かしの追加 appendColorWaterMark(doc, colorR, colorG, colorB); ...【EncryptWithUserPass.javaと同じ処理のため省略 ・PtlParamOutputを用いてPtlPDFDocument docの内容を出力 ・PtlException, Exception, Error を catchするエラー処理 ・finally文で"--完了--"と表示する処理】... } public static void appendColorWaterMark(PtlPDFDocument doc, float colorR, float colorG, float colorB) throws PtlException, Exception, Error { try (PtlParamWaterMarkColor waterMarkColor = new PtlParamWaterMarkColor()) { //透かしを配置する矩形の設定 waterMarkColor.setMargin(10.0f, 10.0f, 10.0f, 10.0f); //透かしに指定する色の設定 try (PtlColorDeviceRGB color = new PtlColorDeviceRGB(colorR, colorG, colorB)) { waterMarkColor.setColor(color); } // 以下、PDF透かし以外と共通するデフォルトの設定 // 透かしの名前の設定 waterMarkColor.setName("waterMarkColor"); // 透かしの配置の設定 waterMarkColor.setAlign(PtlParamWaterMark.ALIGN.ALIGN_CENTER); // 透かしのZオーダーの設定 ZORDER_FRONT = 1 waterMarkColor.setZorder(PtlParamWaterMark.ZORDER.ZORDER_FRONT); // 透かしの不透明度の設定 waterMarkColor.setOpacity(0.5f); // デフォルトの設定終わり // 透かしを文書に設定する doc.appendWaterMark(waterMarkColor); } } }
ColorWaterMarkAppend.java