2016-06-30 19 views
-1

私はpdpdを生成するためにfpdfを使用しています。しかし、それは動作していません。PHPでのPDF生成が機能していません

$pdf = new FPDF(); 
$pdf->AddPage(); 
$pdf->SetFont('Arial','B',16); 
$pdf->Cell(40,10,'Hello World!'); 
$pdff = $pdf->output('tmp\tmp_file.pdf',"D"); 
header('Content-Type: application/pdf'); 
header('Content-Length: '.filesize($pdff)); 
header('Content-disposition: inline; filename="some_pdf_to_download.pdf"'); 
header('Cache-Control: public, must-revalidate, max-age=0'); 
header('Pragma: public'); 
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
readfile('tmp\tmp_file.pdf'); 
echo $pdff; 

これは私が使用しているコードです。私は出力 "%PDF 3 ......."を取得しています。

+0

こんにちは、ようこそ[ツアー](http://stackoverflow.com/tour)、[How to Ask](http://stackoverflow.com/help/how- to-ask)し、最後に[MCVE] –

答えて

0

ブラウザへのFPDF出力への "D"オプションは、ファイルをダウンロードするためにが必要なすべてのヘッダーを含むです。

readfileは、サーバー上の指定された場所にファイルの内容を出力します。

echo $pdff;にもPDFコンテンツを出力すると思われます。

実際にはヘッダーを2回、PDF本文を3回出力しようとしています。

ヘッダーも混乱します。インライン処理を指定しますが、ダウンロード用のファイル名を指定します。

最も簡単な解決策はして以降$pdffからすべてを置き換えるために、次のようになります。あなたは、ユーザーがPDFをインラインでレンダリングするために、ファイルまたは

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

をダウンロードするように求めるメッセージが表示されるようにしたい場合は

$pdf->Output('some_pdf_to_download.pdf', 'D'); 

関連する問題