Crear PDF compatible con PDF/3-A y adjuntando factura ZUGFeRD en Java
Contents
[
Hide
]
Utilice el Document y FileSpecification APIs cuando necesita empaquetar el XML de la factura dentro de un PDF para flujos de trabajo al estilo ZUGFeRD.
Adjuntar el XML de factura ZUGFeRD a un PDF
- Abra el PDF de origen
Document. - Cree el
FileSpecificationpara el archivo de factura XML. - Establezca los metadatos del archivo incrustado, incluido el tipo MIME y
AFRelationship. - Añada el
FileSpecificationa la colección de archivos incrustados del documento. - Convierta el documento a
PdfFormatPDF_A_3A. - Guarde el PDF actualizado
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);
}