如何以PDF / A格式以编程方式构造PDF

时间:2013-08-21 17:45:06

标签: .net pdf itextsharp pdfsharp pdfa

我需要编写一个.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格式......

2 个答案:

答案 0 :(得分:3)

请参阅iText 5.3.4的release noteschangelog

您可以使用iTextSharp创建PDF / A-1(A级/ B级),PDF / A-2和PDF / A-3文件。但是,我们仅在PDF / A-1的创建过程中检查一致性。如果您创建PDF / A-2和PDF / A-3文件,作为开发人员,您有责任不介绍破坏PDF / A一致性的内容。在未来的版本中,iText将为您检查。

PDF/A-3 with iText让您了解需要什么(示例是Java中的,但将它们移植到C#应该不是问题)。确保使用PdfAWriter类而不是PdfWriter,并确保您拥有最新版本。

请注意,创建PDF / A Level A是一项挑战。您必须在代码中设置每个元素(ParagraphAnchor,...)的角色。通常,使用XFA模板,用XFA数据填充它,然后让iText的XFA工作人员将其展平,就容易得多。

iText不会对现有PDF / A文件进行验证。重要的是要知道文档顶部显示的“蓝条”,说文档是PDF / A,是不够的。您需要验证文档,例如使用Adobe Acrobat(预检功能)。

答案 1 :(得分:0)

我们决定使用官方的Adobe PDF Library,因为我的公司对使用任何免费/开源软件犹豫不决。

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