php实现打开pdf
使用 PHP 实现打开 PDF
在 PHP 中打开 PDF 文件通常涉及两种场景:直接在浏览器中显示 PDF 或提供下载链接。以下是几种常见的方法:
使用 header() 函数直接输出 PDF 到浏览器
通过设置正确的 HTTP 头信息,可以将 PDF 文件直接输出到浏览器供用户查看或下载:

$file = 'example.pdf';
if (file_exists($file)) {
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
} else {
echo 'PDF 文件不存在';
}
提供下载链接
如果需要提供下载而非直接在浏览器中打开,可以修改 Content-Disposition 头:

$file = 'example.pdf';
if (file_exists($file)) {
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
} else {
echo 'PDF 文件不存在';
}
使用第三方库生成或操作 PDF
如果需要动态生成 PDF 文件,可以使用第三方库如 TCPDF、FPDF 或 Dompdf:
// 使用 TCPDF 生成 PDF
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('times', 'B', 16);
$pdf->Cell(0, 10, 'Hello World!', 0, 1);
$pdf->Output('example.pdf', 'I'); // 'I' 表示直接在浏览器中打开
使用 file_get_contents 和 echo
对于较小的 PDF 文件,也可以使用 file_get_contents 读取文件内容并输出:
$file = 'example.pdf';
if (file_exists($file)) {
header('Content-Type: application/pdf');
echo file_get_contents($file);
exit;
} else {
echo 'PDF 文件不存在';
}
注意事项
- 确保文件路径正确,避免因路径问题导致文件无法打开。
- 在输出 PDF 前不要有任何输出(包括空格和换行),否则可能导致 HTTP 头设置失败。
- 对于动态生成的 PDF,确保生成的内容符合 PDF 格式规范。
- 大文件推荐使用
readfile而非file_get_contents,以避免内存问题。






