我正在使用 PHP 填写 PDF 表单,我想将其输出到浏览器。我正在使用此处找到的功能:http: //koivi.com/fill-pdf-form-fields创建一个 xfdf 文件。然后我使用以下代码填写表单并将生成的文件输出到浏览器:
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="filename.pdf"');
passthru("/usr/local/bin/pdftk forms/pdf_form.pdf fill_form filename.xfdf output - ");
当我打开从浏览器创建的 PDF 时,我从 adobe pdf reader 收到一条错误消息,提示“Adobe Reader 无法打开 'filename.pdf',因为它不是受支持的文件类型或文件已损坏(例如,它是作为电子邮件附件发送的,但未正确解码)。” 在另一个阅读器中打开相同的 PDF 不会出现错误,但我的用户将使用 acrobat。
相比之下,如果我将代码更改为以下内容:
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="filename.pdf"');
passthru("/usr/local/bin/pdftk forms/pdf_form.pdf fill_form filename.xfdf output filename.pdf ");
我可以从 tmp 文件夹打开、阅读和编辑生成的 PDF。似乎“输出 - ”选项以某种方式破坏了 PDF。
我的问题是:我做错了什么吗?是否有一些我遗漏的代码或更好的方法来完成这个?
- PHP版本:5.3.19;服务器操作系统:Mac OS 10.7.5;客户端操作系统:Mac OS 10.7.5;测试的浏览器:Chrome、FireFox;测试的读者:Adobe PDF Reader, Preview;PDFTK 版本:1.4.5