10.2.1 PDFに設定されたJavaScriptの一括削除

OptimizeRemoveJavaScripts_Top

狙い・効果

PDFからJavaScriptを一括で削除します。

処理の概要

最適化の際にPDFからJavaScriptアクション及びJavaScriptそのものを一括で削除するよう指定できます。

JavaScriptアクションはリンク注釈などを選択した際にJavaScriptで書いたプログラムが呼び出される機能で、文書内から移動しようとした際に呼び出される『アクション』の一種です。

PDFからJavaScriptを削除することは、例えばセキュリティを向上させるなどの目的に役立ちます。

サンプルプログラムでは、入力PDFからJavaScriptアクション及びJavaScriptを削除して出力します。

『PDF Tool API』の主な機能

プログラム例

package cookbook;

import jp.co.antenna.ptl.*;

public class OptimizeRemoveJavaScripts {

    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.println("usage: java OptimizeRemoveJavaScripts in-pdf-file out-pdf-file");
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 2) {
            printUsage();
            return;
        }

        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlParamOutput outputFile = new PtlParamOutput(args[1]);
             PtlPDFDocument doc = new PtlPDFDocument()) {
            // PDFファイルをロードします。
            doc.load(inputFile);

            optimizeDocByRemovesetJavaScripts(doc);

            // ファイルに保存します。
            doc.save(outputFile);
        }
	...【GetPDFVersion.javaと同じ処理のため省略
	   ・エラーメッセージ処理と出力】...
    }

    public static void optimizeDocByRemovesetJavaScripts(PtlPDFDocument doc)
        throws PtlException{
        try(PtlParamOptimize paramOptimize = new PtlParamOptimize()) {
            //オープンアクションの削除フラグを設定
            paramOptimize.setRemoveJavaScripts(true);

            // 最適化の実行
            doc.optimize(paramOptimize);
        }
    }
}

プログラムファイル名

OptimizeRemoveJavaScripts.java

入出力操作の例

C:\samples>java cookbook.OptimizeRemoveJavaScripts 
usage: java OptimizeRemoveJavaScripts in-pdf-file out-pdf-file

C:\samples>java cookbook.OptimizeRemoveJavaScripts sample_JavaScriptAction.pdf Output_OptimizeRemoveJavaScripts.pdf 
-- 完了 --

この操作例ではJavaScriptアクションが挿入された元PDFからJavaScriptを削除しています。

加工前の入力PDFでは赤線で囲まれた部分をマウスでクリックするとJavaScriptでポップアップメッセージが表示されます。

5-10-2-1_OptimizeRemoveJavaScripts

図10.2 加工前の入力PDF。JavaScriptでポップアップが表示される例

出力後のPDFでは赤線で囲まれた部分をクリックはできますが、クリックしても何も起こらなくなっています。