把 HTML 转成 PDF
HTML 转 PDF 用 WeasyPrint 把上传的 .html 或 .htm 文件,或含 HTML 的 ZIP 渲染成 PDF。JavaScript 不会运行,所以靠脚本生成的页面输出会不完整。
把文件拖到这里,或点击选择
支持 HTML, HTM, ZIP · 单个文件不超过 500.0 MB · 一次最多 20 个文件
也可以按 Ctrl/Cmd+V 或从剪贴板菜单粘贴文件。
HTML 转 PDF 用 WeasyPrint 渲染。上传 `.html` / `.htm`,或一个至少含一份 `.html` 的 ZIP(归档根目录有 `index.html` 就用它,否则用第一个 `.html` 条目)。产出 PDF 按上传文件命名。
`zoom` 字段会被忽略。没有无头 Chrome,不执行 JavaScript。外部图片、样式表和字体会从公开网址获取(最多 500 个资源,每个不超过 64 MiB,每次请求 15 秒超时),指向私有网络或内部网络的地址会被拦截。ZIP 里的相对资源从解出的文件中解析。
WeasyPrint 支持的 CSS 会印出来。重度脚本应用、永远下不来的网络字体、现代 JS 布局常常塌掉。输入不是加密 PDF。本工具从 HTML 起步。
源已经是 URL 时,用网址转 PDF。源是 Markdown 时,用 Markdown 转 PDF(先 CommonMark,再同一套 WeasyPrint)。
上传是临时的。我们不会保存你的 HTML 文库。
功能
- WeasyPrint,不是 Chromium
- 接受 HTML 或 ZIP(渲染 index.html,没有则渲染第一个 .html)
- zoom 忽略;无 JavaScript
- 匿名 API:/api/v1/convert/html/pdf
适用场景
- 把静态发票 HTML 印成 PDF
- 渲染不需要 JS 的 CSS 报表
- 把一小包 HTML 加资源的 ZIP 变成 PDF
如何把 HTML 转成 PDF?
- 上传 HTML,或含 HTML 的 ZIP。
- zoom 可以不管。它不改变渲染。
- 点击处理,下载 PDF。
- 检查字体和分页。只靠 JS 的页面会空白或错乱。
限制与边界
- 没有 JavaScript,没有 Chrome,没有缩放
- 只支持 WeasyPrint 那套 CSS
- 远程资源只从公开网址加载;私有和内部地址会被拦截
- 渲染默认在 180 秒后停止
- 本网站的上传上限:每个文件 500 MB,超过约 95 MB 时分块上传。直接调用 API 时,单个请求体上限为 100 MB。
示例
- 带本地 CSS 的语义化 HTML 信函常常印得干净
- 没有构建产物的 create-react-app index.html 通常印出来是空白
本工具的隐私说明
文件经 HTTPS 上传,在服务器内存或短期临时目录中处理,结果就绪后即删除。我们不会为日后浏览、训练或广告画像保留副本。留存期限与 AdSense Cookie 说明见隐私政策。
常见问题
- 为什么我的 React 应用是空白 PDF?
- WeasyPrint 不跑 JavaScript。请送静态 HTML,而不是空的 SPA 壳。
- zoom 有效吗?
- 无效。转换函数不接收参数。
- ZIP 怎么处理?
- 归档根目录有 index.html 就渲染它;否则渲染第一个 .html 条目。
- 这是 Chrome 的打印成 PDF 吗?
- 不是。这是 WeasyPrint 的 HTML/CSS 引擎。
最后更新:
用代码调用
本站每个工具都是普通 REST 接口。匿名使用不需要账号或 API Key,给浏览器、开发者和智能体同样可用。
curl -X POST "https://pdf123.xyz/api/v1/convert/html/pdf" \
-F "[email protected]" \
-o output.pdf也提供 MCP 工具,供说 Model Context Protocol 的客户端调用(JSON-RPC 2.0,POST /mcp)。 完整 API 文档
在 AI 代理中使用
Skill装上这个 Skill,Claude Code、Codex、Cursor 等 AI 代理就能替你完成「HTML 转 PDF」: /skills/pdf123-html-to-pdf.md
文件只用于本次处理,完成后自动删除。