入力PDFをPDF/APDF/Aへ変換します。
変換できるPDF/AのバージョンはPDF/A-1bまたはPDF/A-2bです。
変換時に準拠エラーが発生した場合は処理を停止し、PtlPDFFixUpError形式のエラーを出力します。
PtlPDFFixUpError形式のエラー詳細は本書「付録:PtlPDFFixUpErrorのエラーコード一覧」、クラスPtlPDFFixUpErrorの扱いや詳細については「2.2.1 PDF/A-1b,PDF/A-2bの準拠確認」をご覧ください。
サンプルプログラムでは入力したPDFをPDF/A変換し、指定した名前で出力します。変換するバージョンは引数で指定します。
コンソール上に、変換時に発生した準拠エラーの有無またはエラーの総数とそれらのエラーコードを表示します。
ここでは主に次の機能を使っています。
package cookbook; import jp.co.antenna.ptl.*; public class FixUpPDFA { // そのクラスのusageを表示する関数 public static void printUsage() { System.out.print("usage: java FixUpPDFA in-pdf-file out-pdf-file"); System.out.println(" PDF/Aの種類 \n"); System.out.println("PDF/Aの種類"); System.out.println("1 : PDF/A-1b 2 : PDF/A-2b"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 2) { printUsage(); return; } int kind; try { kind = Integer.parseInt(args[2]); switch (kind) { case 1: case 2: break; default: System.out.println("PDF-Aの種類には、1または2の数値を指定してください。"); printUsage(); // usageメッセージの表示 return; } } catch(NumberFormatException numfe) { System.out.println("PDF-Aの種類には、1または2の数値を指定してください。"); printUsage(); // usageメッセージの表示 return; } // コマンドライン引数の取得 try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlParamOutput outputFile = new PtlParamOutput(args[1]); PtlPDFFixUp fixUp = new PtlPDFFixUp()) { // PDFFixUPでinputFileをPDF/Aにする。 switch (kind) { case 1: //PDF/A-1b fixUp.fixUpPDFA(PtlPDFFixUp.PDFA_TYPE.PDFA_1B, inputFile); break; case 2: // PDF/A-2b fixUp.fixUpPDFA(PtlPDFFixUp.PDFA_TYPE.PDFA_2B, inputFile); break; } //変換エラー発生チェック try(PtlPDFFixUpErrors fixUpErrors = fixUp.getErrors()) { int numErrors = fixUpErrors.getCount(); System.out.println("変換時の総エラー数 : " + numErrors); if(numErrors == 0){ System.out.println("エラーは発生しませんでした。"); }else { for(int i = 0; i < numErrors; i++) { try(PtlPDFFixUpError thisFixUpError = fixUpErrors.get(i)){ System.out.println("エラーその"+ i +":"+ thisFixUpError.getErrorMessageJP()); } } } } // ファイルに保存します。 fixUp.save(outputFile); } ...【GetPDFVersion.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } }
FixUpPDFA.java
C:\samples>java cookbook.FixUpPDFA usage: java FixUpPDFA in-pdf-file out-pdf-file PDF/Aの種類 PDF/Aの種類 1 : PDF/A-1b 2 : PDF/A-2b C:\samples>java cookbook.FixUpPDFA testPages_10.pdf Output_FixupPDFA-1b.pdf 1 変換時の総エラー数 : 0 エラーは発生しませんでした。 -- 完了 -- C:\samples>java cookbook.FixUpPDFA testPages_10.pdf Output_FixupPDFA-2b.pdf 2 変換時の総エラー数 : 0 エラーは発生しませんでした。 -- 完了 --
この操作例ではPDF/A-1b、PDF/A-2bをそれぞれ出力しています。