项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 4473
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- PHP 环境(用于运行 Composer 与代码)
- Composer 包管理器
- 已安装 wkhtmltopdf / wkhtmltoimage 0.12.x 命令行工具(OSX、Linux、Windows 均可)
安装与启动步骤
-
1安装 wkhtmltox
Snappy 只是 wkhtmltopdf/wkhtmltoimage 的封装,必须先自行下载安装 0.12.x 版本,否则无法生成 PDF 或图片。
-
2引入 Snappy 库
在项目根目录用 Composer 安装 KnpLabs 官方的 Snappy 包,安装后即可在 PHP 代码中调用。
composer require knplabs/knp-snappy -
3编写调用代码
在 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 下可能导致本地文件泄露甚至远程代码执行,非必要不要开启,且务必先过滤用户输入。
注意事项
- 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
下一篇:SwarmUI
同类项目推荐
image-multiple-angles-3d-camera
开源
拖拽相机,3D 空间任意角度生成图像
Generate images from any camera viewpoint via 3D interactive control. Drag the camer···
custom-diffusion360
开源
用几张图定制扩散模型,还能自由控制相机视角生成新图
CustomDiffusion360: Customizing Text-to-Image Diffusion with Camera Viewpoint Contro···
aperture
开源
一眼看透 Stable Diffusion 在关注什么,调试生成更轻松。
Visualize attention layers from Stable Diffusion
sd.cpp-webui
开源
在 CPU 上轻松跑 Stable Diffusion,浏览器里点几下就出图。
A lightweight Gradio WebUI for stable-diffusion.cpp.
RPG-DiffusionMaster
开源
用多模态大模型把复杂提示词变成高质量图像,还能对话式编辑
[ICML 2024] Mastering Text-to-Image Diffusion: Recaptioning, Planning, and Generatin···
studio
开源
一键生成古怪艺术,灵感随手即得!
A suite of random, mostly weird, generative art tools!
goshot
开源
本地命令行一键生成美观代码截图,替代在线 Carbon
Create beautiful code screenshots with customizable styles
ReNoise-Inversion
开源
让真实图像精准反演,编辑更自然可控
Officail Implementation for "ReNoise: Real Image Inversion Through Iterative Noising···
StableSwarmUI
开源
一个界面管所有生图工具,不用再来回切换
StableSwarmUI, A Modular Stable Diffusion Web-User-Interface, with an emphasis on ma···
