snappy

PHP 一键把网页转成 PDF 或图片,省时省力

Snappy 是一个 PHP 库,用于将 URL 或 HTML 页面转换为缩略图、快照或 PDF 文件。它本质上是 wkhtmltopdf 和 wkhtmltoimage 命令行工具的封装,通过 PHP 接口提供简洁的调用方式。该项目解决了 PHP 开发者需要快速生成网页截图或 PDF 文档时,直接调用底层工具复杂且易出错的问题。核心能力包括:从 URL 或 HTML 字符串生成 PDF、图片和缩略图;支持设置页面尺寸、边距、缩放等参数;提供流式输出或保存到文件;支持批量生成和缓存。Snappy 的 API 设计直观,易于集成到 Laravel 等框架中,适合报表生成、网页预览、文档存档等场景。

开源 free 图像生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4475
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类图像生成
开发团队KnpLabs
所属国家
定价模式free
价格说明开源PHP库,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言PHP
技术栈/模型hacktoberfest,html-to-image,html-to-pdf,image-generation,pdf-generation,php
GitHub 星标★ 4475
30天Star增速
HF 下载量
上线时间2010-06-16 00:00:00
最近更新2026-09-11 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数7

使用教程

难度:入门 约 20 分钟 部署方式:库/依赖 4 步

环境要求

  • PHP 环境(用于运行 Composer 与代码)
  • Composer 包管理器
  • 已安装 wkhtmltopdf / wkhtmltoimage 0.12.x 命令行工具(OSX、Linux、Windows 均可)

安装与启动步骤

  1. 1安装 wkhtmltox

    Snappy 只是 wkhtmltopdf/wkhtmltoimage 的封装,必须先自行下载安装 0.12.x 版本,否则无法生成 PDF 或图片。

  2. 2引入 Snappy 库

    在项目根目录用 Composer 安装 KnpLabs 官方的 Snappy 包,安装后即可在 PHP 代码中调用。

    composer require knplabs/knp-snappy
  3. 3编写调用代码

    在 PHP 中实例化 Snappy 的 PDF 或 Image 对象,调用 generateFromHtml/generateFromUrl 等方法生成文件或输出流。

  4. 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 下可能导致本地文件泄露甚至远程代码执行,非必要不要开启,且务必先过滤用户输入。

注意事项

  • README 未给出具体安装 wkhtmltopdf 的命令与端口、路径示例,请按 wkhtmltopdf 官方文档下载 0.12.x。
  • --enable-local-file-access 有安全风险,不可信内容建议改用 WeasyPrint、Prince 或 Puppeteer。
  • 遇到问题先查阅项目 doc/faq.md,很多问题属于 wkhtmltox 本身而非 Snappy。

核心亮点

  • 基于 wkhtmltopdf,渲染效果接近浏览器,支持复杂 CSS 布局
  • API 简单,几行代码即可生成 PDF 或快照,支持流式响应
  • 支持 URL 和 HTML 字符串两种输入,灵活适配不同场景

不足之处

  • 依赖外部二进制 wkhtmltopdf,部署环境需额外安装,增加运维成本
  • wkhtmltopdf 对现代 Web 技术(如 Flexbox、WebGL)支持有限,复杂页面可能渲染失真

适用场景

  • 生成网页截图用于分享预览或邮件附件
  • 将报表或发票 HTML 模板转为 PDF 存档或打印
  • 批量抓取网页快照用于归档或监控

替代项目

Dompdf、Browsershot、Puppeteer

项目介绍

snappy 是图像领域的开源项目,由 KnpLabs 开发,2010 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(4,475)位列前 10%,在图像分类的 839 个项目里位列前 6%。

项目仍在小幅维护中,最近一次代码更新于 2026-09-11。开源PHP库,MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:生成网页截图用于分享预览或邮件附件。同类可对比的替代方案包括 Dompdf、Browsershot、Puppeteer。

上一篇:awesome-gpt-image-2

下一篇:SwarmUI

同类项目推荐

satori 开源

网页代码一键变高清图,放大不糊,不用截图

Enlightened library to convert HTML and CSS to SVG

★ 13967 2026-08-09
C2GAN 开源

用关键点精准控制图像生成,让AI画出你想要的结构

[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···

★ 70 2026-08-09
ComfyUI 开源

像搭积木一样连节点,生图流程自己搭

The most powerful and modular diffusion model GUI, api and backend with a graph/node···

★ 134493 2026-08-09