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では赤線で囲まれた部分をクリックはできますが、クリックしても何も起こらなくなっています。