Criar PDF/3-A compatível e anexar fatura ZUGFeRD em Java
Contents
[
Hide
]
Use as APIs Document e FileSpecification quando precisar empacotar XML de fatura dentro de um PDF para fluxos de trabalho em estilo ZUGFeRD.
Anexar XML da fatura ZUGFeRD a um PDF
- Abra o PDF de origem em um objeto Document.
- Crie o FileSpecification para o arquivo XML da fatura.
- Defina os metadados do arquivo incorporado, incluindo o tipo MIME e AFRelationship.
- Adicione o FileSpecification à coleção de arquivos incorporados do documento.
- Converta o documento para PdfFormat
PDF_A_3A. - Salve o PDF atualizado 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);
}