0

私はcakephpで働いています。http://koivi.com/fill-pdf-form-fieldsこの URLFDFの関数を使用してファイルを生成しました

正常に動作しています。次に、を使用して PDF ファイルを生成しPDFTK、Firefox、Chorome、IE では正常に動作するファイルをダウンロードするためのヘッダーをいくつか用意しましたが、Safari ブラウザーではうまく動作しませんでした。Safari では、PDF ファイルのコードが表示されます。コマンドの最後に使用するexit();と、サファリはファイルをダウンロードしますが、完全ではありませんでした。

ファイルの通常のサイズは 60Kb ですがexit()、48Kb のファイルが生成されます。したがって、コマンドPDFが原因でファイルの内容の一部が失われたことを意味しますexit()

サファリブラウザでこの問題を解決するためのヒントを誰かが与えることができれば. 前もって感謝します。

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

次に、すでに生成されているものと同じコードを使用し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");

これがサファリでも機能することを願っています

于 2013-03-20T11:19:22.180 に答える
0

で試してみてくださいheader('Content-Type:application/pdf');

于 2013-03-20T07:26:53.893 に答える