我正在测试iTextSharp以生成ZUGFeRD文件。我的第一步是从现有的PDF / A-3文件生成ZUGFeRD符合文件。通过使用PDFACopy并创建必要的PDFFileSpecification,此操作成功完成。
下一步将是从现有的PDF或PDF / A-1文件生成PDF / A-3文件,这是困难的部分。
首先,当我尝试将PDFACopy与常规PDF(不是PDF / A)结合使用时,会出现一个错误,指出PDFACopy仅可用于符合PDF / A的文件。我的第一个问题是,如何使用iTextSharp从PDF获取PDF / A-3-conform文件?
为了缩小差距,我决定使用ghostscript将PDF转换为PDF / A-1文件(请参阅如何使用ghostscript将PDF转换为PDF / A或PDF / X?)。这样成功了,我再次尝试。然后出现错误“ PDF / A版本不同”。被扔了。看来我无法从现有的PDF / A-1复制到新的PDF / A-3。如何从现有PDF(/ A-1)创建此PDF / A-3?那有可能吗?
这是我的代码:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XML);
byte[] xmlBytes = Encoding.Default.GetBytes(xmlDoc.OuterXml);
Document doc = new Document();
PdfReader src_reader = new PdfReader(pdfPath);
FileStream fs = new FileStream(DEST, FileMode.Create, FileAccess.ReadWrite);
PdfACopy aCopy = new PdfACopy(doc, fs, PdfAConformanceLevel.ZUGFeRD);
doc.AddLanguage("de-DE");
doc.AddTitle("title");
doc.SetPageSize(src_reader.GetPageSizeWithRotation(1));
aCopy.SetTagged();
aCopy.UserProperties = true; …Run Code Online (Sandbox Code Playgroud)