
入力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バージョンが正しくない -- 完了 --