
透かしの不透明度を指定します。
透かしの不透明度の値を0.0(透明)~1.0(不透明)の範囲で設定します。例えば、透明なテキスト透かしも作成できます。透かしを透明にすることでユーザーの目に見えない情報を埋め込み目に見えない情報を埋め込めます。透明なテキスト透かしはPDFリーダーでは表示されなくても、検索でそのテキストは検索でヒットします。
package cookbook;
import jp.co.antenna.ptl.*;
public class WaterMarkSetOpacity {
// そのクラスのusageを表示する関数
public static void printUsage() {
System.out.println("usage: java WaterMarkSetOpacity in-pdf-file out-pdf-file opacity");
System.out.println("opacity : 0.0(透明)~1.0(不透明)の数値で指定");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 3) {
printUsage(); // usageメッセージの表示
return;
}
float opacity = Float.parseFloat(args[2]);
//コマンドライン引数の判定
if(opacity < 0.0f || 1.0f < opacity) {
System.out.println("opacityは0.0~1.0の数値で指定してください。");
printUsage(); // usageメッセージの表示
return;
}
...【WaterMarkSetMargin.javaと同じ処理のため省略
・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード
・PtlParamOutputを用いて出力PDF名を指定】...
// 透かしの追加
appendWaterMarkSetOpacity(doc, opacity);
...【EncryptWithUserPass.javaと同じ処理のため省略
・PtlParamOutputを用いてPtlPDFDocument docの内容を出力
・PtlException, Exception, Error を catchするエラー処理
・finally文で"--完了--"と表示する処理】...
}
public static void appendWaterMarkSetOpacity(PtlPDFDocument doc, float opacity)
throws PtlException, Exception, Error {
try (PtlParamWaterMarkText waterMarkText = new PtlParamWaterMarkText()) {
// 透かしの不透明度の設定
waterMarkText.setOpacity(opacity);
...【WaterMarkSetRect.javaのappendWaterMarkSetRect()と同じ処理のため省略。
配置位置はWaterMarkSetPageRange.javaのappendWaterMarkSetPageRange()のものを共通とする。
・不透明度以外の、テスト用テキスト透かしに共通の設定をセットする。
・設定項目:配置位置・名前・Zオーダー・ページ範囲・文字列・
タイリング・フォント・文字の色・縁取りの色・対角線配置の有無・配置角度
・PtlPDFDocument docにテキスト透かしを設定する】...
}
}
}
WaterMarkSetOpacity.java

次図は上が透かしの透明度を0.2、下が同透明度0.7に設定した結果です。
