1

コントローラ:

public function test(){
    $data = array();
    $this->load->library('tcpdf');
    $this->display_page($data);
}

test.php: (少し長いので、すべてを掲載していません)

global $l;
$l = Array();
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'en';
$l['w_page'] = 'page';

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',              false);


-- pdf stuff -- 

$pdf->Output('example_007.pdf', 'I');

Chrome では、「PDF ドキュメントの読み込みに失敗しました。」とだけ表示されます。エラーはなく、コンソールには何もありません。Firefox では、「ファイルが '%PDF-' で始まっていません。Local\EWH`_'s3-0y」と表示されます。

Local\ の末尾の文字列は、ロードごとにランダムに表示されます。

出力バッファリングとフラッシュを使用しようとしましたが、役に立ちませんでした。私は途方に暮れています。

4

5 に答える 5

0

ドゥニヤンドは正しいです。Chrome のデバッグ ツールでネットワーク応答を見たところ、'%PDF-' マジックが 1 行目ではなく 2 行目にあることがわかりました。PDFファイルの前にブラウザーに出力されていた区切り文字の前後に、必要なインクルードファイルに空白があることを発見しました。PHP区切り文字の前後にあるこの空白を削除すると、問題が解決しました。

于 2014-10-21T08:28:47.507 に答える
0

請求書を生成する前に、ブラウザーに何かを出力している可能性があります。ページのソースに移動し、空白 (改行またはスペース) を含む何かがあるかどうかを確認し、それらを削除します。

于 2013-04-03T19:55:01.280 に答える
0

YII FRAMEWORK を使用している場合は、renderPartial を使用し、コントローラーでビューをレンダリングしないようにしてください。

于 2015-03-20T11:49:30.190 に答える