Laravel 截图 该软件包提供了一种在 Laravel 应用中捕获网页屏幕截图的方法。它采用基于驱动程序的架构,您可以根据自身的基础架构选择 Browsershot(基于 Chromium)或 Cloudflare 浏览器渲染。
主要特点
Laravel Screenshot 包含以下功能:
- 驱动程序支持 - 选择 Browsershot(基于 Node.js 的 Chromium)或 Cloudflare 浏览器渲染 API
- 默认设置 - 1280x800 视口,2 倍设备缩放比例(视网膜屏),PNG 格式,等待网络空闲
- 可定制尺寸和质量 - 根据屏幕截图调整视口宽度、高度和图像质量
- 排队后台处理 - 支持异步生成屏幕截图
- 测试工具 - 用于测试屏幕截图生成的伪造模式和断言辅助函数
- 磁盘存储选项 - 将屏幕截图保存到任何已配置的 Laravel 文件系统磁盘
该软件包支持两种驱动程序。默认的 Browsershot 驱动程序需要服务器上安装 Node.js 和 Chrome/Chromium 内核。Cloudflare 驱动程序需要一个具有浏览器渲染 API 访问权限的 Cloudflare 帐户,但不需要 Node.js 或 Chrome。
基本屏幕截图
使用
Screenshot
捕获网页外观:
使用
空间\Laravel截图\立面\截图
;截屏
::
网址
(
'https://example.com'
)
->
节省
(
'screenshot.png'
(英文):
这会以 1280x800 分辨率捕获页面并将其保存为 PNG 文件。
定制尺寸和质量
使用方法链调整视口尺寸和图像质量:
截屏
::
网址
(
'https://example.com'
)
->
宽度
(
1920
)
->
高度
(
1080
)
->
质量
(
80
)
->
节省
(
'screenshot.jpg'
(英文):
质量参数接受 0-100 之间的值,并在保存为 JPEG 格式时应用。
排队后台处理
使用以下方式在后台生成屏幕截图
saveQueued()
:
截屏
::
网址
(
'https://example.com'
)
->
保存队列
(
'screenshot.png'
)
->
然后
(
fn
(
细绳
$path,
?细绳
$diskName) =>
邮件
::
到
($用户)
->
发送
(
新的
截图邮件
(路径)(英文):
这
then()
屏幕截图完成后,回调函数会接收已保存的文件路径和磁盘名称。
测试屏幕截图生成
该软件包还包含用于验证屏幕截图生成的测试工具,而无需实际捕获图像:
截屏
::
伪造的
();$this
->
得到
(
路线
(
'截屏'
))
->
断言Ok
();截屏
::
断言已保存
(
功能
($screenshot) {
返回
屏幕截图
->
网址
===
'https://example.com'
;});
这样可以防止在测试期间进行外部 HTTP 调用和文件系统写入,同时仍然能够断言尝试了屏幕截图操作。
示例用例
- PDF生成工作流程
- Open Graph 图像生成
- 网络监控和存档
- 视觉回归测试
- 报告生成
要了解更多关于 Laravel Screenshot 的信息,请访问 GitHub 存储库 或者阅读 官方文档 。





