使用PHP创建PDF,而不使用PHP';s-FDF函数

使用PHP创建PDF,而不使用PHP';s-FDF函数,php,pdf,pdftk,fdf,Php,Pdf,Pdftk,Fdf,有没有办法在PHP中创建一个FDF文件而不使用失效的FDF函数?我知道您可以使用pdftk从现有FDF文件创建PDF,但我需要先创建FDF文件,并设置一个字段值 或者,在允许用户下载之前,有没有办法使用PHP(跳过FDF文件创建)在PDF中设置一个字段 更糟糕的是,我尝试使用fopen在PHP中创建FDF文件,但没有成功。我还知道在pdftk中有一个generate\u fdf操作,但这不允许我设置特定的值,至少我看不到 有人知道答案是什么吗?我被卡住了。不幸的是,我无法控制告诉客户放弃完整的P

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

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

更糟糕的是,我尝试使用
fopen
在PHP中创建FDF文件,但没有成功。我还知道在
pdftk
中有一个
generate\u fdf
操作,但这不允许我设置特定的值,至少我看不到


有人知道答案是什么吗?我被卡住了。不幸的是,我无法控制告诉客户放弃完整的PDF(而是使用Web表单)

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

你试过TCPDF吗?看


如果您想使用现有的PDF文件作为模板,并且只添加一些值,请使用扩展的FPDI来扩展TCPDF:

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

要回答FDF问题,请首先查看这篇优秀的文章,其中还包括一个帮助生成FDF的方法

一旦您有了带有数据的FDF,您就可以使用PDFTK的填充表单功能

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

例如:

header("Content-type:application/pdf");
passthru("pdftk ".$original." fill_form ".$fdf." output -");
die();
这将使用阅读器插件在浏览器中打开它。然后,您就可以编辑和打印已填写的表单字段,但我仍然没有找到一种方法来保存带有更改的副本。我目前正在寻找Adobe销售的其他选择

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


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

我将改用FPDF。是的,它是旧的,是的,它没有太多的类,但文件大小是~50KB对1MB。如果你问我的话,那太荒谬了。谢谢你深思熟虑的回答。我不再需要为了我自己的目的来回答这个问题,但我将你的答案标记为正确答案,以供将来任何人考虑。