
入力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をそれぞれ出力しています。
