pdf - 从数据库填充 PDF 字段

标签 pdf

我有一个 PDF 文件(不是我创建的 - 我无法控制设计等),它允许用户在 Adob​​e Reader 中填写一些表单字段并保存结果。我想使用以下步骤自动执行填充字段的过程:

  1. 从数据库中获取数据。
  2. 打开 PDF 模板。
  3. 用数据填充表单字段。
  4. 将修改后的文件保存到磁盘上的单独位置。
  5. 锁定修改后的文件,以便无法再编辑表单域。
  6. 将文件发送给用户。

我很乐意使用 PHP、Perl、Python 或 Java 来执行步骤 2-5(按偏好降序排列),但无论我使用什么都必须在 Linux 下工作(即它不能依赖于以下库)例如,仅适用于 Windows)。

最终结果应该是普通用户可以打开和打印但不能修改的 PDF(我相信高级用户可以找到这样做的方法,但我承认我不能保证完全安全以防止修改).我不想更改 PDF 的结构,只是填充表单字段。

是否有用于执行此操作的标准软件?我看到有人提到 FDF 工具包,但我不完全确定这是否是我想要的,它是否允许我之后锁定文件,以及我想做的事情是否符合 EULA。

编辑:最终答案是使用 iText(如 Mark Storer 所建议的那样),但将其实现为 Web 服务,允许您传入一组表单字段名称和值以及 PDF 文件"template"。根据 AGPL,Web 服务将是开源的(并且在我编写后可在 GitHub 上使用),但连接到它的任何东西都不必是。

最佳答案

填充

任意数量的不同图书馆都可以填写字段值。我偏爱 iText (java) 或 iTextSharp (c#)。几年前我用 Java 写了一个。这并不难)。有很多。搜索 SO,您会找到它们。

锁定

有几个不同级别的“锁定字段”。

  • 每个字段都有一个“只读”标志。就其他能够设置字段值的库而言,这几乎是一种礼貌。事实上,它通常被认为是“用户界面无法更改”的意思。表单脚本可以,不管。
  • 表单扁平化:将字段直接绘制到页面中并移除所有交互性。

各有利弊。

标记:不太安全。表单数据仍然很容易访问。滚动字段仍然滚动。
扁平化:几乎完全相反。它更难修改(尽管远非不可能)。表单数据只能通过文本提取来提取(这很难,但正变得越来越普遍)。包含比可见内容更多内容的列表和文本字段将不再滚动。

扁平化表单的能力相对较少。同样,iText 可以做到这一点(iTextSharp 也可以),但我不知道有任何其他第三方库可以......我确定它们存在,我只是无法在脑海中说出它们的名字。

关于pdf - 从数据库填充 PDF 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475232/

相关文章:

php - 从 TCPDF 在 Chrome 中下载 PDF

html - 有什么方法可以使用 wkhtmltopdf 减小文件大小?

bash - 从 GitHub 将源代码转换为 PDF

java - 如何将镜框安装到瑞士二维码发票上

java - 线程 "main"org.pdfclown.util.parsers.ParseException : 'name' table does NOT exist 中的异常

c# - 在 iframe 中打开 pdf

JAVA pdfbox PDF 到非常简单的 HTML

c# - iTextSharp pdf 中缺少 Font Awesome 图标

javascript - 在 NodeJS 中使用 Javascript 创建分层 PDF

android - PDF 内容向右移动并为更宽的页面剪切