使用PHP将FDF数据合并为PDF文件

Jam*_*mes 20 php pdf fdf xfdf

是否可以仅使用PHP将FDF数据与PDF文件合并?或者没有选择,只能使用第三方命令行工具来实现这一目标?

如果是这样的话有人能指出我的方向吗?

我目前正在将FDF文件输出到浏览器,希望它将用户重定向到填写的PDF,但对于某些人来说并非如此.FDF内容正在输出到屏幕,即使我使用标题('Content-type:application/vnd.fdf');

Jam*_*mes 31

为了将来参考,看起来没有第三方应用程序没有可靠的方法.Pdftk(http://www.accesspdf.com/pdftk/)最终成为我的解决方案.

我首先像以前一样生成FDF文件,然后使用以下PHP代码将其合并到我的PDF文件中

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;
Run Code Online (Sandbox Code Playgroud)

它比我想象的要容易得多.这样就可以立即消除对标题和文件扩展名的攻击,以确保所有浏览器都能正确处理FDF,因为它只是让浏览器下载PDF文件.

如果您希望PDF输出文件不再可编辑,请使用

    passthru("pdftk file.pdf fill_form data.fdf output - flatten");
Run Code Online (Sandbox Code Playgroud)

抱歉,如果这是基本的东西,只是想我把它放在一个地方,这样人们就不会经历我忍受的头痛.

注意如果未设置PATH变量,则需要使用pdftk的完整路径ie

    passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");
Run Code Online (Sandbox Code Playgroud)

  • 应该注意,`fill_form`也适用于XFDF数据.如果要在生成的PDF中组合可编辑字段和只读字段,请在生成PDF时为要填充的字段设置"只读"属性.只读字段将由PDFTK填写,但最终用户无法编辑. (3认同)