PDFTK向浏览器输出损坏的pdf

时间:2013-05-10 23:26:32

标签: php pdftk

我正在使用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阅读器收到一条错误,上面写着“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。似乎'output - '选项在某种程度上破坏了PDF。

我的问题是:我做错了吗?是否有一些我缺少的代码或更好的方法来实现这一目标?

  • PHP版本:5.3.19;服务器操作系统:Mac OS 10.7.5;客户端操作系统:Mac OS 10.7.5;浏览器测试:Chrome,FireFox;读者测试:Adobe PDF Reader,预览; PDFTK版本:1.4.5

1 个答案:

答案 0 :(得分:0)

例如,使用<?php ...而不是最终?>,因此您确定没有最终的空格,尤其是在PDF输出后写入换行符。