KnpSnappyBundle 是图像领域的开源项目,由 KnpLabs 开发,2010 年首次发布。
在全站 12,961 个收录项目中,它的 GitHub 星标数(1,246)位列前 30%,在图像分类的 837 个项目里位列前 14%。
项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-03。MIT许可证,完全免费,无付费版本。
它主要面向的使用场景是:生成发票、报告等PDF文档。同类可对比的替代方案包括 Dompdf、Tcpdf、Snappy。

在 Symfony 中一键将 HTML 转为 PDF 和图片
KnpSnappyBundle 是一个 Symfony 框架的集成包,用于在 PHP 项目中轻松生成 PDF 和图片。它封装了 KnpSnappy 库,后者基于 WebKit 引擎(通过 wkhtmltopdf/wkhtmltoimage 工具)将 HTML 内容转换为 PDF 或图片。该包解决了 PHP 后端生成高质量文档和图像的需求,无需依赖外部服务。核心能力包括:提供简单的服务调用接口,支持配置多个转换选项(如页面大小、边距、缩放等),支持从 URL 或字符串生成 PDF,以及将 HTML 转换为 PNG/JPEG 图片。它简化了 Symfony 中的集成流程,通过依赖注入和配置自动注册服务,开发者只需几行代码即可完成转换。
1安装 Bundle
在 Symfony 项目根目录执行 Composer 命令,安装 KnpSnappyBundle 依赖包。
composer require knplabs/knp-snappy-bundle2注册 Bundle
如果项目未使用 Flex 自动注册,需在 config/bundles.php 的返回数组中手动加入该 Bundle,环境设为 all。
3配置转换服务
按需在 config/packages/knp_snappy.yaml 中配置 pdf 与 image 服务的启用状态、二进制路径与选项。
4确认二进制可用
确认 wkhtmltopdf / wkhtmltoimage 已安装且路径与配置一致;Windows 下路径需按 README 示例加双引号并转义反斜杠。
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
knp_snappy.pdf.enabled | 否 | 是否启用 PDF 生成服务 | true |
knp_snappy.pdf.binary | 否 | wkhtmltopdf 可执行文件的路径 | /usr/local/bin/wkhtmltopdf |
knp_snappy.pdf.options | 否 | PDF 转换选项数组,如页面大小、边距、缩放等 | [] |
knp_snappy.image.enabled | 否 | 是否启用图片生成服务 | true |
knp_snappy.image.binary | 否 | wkhtmltoimage 可执行文件的路径 | /usr/local/bin/wkhtmltoimage |
执行 composer require 后看到依赖安装成功,且 config/bundles.php 中已包含 KnpSnappyBundle,配置文件无语法错误。
Q:页面里用 JavaScript 渲染会出问题吗?
A:会。wkhtmltopdf 对 ES6 API 不完全兼容,可能出现渲染异常;README 给出的解决办法是提供 polyfill 来补齐现代 ES6 API 的差异。
Q:不使用 Symfony Flex 怎么办?
A:需要手动注册 Bundle,在 config/bundles.php 的返回数组中加入 KnpBundleSnappyBundleKnpSnappyBundle::class => ['all' => true]。
Q:如何更换转换工具的可执行文件路径?
A:修改 config/packages/knp_snappy.yaml 中对应服务的 binary 配置项即可,例如把 pdf.binary 指向 /usr/local/bin/wkhtmltopdf。
Q:Windows 下 binary 路径怎么写?
A:README 示例使用双引号包裹整个路径并转义反斜杠,例如 "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"。
Dompdf、Tcpdf、Snappy
KnpSnappyBundle 是图像领域的开源项目,由 KnpLabs 开发,2010 年首次发布。
在全站 12,961 个收录项目中,它的 GitHub 星标数(1,246)位列前 30%,在图像分类的 837 个项目里位列前 14%。
项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-03。MIT许可证,完全免费,无付费版本。
它主要面向的使用场景是:生成发票、报告等PDF文档。同类可对比的替代方案包括 Dompdf、Tcpdf、Snappy。
下一篇:StereoDiffusion
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
DeTikZify
开源
上传图表或草图,秒变可编译的TikZ矢量代码。
Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ.