使用PHP创建PDF,而不使用PHP的FDF功能

时间:2011-03-24 15:02:42

标签: php pdf pdftk fdf

有没有办法在PHP中创建FDF文件而不使用死FDF函数?我知道您可以使用pdftk现有 FDF文件创建PDF,但我需要先创建一个FDF文件,并设置一个字段值。

或者,有没有办法在允许用户下载之前使用PHP(跳过FDF文件创建)在PDF中设置一个字段?

对于它,我尝试使用fopen在PHP中创建FDF文件 - 没有用。我也知道generate_fdf中有一个pdftk操作,但这不允许我设置一个特定值,至少不是我能看到的。

有人知道答案是什么吗?我很困惑。不幸的是,我无法控制告诉客户废弃完整的PDF(而是使用网络表单)。

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你只是不想特别使用FDF库?

你试过TCPDF吗?见http://www.tcpdf.org/

如果要将现有PDF文件用作模板并仅添加一些值,请使用扩展TCPDF的扩展FPDI:http://www.setasign.de/products/pdf-php-solutions/fpdi/

答案 1 :(得分:2)

使用PDFTK,您需要两件才能完成拼图。首先,您需要FDF包含数据,其次是具有适当命名的表单字段的原始PDF。 PDFTK将数据合并到PDF中。

要回答FDF问题,请先查看这篇优秀文章http://koivi.com/fill-pdf-form-fields/,其中还包括一种帮助生成FDF的方法。

将FDF与数据结合后,您可以使用PDFTK的fill_form函数

您可以使用passthru()而不是readfile($ temp_file)来保持文档的可编辑性,并使用“output - ”参数输出到stdout而不是文件名。同样重要的是避免强制文档处置。如果你试图强制下载文件而不是在浏览器中打开文件,你最终会得到一个无法编辑和无法修复的混乱。

示例:

header("Content-type:application/pdf");
passthru("pdftk ".$original." fill_form ".$fdf." output -");
die();

这将使用Reader插件在浏览器中打开它。然后,您将能够编辑和打印填充的表单字段,但我仍然没有找到一种方法来保存带有更改的副本。我目前正在追逐Adobe销售以获取其他选择。

如其他地方所述,请勿使用PDFTK的选项“flatten”。

原始PDF不得包含任何密码。