0

我正在使用 cakephp。我已经使用来自http://koivi.com/fill-pdf-form-fields这个 URLFDF的函数生成文件

它工作正常。然后我使用 生成 PDF 文件PDFTK,并有一些标题来下载文件,它在 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 - ");
4

2 回答 2

2

使用 PDFTK 的以下命令将生成的文件保存在磁盘上

passthru("pdftk $pdf_doc fill_form $fdf_doc output test.pdf");

然后对已经生成的代码使用相同的代码PDFPDF保存文件后尝试以下代码

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");

希望这也适用于野生动物园

于 2013-03-20T11:19:22.180 回答
0

试试看header('Content-Type:application/pdf');

于 2013-03-20T07:26:53.893 回答