入力PDFがPDF/APDF/A-1bまたはPDF/A-2bに準拠しているかをチェックします。
PDF/A-1b、PDF/A-2b、どちらの規格の準拠チェックを行うかはvalidatePDFA()の実行時に指定します。
準拠チェック時にエラーが出た場合はPtlPDFFixUpError形式のエラーを出力します。エラー詳細は本書「付録:PtlPDFFixUpErrorのエラーコード一覧」を参照してください。
サンプルプログラムでは、入力PDFに対し、PDF/A-1b、PDF/A-2bの指定したバージョンへの準拠チェックを行います。
準拠チェックに失敗した場合は、出力されたエラーコードが持つエラーメッセージをコンソール上に表示します。エラーコードが複数の場合はエラーコードの数だけエラーメッセージを表示します。
package cookbook; import jp.co.antenna.ptl.*; public class ValidatePDFA { // そのクラスのusageを表示する関数 public static void printUsage() { System.out.println("usage: java ValidatePDFA in-pdf-file"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 1) { printUsage(); // usageメッセージの表示 return; } // コマンドライン引数の取得 try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlPDFFixUp fixUp = new PtlPDFFixUp()) { // PDFファイルを読み込んで鑑定する //PDF/A-1bであるかを判定する if(fixUp.validatePDFA(PtlPDFFixUp.PDFA_TYPE.PDFA_1B, inputFile)) { System.out.println("このPDFはPDF/A-1bに準拠しています"); }else if(fixUp.validatePDFA(PtlPDFFixUp.PDFA_TYPE.PDFA_2B, inputFile)) { System.out.println("このPDFはPDF/A-2bに準拠しています"); }else{ System.out.println("このPDFはPDF/A-1b、PDF/A-2bのどちらにも準拠していません。"); try(PtlPDFFixUpErrors fixUpErrors = fixUp.getErrors()) { int numErrors = fixUpErrors.getCount(); for(int i = 0; i < numErrors; i++) { try(PtlPDFFixUpError thisFixUpError = fixUpErrors.get(i)){ System.out.println("エラーその"+ i +":"+ thisFixUpError.getErrorMessageJP()); } } } } } ...【GetPDFVersion.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } }
ValidatePDFA.java
C:\samples>java cookbook.ValidatePDFA usage: java ValidatePDFA in-pdf-file C:\samples>java cookbook.ValidatePDFA Output_FixupPDFA-1b.pdf このPDFはPDF/A-1bに準拠しています -- 完了 -- C:\samples>java cookbook.ValidatePDFA Output_FixupPDFA-2b.pdf このPDFはPDF/A-2bに準拠しています -- 完了 -- C:\samples>java cookbook.ValidatePDFA Output_FixupPDFA-1bLinearized.pdf このPDFはPDF/A-1bに準拠しています -- 完了 -- C:\samples>java cookbook.ValidatePDFA Output_FixupPDFA-2bLinearized.pdf このPDFはPDF/A-2bに準拠しています -- 完了 --
この出力例では、本章の第1節で出力した各PDFの準拠確認を行っています。準拠チェックに失敗した場合は以下のようにエラーコードが表示されます。
C:\samples>java cookbook.ValidatePDFA sample_InvalidPDFA-1b.pdf このPDFはPDF/A-1b、PDF/A-2bのどちらにも準拠していません。 エラーその0:PDF/Aバージョンが正しくない -- 完了 --