PDFをPDF/A-3に変換する
v2026.09
PDF/A は長期保存を目的としたISO標準化PDFのサブセットであり、PDF/A-3はあらゆるファイル形式をドキュメントに添付できる唯一のPDF/Aバージョンです。JPedalは、JavaまたはコマンドラインからPDFファイルを有効なPDF/A-3ファイルに変換するためのPdfA3Converter クラスを提供しています。
適合レベルを指定してPdfA3Converterを作成し、convertを呼び出します。現在はPdfA3Converter.Level.Bのみがサポートされています。
// インスタンスを作成する
final PdfA3Converter converter = new PdfA3Converter(PdfA3Converter.Level.B);
// 暗号化されていないファイルを変換する
final PdfA3Converter.ConversionResult result = converter.convert(new File("inputFile.pdf"), new File("outputFile.pdf"));
// パスワード保護されたファイルを変換する
final PdfA3Converter.ConversionResult result = converter.convert(new File("inputFile.pdf"), "password".getBytes(), new File("outputFile.pdf"));
convertはPdfA3Converter.ConversionResultを返します。これには、ファイルで検出された問題と、それを修正するために行われた不可逆的な変更の一覧が含まれています。issuesが空の場合、出力ファイルはPDF/A-3b準拠です。空でない場合、出力ファイルは生成されません。
if (result.issues().isEmpty()) {
// 問題が報告されなければ、ファイルの変換は成功
// ファイルへの変更内容も報告される
System.out.println("Success!");
for (final String change : result.changes()) {
// 準拠させるためにファイルに行われた不可逆的な変更を繰り返し処理する
}
} else {
// ファイルを変換できなかった
System.out.println("Failure");
for (final String issue : result.issues()) {
// ファイルで検出された問題を繰り返し処理する
}
}
PdfA3Converterはコマンドラインからも実行できます。1つまたは複数のファイル、あるいはディレクトリ内のすべてのPDFファイルを出力ディレクトリに変換することが可能です。
java -cp jpedal.jar org.jpedal.tools.pdfa.PdfA3Converter --level B --output outputFolder inputFile1.pdf inputFile2.pdf
--input/-iでファイルを指定することもでき、各ファイルの後に任意で--password/-pとそのファイルのパスワードを続けることができます。パスワード引数を指定できるのは、この方法で渡されたファイルのみです。
java -cp jpedal.jar org.jpedal.tools.pdfa.PdfA3Converter --level B --output outputFolder --input inputFile1.pdf --input inputFile2.pdf --password inputFile2Password
入力にディレクトリを指定することもでき、その場合はディレクトリ内のすべてのPDFファイルが変換されます。ただし、ディレクトリ全体に対してパスワードを指定することはできません。
java -cp jpedal.jar org.jpedal.tools.pdfa.PdfA3Converter --level B --output outputFolder inputFolder
変換されたPDF/A-3ファイルの準拠性は、PDF協会が提供する無償のオープンソースリファレンス実装であるveraPDF などの検証ツールで確認することを推奨します。
