FPDF - 生成的PDF无法在浏览器中正确显示

gni*_*one 2 php pdf firefox fpdf

我正在生成带有FPDF库的PDF文档.我试图在浏览器中显示生成的文档(Firefox,Chrome,Opera),但我得到的都是奇怪的字符,开头是:

%PDF-1.3 3 0 obj <>...
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我想在文档中添加两个图像.

$pdf = new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Image('./image.png',10,10,0,0,'png');
$pdf->Image('./image.png',10,120,0,0,'png');
$pdf->Output('file.pdf','I');
Run Code Online (Sandbox Code Playgroud)

如果我使用'D'选项输出:

$pdf->Output('file.pdf','D');
Run Code Online (Sandbox Code Playgroud)

并将文件保存在光盘上,pdf文件很好.

小智 7

您可能需要添加正确的内容类型标头.当Web服务器提供文件时,它会尝试从文件中提供正确的内容类型标题,但是在这里,当您使用PHP生成它时,将发送默认标头,通常是text/html.尝试将其添加到代码的开头:

header('Content-type: application/pdf');
Run Code Online (Sandbox Code Playgroud)

它应该使用正确的内容类型标头发送.


Bao*_*hen 6

我遇到了同样的问题,我ob_get_clean();之前添加$pdf->OutPut(),我得到了正确的结果.

这是因为标题不正确,但即使我在输出pdf之前设置了标题,它仍然不正确.