2

我需要编写一个 NET 应用程序,该应用程序将从数据库中获取各种数据并构建一个 PDF,由于公司标准,该 PDF 必须是 PDF/A 格式。

到目前为止,我已经看过 PDFSharp 和 iTextSharp

我在 PDFSharp 论坛http://forum.pdfsharp.net/viewtopic.php?p=1293#p1293中看到一个话题正在讨论这个话题,他们多年前就说过 PDF/A 支持在他们的待办事项列表中,但什么也没出现其中。

我无法使用这些库找到有关 PDF/A 格式的任何信息。我是否需要在满足 PDF/A 限制的同时构建 PDF?我不知道如何验证文件是 PDF/A 格式...

4

2 回答 2

3

请参阅 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 级是一项挑战。您必须在代码中设置每个元素 ( Paragraph, Anchor,...) 的角色。通常使用 XFA 模板要容易得多,用 XFA 数据填充它,然后让 iText 的 XFA Worker 将其展平。

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

于 2013-08-22T10:20:05.340 回答
0

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

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

于 2013-08-29T15:20:59.437 回答