إنشاء ملف PDF متوافق مع PDF/3-A وإرفاق فاتورة ZUGFeRD باستخدام Java

استخدم Document و FileSpecification واجهات برمجة التطبيقات عندما تحتاج إلى تعبئة XML الفاتورة داخل ملف PDF لتدفقات عمل بنمط ZUGFeRD.

إرفاق ملف XML الفاتورة ZUGFeRD إلى PDF

  1. افتح ملف PDF المصدر Document.
  2. أنشئ كائنًا من الفئة FileSpecification لملف الفاتورة XML..
  3. عيّن بيانات تعريف الملف المدمج، بما في ذلك نوع MIME و AFRelationship.
  4. أضف FileSpecification إلى مجموعة ملفات المستند المدمجة.
  5. حوّل المستند إلى PdfFormat PDF_A_3A.
  6. احفظ ملف 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);
    }