跳到主要内容
PPDF123

把 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?

  1. 上传 HTML,或含 HTML 的 ZIP。
  2. zoom 可以不管。它不改变渲染。
  3. 点击处理,下载 PDF。
  4. 检查字体和分页。只靠 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

全部 Agent Skill

文件只用于本次处理,完成后自动删除。