几天内即可获得 Laravel 代码审查方面的专家指导

Spatie 的 Laravel PDF v2 中基于驱动程序的架构

最后更新于 经过

Spatie 的 Laravel PDF v2 图像中的基于驱动程序的架构

Spatie 的 laravel-pdf v2 引入了基于驱动程序的 PDF 生成架构,允许您在 Browsershot、Cloudflare 浏览器渲染、DomPdf 以及(自 v2.1.0 版本起)Gotenberg 之间进行选择。此版本还新增了 PDF 生成队列、PDF 元数据支持、运行时驱动程序切换和自定义驱动程序支持。

  • 基于驱动程序的架构,包含 Browsershot、Cloudflare 和 DomPdf 驱动程序
  • v2.1.0 版本新增 Gotenberg 驱动程序
  • 已排队的 PDF 生成
  • PDF元数据支持(标题、作者、主题、关键词、创建者、创建日期)
  • 运行时驱动程序切换和自定义驱动程序

什么是新的

基于驱动的架构

v2 版本最大的变化在于采用了基于驱动程序的系统。您不再需要局限于 Browsershot,现在您可以选择适合您基础架构的 PDF 后端:

  • 浏览器快照 — 通过 Puppeteer 使用 Chromium 进行渲染(仍为默认设置)
  • Cloudflare — 使用 Cloudflare 的浏览器渲染 API 生成 PDF
  • DomPdf — 纯 PHP 渲染,无需外部二进制文件

在配置文件中设置默认驱动程序,或在运行时切换:

使用 空间\LaravelPdf\立面\Pdf ;
PDF :: 看法 'pdfs.invoice' ,[ '发票' => $invoice])
-> 司机 'dompdf'
-> 格式 'a4'
-> 节省 'invoice.pdf' (英文):

您还可以为软件包未包含的后端构建自定义驱动程序。

哥登堡驱动程序(v2.1.0)

v2 版本发布后的第二天,v2.1.0 版本就添加了内置的 Gotenberg 驱动程序。 哥登堡 是一个基于 Docker 的 API,用于使用无头 Chromium 将 HTML 转换为 PDF。该驱动程序将 HTML 作为 multipart/form-data 发送到 Gotenberg 的转换端点,并支持所有标准 PDF 选项:纸张大小、边距、方向、缩放比例、页面范围、页眉和页脚。它使用 Laravel 内置的 Http 由于采用了外观设计,因此不需要额外的 Composer 依赖项。

公关稿: #302

已排队的 PDF 生成

现在可以将 PDF 生成任务卸载到队列中。 saveQueued() 您可以添加一个回调函数,在 PDF 保存后运行——例如,发送一封包含生成文件的电子邮件:

使用 空间\LaravelPdf\立面\Pdf ;
PDF :: 看法 'pdfs.invoice' ,[ '发票' => $invoice])
-> 格式 'a4'
-> 保存队列 'invoice.pdf'
-> 然后 fn 细绳 $path, ?细绳 $diskName) =>
邮件 :: ($用户) -> 发送 新的 发票邮件 (路径)
(英文):

该方法还接受可选参数 $connection$queue 参数。

PDF元数据

v2 增加了一个 meta() 设置PDF文档元数据的方法:

使用 空间\LaravelPdf\立面\Pdf ;
PDF :: 看法 'pdfs.invoice' ,[ '发票' => $invoice])
->
标题 : 发票编号 1234 ,
作者 : “Acme公司” ,
主题 : “月度发票” ,
关键词 : 发票,账单 ,
創作者 : Laravel PDF ,
创建日期 : 现在 (),
-> 节省 'invoice.pdf' (英文):

检查 文档 有关 PDF 格式设置的更多详细信息。

升级说明

这是一个包含重大变更的版本更新:

  • spatie/browsershot 如果您使用 Browsershot 驱动程序,则现在必须通过 Composer 显式地要求添加该驱动程序。
  • getBrowsershot() 已移除——使用 withBrowsershot() 反而
  • 配置文件结构已更改(新) driver 密钥)—重新发布您的配置
  • Laravel 10 的支持已停止。

参考

保罗·雷德蒙德照片

Laravel News 特约撰稿人。全栈 Web 开发人员兼作家。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

访问 Laravel Cloud
银行标志

银行

只需每月 3200 美元,即可聘请一位拥有 4-6 年经验的资深 Laravel 开发人员,为您的项目注入强劲动力。您将获得 160 小时的专属专业服务,并享受 15 天无风险试用。立即预约通话!

银行
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
在 Laravel MongoDB 图片中处理带有分页和游标的大型数据集

在 Laravel MongoDB 中使用分页和游标处理大型数据集

阅读文章
Spatie 的 Laravel PDF v2 图像中的基于驱动程序的架构

Spatie 的 Laravel PDF v2 中基于驱动程序的架构

阅读文章
为什么你的 Livewire 控制面板会跳动(以及如何修复)- Laravel 实战 EP18 图片

为什么你的 Livewire 控制面板会跳动(以及如何修复)- Laravel 实战 EP18

阅读文章
Laravel Live UK 将于 2026 年 6 月 18 日至 19 日重返伦敦(图片)

Laravel Live UK 将于 2026 年 6 月 18 日至 19 日重返伦敦。

阅读文章
Laravel 相关内容:使用 pgvector 图片实现语义关系

Laravel 相关内容:使用 pgvector 构建语义关系

阅读文章
Filament v5.2.0 新增标注组件图像

Filament v5.2.0 新增标注组件

阅读文章