
透かしのZオーダー(透かしを本文の前面に配置するか、透かしを本文の背面に配置する背後に配置するか)を指定します。
透かしのZオーダーは次表の列挙型定数で指定します。
| 列挙型定数 | 説明 |
|---|---|
| ZORDER_BACK | 背面 |
| ZORDER_FRONT | 前面(デフォルト値) |
package cookbook;
import java.io.*;
import jp.co.antenna.ptl.*;
public class WaterMarkSetZorder {
// そのクラスのusageを表示する関数
public static void printUsage() {
System.out.println("usage: java WaterMarkSetZorder in-pdf-file out-pdf-file z-order");
System.out.println("z-order : 透かしのZオーダー\n 0 : 背面, 1 : 前面");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 3) {
printUsage(); //usageの表示
return;
}
int zOrder = Integer.parseInt(args[2]);
//コマンドライン引数の判定
switch(zOrder){
case 0:
case 1:
break;
default:
System.out.println("z-orderは0か1の数値で指定してください。");
printUsage(); // usageメッセージの表示
return;
}
...【WaterMarkSetRect.javaと同じ処理のため省略
・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード
・PtlParamOutputを用いて出力PDF名を指定
・BufferedReader brを設定してキー入力読み取りを準備する】...
// 透かしの追加
appendWaterMarkSetZorder(doc, br, zOrder);
...【EncryptWithUserPass.javaと同じ処理のため省略
・PtlParamOutputを用いてPtlPDFDocument docの内容を出力
・PtlException, Exception, Error を catchするエラー処理
・finally文で"--完了--"と表示する処理】...
}
public static void appendWaterMarkSetZorder(PtlPDFDocument doc, BufferedReader br, int zOrder)
throws PtlException, Exception, Error {
try (PtlParamWaterMarkText waterMarkText = new PtlParamWaterMarkText()) {
// 透かしのZオーダーの設定
switch(zOrder){
case 0:
waterMarkText.setZorder(PtlParamWaterMark.ZORDER.ZORDER_BACK);
break;
case 1:
waterMarkText.setZorder(PtlParamWaterMark.ZORDER.ZORDER_FRONT);
break;
}
...【WaterMarkSetRect.javaのappendWaterMarkSetRect()と同じ処理のため省略。
配置位置はWaterMarkSetPageRange.javaのappendWaterMarkSetPageRange()のものを共通とする。
・Zオーダー以外の、テスト用テキスト透かしに共通の設定をセットする。
・設定項目:配置位置・名前・ページ範囲・不透明度・文字列・
タイリング・フォント・文字の色・縁取りの色・対角線配置の有無・配置角度
・PtlPDFDocument docにテキスト透かしを設定する】...
}
}
}
WaterMarkSetZorder.java


図の上は透かしをテキストの背後、下が透かしをテキストの前面に配置しています。本プログラム例では透かしが不透明ですので、下はテキストが透かしの背後に隠れます。