カスタムプロパティを削除します。
PDFドキュメントに追加されたカスタムプロパティは削除できます。
削除するカスタムプロパティはインデックス番号を用いて個別に指定する他、全てを一括で削除することもできます。
本サンプルプログラムでは、入力PDFにあるカスタムプロパティを指定して削除したPDFドキュメントを出力します。何番目のカスタムプロパティを削除するか、もしくは全削除するかを数値で指定します。
package cookbook; import jp.co.antenna.ptl.*; public class RemoveCustomDocProperty { // そのクラスのusageを表示する関数 private static void printUsage() { System.out.println("usage: java RemoveCustomDocProperty in-pdf-file out-pdf-file" + " num-of-custom-prop"); System.out.println("num-of-custom-prop : "); System.out.println("0 : カスタムプロパティを全削除"); System.out.println(" 0以外の数値 : n番目に入っているカスタムプロパティを削除"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 3) { printUsage(); return; } try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlParamOutput outputFile = new PtlParamOutput(args[1]); PtlPDFDocument doc = new PtlPDFDocument()) { // PDFファイルをロード doc.load(inputFile); try (PtlDocProperty docProperty = doc.getDocProperty(); //PDFの文書プロパティ PtlCustomProperties customProperties = docProperty.getCustomProperties()) { // コマンドライン引数の指定と判定 int numToRemoveCustomProp = Integer.parseInt(args[2]); if( customProperties.getCount() < numToRemoveCustomProp){ System.out.println("num-of-custom-prop はカスタムプロパティ数" + "より小さい値を指定してください。"); return; } // カスタムプロパティを削除 // 0のときは全て削除 if(numToRemoveCustomProp == 0){ customProperties.removeAll(); }else { // 指定カスタムプロパティを削除 // (パラメータindexは0が先頭のため1を引く) customProperties.remove(numToRemoveCustomProp - 1); } } // ファイルに保存します doc.save(outputFile); } ...【AppendAnnotStampDefault.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } }
RemoveCustomDocProperty.java
C:\samples>java cookbook.RemoveCustomDocProperty usage: java RemoveCustomDocProperty in-pdf-file out-pdf-file num-of-custom-prop num-of-custom-prop : 0 : カスタムプロパティを全削除 0以外の数値 : n番目に入っているカスタムプロパティを削除 C:\samples>java cookbook.RemoveCustomDocProperty blank-setcustominfo.pdf remove-custominfo.pdf 1 -- 完了 --