PDF/3-A 준수 PDF 생성 및 C#에서 ZUGFeRD 인보이스 첨부

PDF에 ZUGFeRD 첨부

다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.

ZUGFeRD를 PDF에 첨부하기 위해 다음 단계를 권장합니다:

  • 입력 및 출력 PDF 파일이 위치한 폴더를 가리키는 경로 변수를 정의합니다.
  • 경로에서 기존 PDF 파일(예: “ZUGFeRD-test.pdf”)을 로드하여 문서 객체를 생성합니다.
  • ZUGFeRD 표준에 준하는 인보이스 메타데이터를 포함하는 “factur-x.xml"이라는 다른 파일의 경로와 설명을 제공하여 FileSpecification 객체를 생성합니다.
  • 설명, MIME 유형 및 AF 관계와 같은 속성을 파일 사양 객체에 추가합니다. AF 관계는 포함된 파일이 PDF 문서와 어떻게 관련되는지를 나타냅니다. 이 경우 “Alternative"로 설정되어 있으며, 이는 포함된 파일이 PDF 콘텐츠의 대체 표현임을 의미합니다.
  • 파일 사양 객체를 문서의 포함된 파일 컬렉션에 추가합니다. 파일 이름은 ZUGFeRD 표준에 따라 지정해야 하며, 예를 들어 “factur-x.xml"입니다.
  • 문서를 PDF/A-3B 형식으로 변환합니다. PDF/A-3B는 전자 문서의 장기 보존을 보장하는 PDF의 하위 집합입니다. PDF/A-3B는 PDF 문서에 모든 형식의 파일을 포함할 수 있습니다.
  • 변환된 문서를 새 PDF 파일(예: “ZUGFeRD-res.pdf”)로 저장합니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AttachZUGFeRD()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "ZUGFeRD-testInput.pdf"))
    {
        // Setup new file to be added as attachment
        var description = "Invoice metadata conforming to ZUGFeRD standard";
        var fileSpecification = new Aspose.Pdf.FileSpecification(dataDir + "ZUGFeRD-testXmlInput.xml", description)
        {
            Description = "Zugferd",
            MIMEType = "text/xml",
            Name = "factur-x.xml"
        };
        // Add attachment to document's attachment collection
        document.EmbeddedFiles.Add(fileSpecification);
        document.Convert(new MemoryStream(), Aspose.Pdf.PdfFormat.ZUGFeRD, Aspose.Pdf.ConvertErrorAction.Delete);
        // Save PDF document
        document.Save(dataDir + "AttachZUGFeRD_out.pdf");
    }
}

변환 메서드는 스트림, PDF 형식 및 변환 오류 작업을 매개변수로 사용합니다. 스트림 매개변수는 변환 로그를 저장하는 데 사용할 수 있습니다. 변환 오류 작업 매개변수는 변환 중 오류가 발생할 경우 수행할 작업을 지정합니다. 이 경우 “Delete"로 설정되어 있으며, 이는 PDF/A-3B 형식에 부합하지 않는 모든 요소가 문서에서 삭제됨을 의미합니다.