如何使用编程方式构建PDF/A格式的PDF文件。

3
我需要编写一个.NET应用程序,它将从各种数据库中获取数据并构建PDF文档,由于公司的标准要求,该文档必须采用PDF/A格式。
目前我已经研究了PDFSharp和iTextSharp。
我在PDFSharp论坛中看到了一个话题 http://forum.pdfsharp.net/viewtopic.php?p=1293#p1293讨论这个问题,他们说几年前PDF/A支持已列入待办事项清单,但没有实现。
我找不到使用这些库来处理PDF/A格式的信息。我需要在满足PDF/A限制的同时构建PDF吗?我不知道如何验证文件是否为PDF/A格式...

请查看此链接:http://stackoverflow.com/a/15412879/231316 - Chris Haas
可能是如何使用iTextSharp从HTML创建PDF/A文件的重复问题。 - Martin Schröder
使用XSL FO和支持PDF/A的引擎(其中许多都支持)。 - Kevin Brown
你可能想阅读 PDF/A-3 with iText。你可以尝试将Java示例转换为C#,或者等待文档中所说的 *PDF/A-3 with iTextSharp (C#, coming soon)*。 - mkl
使用Ghostscript.Net和https://dev59.com/E3I-5IYBdhLWcg3w0MHx。 - mcandal
2个回答

4
请参阅iText 5.3.4的发行说明和更改记录。(链接)(链接) 使用iTextSharp可以创建PDF/A-1(A级/B级)、PDF/A-2和PDF/A-3文件。但是,我们只会在创建PDF/A-1文件时检查一致性。如果您创建了PDF/A-2或PDF/A-3文件,则作为开发人员,您有责任不引入破坏PDF/A一致性的东西。在以后的版本中,iText将为您进行检查。
通过iText的PDF/A-3可以了解所需内容(示例是用Java编写的,但是将其转换为C#也不成问题)。请确保使用PdfAWriter类而不是PdfWriter类,并确保使用最新版本。
请注意,创建PDF/A A级文档是具有挑战性的。您必须在代码中设置每个元素(ParagraphAnchor等)的角色。通常使用XFA模板并填充XFA数据,然后使用iText的XFA Worker对其进行扁平化处理要容易得多。
iText不验证现有PDF/A文件。重要的是要知道,显示在文档顶部的“蓝色条”表明文档是PDF/A格式并不足够。您需要验证文档,例如使用Adobe Acrobat(Preflight功能)。

1

我们决定选择官方的Adobe PDF库,因为我的公司不愿意使用任何免费/开源软件。

该库有一个简单的功能,可以将PDF转换为PDFA。我已经使用Adobe Acrobat Pro中的预检工具确认输出PDF是PDFA格式,感谢Bruno Lowagie提供的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接