
配置領域をカラーで塗りつぶす透かしを挿入します。
PDF文書の指定した配置領域にカラーで塗りつぶした透かしを追加します。追加に必要な主な要素は以下の通りです。
本プログラム例では、塗りつぶす色をコマンドラインで指定します。色指定方法は、2.2.7 透かしの文字色と同じです。
PtlParamWaterMark.APIsetMargin() :透かしを配置するときの空きの設定 *PtlParamWaterMark.APIsetZorder() :透かしのZオーダーの設定 *PtlParamWaterMark.APIsetOpacity() :透かしの不透明度の設定 *PtlParamWaterMarkColor.APIsetColor() :透かしに指定する色の設定。設定しない場合はデフォルト値として白が使用される
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\n");
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

