这就是我目前所拥有的:
-
用户提交表单数据并获得“下载 PDF”链接。
-
该链接指向脚本,该脚本动态生成 XFDF 文件,并在设置适当的标题后输出 XFDF 文件等。
-
XFDF 文件指向 password-protected PDF,这是使用 XFDF 数据填充字段的通用 PDF 表单。
我想要的是什么:
-
用户单击“下载 PDF”链接。
-
XFDF 是动态生成的(没有文件写入服务器)。
-
PDF 和 XFDF 使用通用 PDF 合并 server-side。最终 PDF 的内容输出给用户与 XFDF 最初相同。
-
XFDF 和最终 PDF 都没有保存到服务器。
我正在查看PDFTK,它有一些处理 FDF/XFDF 文件的选项,但所有这些都假定 a)原始 XFDF 文件作为文件存在于服务器上而 b)生成的 PDF 应作为文件输出服务器。
此外,pdftk 已有 4 年历史。
我想知道是否:
a)那里有一个更新的等同于 pdftk?
b)如果有一种方法,使用更新的 pdftk-like 工具或使用 pdftk,使用动态路径,以便数据永远不必以文件形式存在于服务器上?
我最近使用php://
了解了 built-in input/output 流,但我对如何使用它仍然很模糊,但是这可能是个好地方吗?
3 回答
有商业应用程序可以做到这一点(您可以在 pdfstore.com 找到一些),但通过一些编程,您可以使用 pdftk 用于处理 PDF 文件的相同库创建自己的应用程序:iText(http://itextpdf.com/)还有一个.NET 版本 - iTextSharp 的。
通过这样做,您可以从 Java 或.NET 程序访问您的数据,它永远不需要以文件形式存在,您可以直接从数据库中获取它。
您还可以使用较新版本的 iText 重新编译 pdftk - 这样,您就可以获得最新的 PDF 处理功能以及 pdftk 的易用性。但是你仍然需要一个 XFDF 文件。
我自己接受了 khkremer 的建议,并在 C#中构建了一个小的.net exe,用于基于 itextsharp 库从 xfdf 文件创建 PDF。它仍然需要使用 passthru 调用,但它很好而且很小。我的版本还可以选择将隐藏字段插入到 pdf 中,因为我需要为我的项目提供该功能。
您需要下载并添加对 iTextSharp.text.pdf 程序集的引用。
希望能帮助到你!
}
“你可以从你的 Java 访问你的数据” - 很容易说难做:)))))
我在 Java 中编写了一个命令行实用程序,并在 php 示例中如何在服务器端动态填充 pdf 表单 on-the-fly(没有写入磁盘的文件),并将填写的 pdf 文档提供给浏览器:https://sourceforge.net/projects/pdfformfiller2/
它的输入格式比 XFDF 简单得多。
php 示例中提供了转义(编码)函数。
它修复了 Adobe Reader UTF-8 支持中的错误。