在 Java 中创建符合 PDF/3-A 标准的 PDF 并附加 ZUGFeRD 发票。
Contents
[
Hide
]
使用 Document 和 FileSpecification 在需要将发票 XML 打包到 PDF 中以用于 ZUGFeRD 风格工作流时的 API。
将 ZUGFeRD 发票 XML 附加到 PDF
- 打开源 PDF Document。
- 创建 FileSpecification 用于 XML 发票文件。
- 设置嵌入文件的元数据,包括 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);
}