PDFTK向浏览器输出损坏的pdf


PDFTK outputs a corrupt pdf to the browser

我使用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 ");

我可以打开,阅读和编辑结果PDF从tmp文件夹。似乎'output - '选项在某种程度上破坏了PDF。

我的问题是:我做错了什么吗?是否有一些我遗漏的代码或更好的方法来完成这一点?

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

例如,使用<?php ...而不使用最后的?>,这样您就可以确保没有最后的空白,特别是在PDF输出后写入换行符