使用PHP可以将FDF数据与PDF文件合并在一起吗?或者是没有选择,只能使用第三方命令行工具来实现这一目标?使用PHP将FDF数据合并到PDF文件中
如果是这样的话,有人能指出我的方向吗?
我目前正在向浏览器输出FDF文件,希望它会将用户重定向到填充的PDF,但对于某些情况并非如此。即使我正在使用标题('Content-type:application/vnd.fdf'),FDF内容正在输出到屏幕。
使用PHP可以将FDF数据与PDF文件合并在一起吗?或者是没有选择,只能使用第三方命令行工具来实现这一目标?使用PHP将FDF数据合并到PDF文件中
如果是这样的话,有人能指出我的方向吗?
我目前正在向浏览器输出FDF文件,希望它会将用户重定向到填充的PDF,但对于某些情况并非如此。即使我正在使用标题('Content-type:application/vnd.fdf'),FDF内容正在输出到屏幕。
为了将来的参考,它看起来像没有一个可靠的方式做没有第三方应用程序。 Pdftk(http://www.accesspdf.com/pdftk/)最终成为我的解决方案。
我第一次产生的FDF像以前的文件,然后使用下面的PHP代码
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;
它比我想象的要容易得多合并到我的PDF文件。这立即消除了对标题和文件扩展名的破解,以确保所有浏览器正确处理FDF,因为它只是使浏览器下载PDF文件。
如果你想在PDF输出文件不再是可编辑的,使用
passthru("pdftk file.pdf fill_form data.fdf output - flatten");
道歉,如果这是基本的东西,只是觉得应该把它们都放在一个地方,让人们不要去通过我忍受的头痛。
N.B.如果没有设置PATH变量,你需要使用的完整路径PDFTK即
passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");
迄今为止我发现在CentOS安装PDFTK最简单的方法:
安装rpmforge软件库 - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b
然后
百胜安装PDFTK
和完蛋了!
不再支持CentOS 7 – 2016-04-23 18:21:36
http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/
这工作,类下载链接,从网站上也
它不需要中继/ exec命令并没有额外的扩展。
编辑说,这不适用于较新的pdf版本1.5+,恢复为PDFTK,很费劲,但使用'exec'命令处理所有pdf。
还有另一种方式来一天,不使用中继也不PDFTK只是一个脚本,在2004年,但仍然正常工作:forge_fdf
它可以帮助你建立一个FDF,你可以在你的PDF straithly incoporate,它意思是你
保存在一个php文件,让我们说generatePdf。PHP
require_once('forge_fdf.php');
// leave this blank if we're associating the FDF w/ the PDF via URL
$pdf_form_url= "";
// default data; these two arrays must ultimately list all of the fields
// you desire to alter, even if you just want to set the 'hidden' flag;
//
//
$fdf_data_names= array(); // none of these in this example
$fdf_data_strings= array(); // none of these in this example
$fdf_data_strings['email']=mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com';
$fields_hidden= array();
$fields_readonly= array();
// set this to retry the previous state
$retry_b= false;
header('content-type: application/vnd.fdf');
echo forge_fdf($pdf_form_url,
$fdf_data_strings,
$fdf_data_names,
$fields_hidden,
$fields_readonly);
制作一个链接到Pathtoyourpdf/nameofpdffile.pdf#FDF = generatePdf.php将在浏览器中打开PDF文件(或者有一种方法将其保存到磁盘我想我记得)和电子邮件领域将充满来自MYSQL的数据:mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'
它可以与复选框,单选按钮一起使用......它可以在Firefox中打开,它必须在其他浏览器中测试。在PDF HACKS
Forge_fdf for PHP也由PDF Labs(Pdftk的创建者)编写,我相信。 – BMiner 2011-05-13 14:39:47
更多的相关信息我已经做到了现在,由于 – James 2009-09-14 11:09:26
哇,对我帮助很大! – Strae 2010-01-26 13:13:39
应该注意的是'fill_form'也适用于XFDF数据。如果您需要在生成的PDF中包含可编辑和只读字段的组合,请在生成PDF时为要填写的字段设置“只读”属性。只读字段将由PDFTK填充,但不能由最终用户编辑。 – Kenaniah 2011-04-04 18:04:12