每月免费发送 4,000 封电子邮件 | Mailtrap 现在发送真正的电子邮件!

使用 Spatie 的 Laravel Screenshot 在 Laravel 中捕获网页屏幕截图

最后更新于 经过

使用 Spatie 的 Laravel Screenshot Image 在 Laravel 中捕获网页屏幕截图

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 存储库 或者阅读 官方文档

保罗·雷德蒙德照片

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

归档于:
立方体

Laravel 时事通讯

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

图像
廷克威尔

这款编辑器专为快速反馈和快速迭代而设计,让您尽享编码和调试的乐趣。它就像您应用程序的一个外壳——但具备多行编辑、代码自动完成等更多功能。

参观廷克韦尔
银行标志

银行

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

银行
Tinkerwell 徽标

廷克威尔

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

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

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

专家级代码审查!两位拥有 10 年以上 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 入门套件
FrankenPHP v1.11.2 发布,CGO 速度提升 30%,GC 速度提升 40%,并包含安全补丁。

FrankenPHP v1.11.2 发布,CGO 速度提升 30%,GC 速度提升 40%,并包含安全补丁。

阅读文章
使用 Spatie 的 Laravel Screenshot Image 在 Laravel 中捕获网页屏幕截图

使用 Spatie 的 Laravel Screenshot 在 Laravel 中捕获网页屏幕截图

阅读文章
Nimbus:一个用于 Laravel 镜像的浏览器内 API 测试平台

Nimbus:一个用于 Laravel 的浏览器内 API 测试平台

阅读文章
Laravel 12.51.0 新增了 afterSending 回调、验证器 whenFails 和 MySQL 超时功能。

Laravel 12.51.0 新增了 afterSending 回调、验证器 whenFails 和 MySQL 超时机制

阅读文章
在 Laravel MongoDB 图片中处理带有分页和游标的大型数据集

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

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

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

阅读文章