使用DomPDF可高效生成PDF。通过Composer安装barryvdh/laravel-dompdf,利用PDF门面加载视图并生成文件,支持下载、预览、保存操作,可设置纸张大小、方向,并需注意中文字体兼容性。

在Laravel项目中生成PDF文件,一个简单高效的方式是使用DomPDF扩展包。它能将HTML内容渲染为PDF文档,非常适合生成报表、发票、合同等场景。下面介绍如何在Laravel中集成并使用DomPDF。
通过Composer安装barryvdh/laravel-dompdf,这是Laravel对DomPDF的封装包,支持服务容器和门面调用。
在项目根目录运行以下命令:
composer require barryvdh/laravel-dompdf
安装完成后,Laravel 5.5+会自动注册服务提供者和门面,无需手动操作。如果使用较旧版本,需在config/app.php中添加:
安装完成后,可以在控制器中使用PDF门面快速生成PDF。
示例:生成一个简单的PDF文件
use PDF;
public function generatePDF()
{
$data = [
'title' => '欢迎使用Laravel DomPDF',
'content' => '这是一段用于测试PDF生成的内容。'
];
$pdf = PDF::loadView('pdf.document', $data);
return $pdf->download('example.pdf');
}
上述代码中,loadView方法加载名为pdf.document的视图文件,并传入数据。调用download()会强制浏览器下载PDF文件。若想直接在浏览器中预览,可使用stream()方法:
return $pdf->stream('document.pdf');
在resources/views/pdf/document.blade.php中创建视图文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ $title }}</title>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #3498db; }
</style>
</head>
<body>
<h1>{{ $title }}</h1>
<p>{{ $content }}</p>
</body>
</html>
注意:建议使用内联样式或<style>标签定义CSS,因为外部样式表可能无法正确加载。
你可以自定义PDF的输出格式,例如更改纸张尺寸或页面方向:
$pdf = PDF::loadView('pdf.document', $data)
->setPaper('a4')
->setOrientation('portrait'); // 或 'landscape'
常见纸张类型包括a4、letter、legal等。setOrientation控制纵向或横向排版。
如果需要将PDF保存到服务器而非下载,可以使用save()方法:
$pdf->save(storage_path('app/pdfs/invoice.pdf'));
确保目标目录存在且有写入权限。
基本上就这些。结合Blade模板和PHP逻辑,你可以动态生成结构复杂的PDF文档。不复杂但容易忽略的是字体和中文支持问题——若需显示中文,建议在CSS中引入支持中文的字体(如SimSun),并确保服务器环境支持。
以上就是Laravel如何生成PDF文件_Laravel DomPDF扩展包使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号