snappy 是图像领域的开源项目,由 KnpLabs 开发,2010 年首次发布。
在全站 13,090 个收录项目中,它的 GitHub 星标数(4,475)位列前 10%,在图像分类的 839 个项目里位列前 6%。
项目仍在小幅维护中,最近一次代码更新于 2026-09-11。开源PHP库,MIT许可证,完全免费,可自行部署使用。
它主要面向的使用场景是:生成网页截图用于分享预览或邮件附件。同类可对比的替代方案包括 Dompdf、Browsershot、Puppeteer。

PHP 一键把网页转成 PDF 或图片,省时省力
Snappy 是一个 PHP 库,用于将 URL 或 HTML 页面转换为缩略图、快照或 PDF 文件。它本质上是 wkhtmltopdf 和 wkhtmltoimage 命令行工具的封装,通过 PHP 接口提供简洁的调用方式。该项目解决了 PHP 开发者需要快速生成网页截图或 PDF 文档时,直接调用底层工具复杂且易出错的问题。核心能力包括:从 URL 或 HTML 字符串生成 PDF、图片和缩略图;支持设置页面尺寸、边距、缩放等参数;提供流式输出或保存到文件;支持批量生成和缓存。Snappy 的 API 设计直观,易于集成到 Laravel 等框架中,适合报表生成、网页预览、文档存档等场景。
1安装 wkhtmltox
Snappy 只是 wkhtmltopdf/wkhtmltoimage 的封装,必须先自行下载安装 0.12.x 版本,否则无法生成 PDF 或图片。
2引入 Snappy 库
在项目根目录用 Composer 安装 KnpLabs 官方的 Snappy 包,安装后即可在 PHP 代码中调用。
composer require knplabs/knp-snappy3编写调用代码
在 PHP 中实例化 Snappy 的 PDF 或 Image 对象,调用 generateFromHtml/generateFromUrl 等方法生成文件或输出流。
4按需集成框架
若使用 Symfony、Laravel 或 Zend Framework,可改用对应的官方集成包简化配置。
运行 PHP 脚本后能成功生成 PDF 或图片文件、无报错,即表示 Snappy 与 wkhtmltox 均工作正常。
Q:为什么安装了 Snappy 还是报错找不到 wkhtmltopdf?
A:Snappy 只是封装库,不包含 wkhtmltopdf 本身,需要单独下载安装 wkhtmltopdf/wkhtmltoimage 0.12.x 并确保命令在系统 PATH 中可执行。
Q:支持哪些 PHP 框架?
A:README 列出官方集成:Symfony 用 knplabs/knp-snappy-bundle,Laravel 用 barryvdh/laravel-snappy,Zend Framework 用 mvlabs/mvlabs-snappy。
Q:使用 --enable-local-file-access 安全吗?
A:该选项在不可信 HTML/JS 下可能导致本地文件泄露甚至远程代码执行,非必要不要开启,且务必先过滤用户输入。
Dompdf、Browsershot、Puppeteer
snappy 是图像领域的开源项目,由 KnpLabs 开发,2010 年首次发布。
在全站 13,090 个收录项目中,它的 GitHub 星标数(4,475)位列前 10%,在图像分类的 839 个项目里位列前 6%。
项目仍在小幅维护中,最近一次代码更新于 2026-09-11。开源PHP库,MIT许可证,完全免费,可自行部署使用。
它主要面向的使用场景是:生成网页截图用于分享预览或邮件附件。同类可对比的替代方案包括 Dompdf、Browsershot、Puppeteer。
下一篇:SwarmUI
satori
开源
网页代码一键变高清图,放大不糊,不用截图
Enlightened library to convert HTML and CSS to SVG
C2GAN
开源
用关键点精准控制图像生成,让AI画出你想要的结构
[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···
stable-diffusion-webui
开源
打开网页说想法,配图素材几秒到手
Stable Diffusion web UI
ComfyUI
开源
像搭积木一样连节点,生图流程自己搭
The most powerful and modular diffusion model GUI, api and backend with a graph/node···