Java での PDF/A-3A 準拠の PDF を作成し、ZUGFeRD 請求書の添付
Contents
[
Hide
]
ZUGFeRD スタイルのワークフローで請求書 XML を PDF 内にパッケージングする必要がある場合、Document および FileSpecification API を使用します。
PDF に ZUGFeRD 請求書 XML の添付
- ソース PDF の Document を開いてください。
- XML 請求書ファイル用に FileSpecification を作成してください。
- 埋め込みファイルのメタデータ(MIME タイプおよび AFRelationship)を設定してください。
- 作成した FileSpecification をドキュメントの埋め込みファイル コレクションへ追加してください。
- ドキュメントを PdfFormat
PDF_A_3Aに変換してください。 - 更新した PDF の Document を保存してください。
public static void attachInvoiceZugferdFormat(Path inputFile, Path invoiceFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
String description = "Invoice metadata conforming to ZUGFeRD standard";
FileSpecification fileSpecification = new FileSpecification(invoiceFile.toString(), description);
fileSpecification.setMIMEType("text/xml");
fileSpecification.setAFRelationship(AFRelationship.Alternative);
document.getEmbeddedFiles().add("factur", fileSpecification);
String outputFileName = outputFile.toString();
String logPath = outputFileName.replace(".pdf", "_log.xml");
document.convert(logPath, PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);
document.save(outputFile.toString());
}
System.out.println("ZUGFeRD invoice attached to " + outputFile);
}