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