iTextSharp 5.5.3을 사용하며 ConformanceLevel = ZUGFeRD 인 PDF/A를 생성해야합니다. 올바른 XMP 스키마 플래그를 설정하는 데 문제가 있습니다.iTextSharp XML ZUGFeRD-invoice.xml 첨부 파일
코드는 작동하지만 난 작가를 닫을 때 나는 항상
ZUGFeRD XMP 스키마는 첨부 파일 이름
를 포함해야한다 예외를 얻을. PDF는 이전에 생성되었지만 ZUGFeRD와 호환되지 않는 것 같습니다.
이 경고를 해결하는 방법을 모르겠다. 누군가가 나를 도울 수 있기를 바랍니다. 나는이 문제에 대해 2 일 동안 노력해 왔으며 길을 찾을 수 없습니다.
Dim document As New Document(PageSize.A4, 0, 0, 0, 0)
Dim writer As PdfAWriter = PdfAWriter.GetInstance(document, New FileStream(tmpPDFDatei, FileMode.Create), PdfAConformanceLevel.ZUGFeRD)
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_7)
writer.CreateXmpMetadata()
Dim PDFbaseFont As BaseFont = BaseFont.CreateFont(Application.StartupPath & "\Courier Prime.ttf", BaseFont.CP1252, BaseFont.EMBEDDED)
document.Open()
Dim icc As ICC_Profile = ICC_Profile.GetInstance(Application.StartupPath & "\sRGB_IEC61966-2-1_black_scaled.icc")
writer.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc)
Dim cb As PdfContentByte = writer.DirectContent
cb.BeginText()
cb.SetFontAndSize(PDFbaseFont, 10)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEST TEXT", 0, 0, 0)
cb.SetHorizontalScaling(100)
cb.EndText()
Dim Params As PdfDictionary = New PdfDictionary
Params.Put(PdfName.MODDATE, New PdfDate)
Dim fileSpec As PdfFileSpecification = PdfFileSpecification.FileEmbedded(writer, tmpXMLDatei, "ZUGFeRD-invoice.xml", Nothing, False, "text/xml", Params)
fileSpec.Put(New PdfName("AFRelationship"), New PdfName("Alternative"))
writer.AddFileAttachment("ZUGFeRD Invoice", fileSpec)
Dim aRR As PdfArray = New PdfArray
aRR.Add(fileSpec.Reference)
writer.ExtraCatalog.Put(New PdfName("AF"), aRR)
writer.XmpWriter.SetProperty(PdfAXmpWriter.zugferdSchemaNS, PdfAXmpWriter.zugferdDocumentFileName, "ZUGFeRD-invoice.xml")
writer.XmpWriter.SetProperty(PdfAXmpWriter.zugferdSchemaNS, PdfAXmpWriter.zugferdDocumentType, "INVOICE")
document.Close()
writer.Close()
'writer.Close()'를 제거하면 어떻게됩니까? 그 선이 필요한 이유가 없습니다. "writer"가 닫힌 * 공식 문서 (예 : 나에 의해 작성된 문서)에서 예제를 본 적이 있습니까? –
예! 그게 전부 야! 예외는 사라졌다! 고마워요! – Chris
내 코드를 더 잘 작동시킬 수있는 의견이 있으십니까? 나는 아직도 문제가 ZUGFeRD를 준수해야한다고 생각합니다./이름/EmbeddedFiles/이름에도 파일 첨부 파일 이름을 설정해야하지만 이렇게 할 수있는 방법을 찾을 수 없습니까? 무슨 뜻인지 공식 문서에 대한 링크를 주시겠습니까? 나는 iTextSharp로 ZUGFeRD 호환 PDF/A를 만드는 것에 관한 매우 가난한 정보만을 발견했습니다 ... 고마워! – Chris