PDF/3-A 호환 PDF 생성 및 Java로 ZUGFeRD 송장 첨부

ZUGFeRD 스타일 워크플로를 위해 PDF 내에 송장 XML을 패키지해야 하는 경우 Document 및 FileSpecification API를 사용하세요.

ZUGFeRD 송장 XML을 PDF에 첨부

  1. 원본 PDF Document를 여세요.
  2. XML 송장 파일에 대한 FileSpecification을 만드세요.
  3. MIME 유형 및 AFRelationship을 포함하여 포함된 파일 메타데이터를 설정하세요.
  4. 문서 내장 파일 컬렉션에 FileSpecification을 추가하세요.
  5. 문서를 PdfFormatPDF_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);
    }