Membuat PDF yang mematuhi PDF/3-A dan melampirkan faktur ZUGFeRD di Java

Gunakan Document dan FileSpecification APIs ketika Anda perlu mengemas XML faktur di dalam PDF untuk alur kerja bergaya ZUGFeRD.

Melampirkan XML faktur ZUGFeRD ke PDF

  1. Buka PDF sumber Document.
  2. Buat FileSpecification untuk file faktur XML.
  3. Atur metadata file tersemat, termasuk tipe MIME dan AFRelationship.
  4. Tambahkan FileSpecification ke koleksi file tersemat dokumen.
  5. Konversi dokumen ke PdfFormat PDF_A_3A.
  6. Simpan PDF yang diperbarui 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);
    }