在safari 5.1.7中下载PDF文件

时间:2013-03-20 07:23:30

标签: cakephp pdf safari download

我正在使用cakephp。我使用http://koivi.com/fill-pdf-form-fields此网址

中的函数生成FDF文件

工作正常。然后我使用PDFTK生成PDF文件,并有一些标题下载文件,它在Firefox,Chorome和IE中工作正常,但它在safari浏览器中不能很好地工作。在safari中,它显示PDF文件代码。当我在命令结束时使用exit();然后safari下载文件但它没有完成。

文件的正常大小为60Kb,但exit()生成48Kb文件。所以它的意思是由于PDF命令错过了一些exit()文件内容。

如果有人可以在safari浏览器中给出一些提示来解决这个问题。 提前谢谢。

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="pdf_file_name.pdf"');
header("Content-Type: application/download");
header("Content-Length: " . filesize($pdf_doc));
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
// $pdf_doc is the PDF Form physical path
// $fdf_doc is the FDF file physical path
echo passthru("/usr/local/bin/pdftk $pdf_doc fill_form $fdf_doc output - ");

2 个答案:

答案 0 :(得分:2)

使用以下PDFTK命令

将生成的文件保存在磁盘上
passthru("pdftk $pdf_doc fill_form $fdf_doc output test.pdf");

然后使用与已生成的PDF相同的代码。 保存PDF文件

后,请尝试以下代码
header('Content-Disposition: attachment; filename="pdf_file_name.pdf"');
header("Content-Type: application/download");
header('Content-Type:application/pdf');
header("Content-Length: " . filesize("test.pdf"));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile("test.pdf");

希望这也适用于safari

答案 1 :(得分:0)

使用header('Content-Type:application/pdf');

尝试