WeasyPrint 是把 HTML 与 CSS 渲染为 PDF 的 Python 可视化引擎,适合生成报告、发票、票据等打印文档,CSS 布局引擎专为分页设计且不依赖浏览器内核。
- v70.0
- 发布于
- 2026年9月8日
- 9,709
- 星标
- 28,698
- 下载
- 同步于
- 8 天前
最新版本
v70.02026年9月8日 20:31下载慢?可在上方随时切换镜像源
项目说明
项目概述
WeasyPrint 自称文档工厂,帮助 Web 开发者把简单的 HTML 页面变成精美的统计报告、发票、票据等 PDF 文档。它是一个面向 HTML 和 CSS 的可视化渲染引擎,目标是支持面向打印的 Web 标准;CSS 布局引擎用 Python 编写、专为分页设计,不依赖 WebKit 或 Gecko 等浏览器内核。
| 项目 | 内容 |
|---|---|
| 平台 | Linux、macOS、Windows |
| 语言 | Python 3.11+ |
| 许可 | BSD 三条款 |
| 输出格式 |
会写 HTML 和 CSS,就能产出排版精良的 PDF。
主要功能
- HTML 转 PDF:传入 URL 或 HTML 文件即可渲染为分页 PDF
- CSS 分页引擎:布局引擎专为打印分页设计,支持页眉页脚与页码
- 打印标准支持:实现面向打印的 CSS 特性,如 @page 规则
- 字体处理:支持 web 字体与系统字体的使用和嵌入
- Python API:一行调用即可在服务端生成 PDF
- 独立内核:不依赖浏览器引擎,部署轻便、可按需扩展
适用人群
- 需要生成报表、发票的后端开发者
- 把网页内容归档为 PDF 的运维团队
- 出版与票据打印系统开发者
- 希望复用 CSS 排版技能的 Web 工程师
快速上手
- 安装
pip install weasyprint- 在 Python 中渲染 PDF
from weasyprint import HTML
HTML('report.html').write_pdf('report.pdf')- 也可以直接用命令行转换
weasyprint report.html report.pdf核心优势
- 复用 Web 技能:排版直接用 HTML 与 CSS 表达,无需学习新模板语言
- 专为分页而生:页码、分页控制等打印需求原生支持
- 无浏览器依赖:纯 Python 布局引擎,服务端部署轻便
系统要求
| 项目 | 要求 |
|---|---|
| 语言 | Python 3.11+,支持 CPython 与 PyPy |
| 操作系统 | Linux、macOS、Windows |
| 系统依赖 | Pango 等图形库 |
注意事项
- 非浏览器渲染:不含 JavaScript 执行,动态内容需先渲染为静态 HTML
- 系统库安装:Linux 服务器上需先安装 Pango,缺失会导致启动报错
历史版本
排序