[Laravel 扩展包]在 Laravel 中使用 Blade 视图生成 PDF
由 Spatie 提供的 Laravel PDF 包,提供了一个在 Laravel 中创建 PDF 的简单方式。它使用 Blade 视图渲染 HTML 并且使用 Browsershot 从视图中创建 PDF。这使其可以使用现代 CSS 工具(如 Grid、Flexbox)、现代 CSS 框架(如 Tailwind),甚至可以使用 JavaScript 代码(比如渲染图表)
以下是创建 PDF 的基础示例并从控制器返回该 PDF,它传递变量给模板使之可以动态渲染 PDF 数据:
use Spatie\LaravelPdf\Facades\Pdf;
class DownloadInvoiceController
{
public function __invoke(Invoice $invoice)
{
return Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format('a4')
->name('your-invoice.pdf');
}
}
发布时,该 Laravel PDF 包支持以下特性:
- 使用 Blade 模板或者 HTML 字符串渲染 PDF
- 将生成的 PDF 保存到 Laravel 磁盘中
- 在生成 PDF 时运行 JavaScript
- 使用强大的断言进行 PDF 测试伪装
- 通过 Laravel Sidecart 在 Lambda 上生成 PDF
- 使用分页符、Browsershot 自定义等工具进行高级 PDF 控制
- 等等...
使用 Blade 在 Laravel 中创建 PDF 将使生成优美的自定义 PDF 比以往任何时候都更容易、更强大!要开始,请查看官方的 Laravel PDF 文档。GitHub 上源码请查阅 spatie/laravel-pdf。