snappy

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 图像生成 🍴 复刻 440 🐛 待处理 21 👀 关注 126
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 4473
维护状态 低维护
是否开源 开源
定价模式 🏷️完全免费 开源PHP库,MIT许可证,完全免费,可自行部署使用。

项目预览

snappy 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类图像生成
开发团队KnpLabs
定价模式🏷️完全免费
价格说明开源PHP库,MIT许可证,完全免费,可自行部署使用。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言PHP
技术栈/模型hacktoberfest,html-to-image,html-to-pdf,image-generation,pdf-generation,php
GitHub 星标★ 4473
上线时间2010-06-16 00:00:00
代码更新2026-07-29
仓库体积649 KB
本站数据更新2026-11-09
维护状态低维护
收录时间2026-08-09
浏览次数10

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 4473

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 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

上一篇:awesome-gpt-image-2

下一篇:SwarmUI

同类项目推荐

image-multiple-angles-3d-camera 开源

拖拽相机,3D 空间任意角度生成图像

Generate images from any camera viewpoint via 3D interactive control. Drag the camer···

★ 1004 2026-08-09
custom-diffusion360 开源

用几张图定制扩散模型,还能自由控制相机视角生成新图

CustomDiffusion360: Customizing Text-to-Image Diffusion with Camera Viewpoint Contro···

★ 173 2026-08-09
aperture 开源

一眼看透 Stable Diffusion 在关注什么,调试生成更轻松。

Visualize attention layers from Stable Diffusion

★ 91 2026-08-09
sd.cpp-webui 开源

在 CPU 上轻松跑 Stable Diffusion,浏览器里点几下就出图。

A lightweight Gradio WebUI for stable-diffusion.cpp.

★ 173 2026-08-09
RPG-DiffusionMaster 开源

用多模态大模型把复杂提示词变成高质量图像,还能对话式编辑

[ICML 2024] Mastering Text-to-Image Diffusion: Recaptioning, Planning, and Generatin···

★ 1846 2026-08-09
studio 开源

一键生成古怪艺术,灵感随手即得!

A suite of random, mostly weird, generative art tools!

★ 166 2026-08-09
goshot 开源

本地命令行一键生成美观代码截图,替代在线 Carbon

Create beautiful code screenshots with customizable styles

★ 329 2026-08-09
ReNoise-Inversion 开源

让真实图像精准反演,编辑更自然可控

Officail Implementation for "ReNoise: Real Image Inversion Through Iterative Noising···

★ 263 2026-08-09
StableSwarmUI 开源

一个界面管所有生图工具,不用再来回切换

StableSwarmUI, A Modular Stable Diffusion Web-User-Interface, with an emphasis on ma···

★ 4939 2026-08-09