2.1.6 透かしの不透明度

images/WaterMarkSetOpacity-top.png

狙い・効果

透かしの不透明度を指定します。

処理の概要

透かしの不透明度の値を0.0(透明)~1.0(不透明)の範囲で設定します。例えば、透明なテキスト透かしも作成できます。透かしを透明にすることでユーザーの目に見えない情報を埋め込み目に見えない情報を埋め込めます。透明なテキスト透かしはPDFリーダーでは表示されなくても、検索でそのテキストは検索でヒットします。

PDF Tool APIの主な機能

プログラム例

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

入出力操作の例

images/WaterMarkSetOpacity.png

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

images/WaterMarkSetOpacity-example.png

図2・6 透かしの透明度(有無)