
PDFからJavaScriptを一括で削除します。
最適化の際にPDFからJavaScriptアクション及びJavaScriptそのものを一括で削除するよう指定できます。
JavaScriptアクションはリンク注釈などを選択した際にJavaScriptで書いたプログラムが呼び出される機能で、文書内から移動しようとした際に呼び出される『アクション』の一種です。
PDFからJavaScriptを削除することは、例えばセキュリティを向上させるなどの目的に役立ちます。
サンプルプログラムでは、入力PDFからJavaScriptアクション及びJavaScriptを削除して出力します。
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でポップアップメッセージが表示されます。

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