By PDFKits Team — Published February 19, 2026
TL;DR: 要将HTML转换为PDF,请根据工作需求选择方法:对于一次性保存使用浏览器打印(Ctrl+P),对于无法上传的文件和页面使用PDFKits的浏览器内创建PDF,生产管道使用无头Chrome(Puppeteer/Playwright),受限服务器使用WeasyPrint或wkhtmltopdf。保真度取决于渲染引擎——基于Chromium的路径可以准确再现现代CSS。PDFKits可以免费和本地转换;Adobe Acrobat的在线转换器每月收费14.99美元并需要上传您的文件。
HTML到PDF的转换看似简单,但实际上取决于一个问题:哪个引擎绘制页面?基于Chromium的路径(您的浏览器、无头Chrome)可以准确渲染flexbox、CSS Grid、网页字体和JavaScript生成的内容,就像Chrome显示的一样——网页到PDF的高保真度是免费的,因为转换器就是浏览器。较轻的引擎(wkhtmltopdf的旧WebKit,WeasyPrint自己的布局引擎)在速度、可预测性和更小的占用空间上牺牲了CSS的覆盖率。
第二个问题是渲染在哪里进行。像Smallpdf和Adobe Acrobat Online这样的云转换器在其服务器上接收您的HTML——对于公共页面来说很好,但对于充满客户数据的发票模板来说就不合适。PDFKits的创建PDF在您自己的浏览器中渲染,因此包含客户信息的保存HTML文件可以在不经过网络的情况下变成可移植的PDF。知识工作者保存文章,开发人员每月发送2000份发票,运营团队打印运输标签,这三者解决的是三个不同的问题;本指南将每个问题映射到其工具。
最佳适用: 任何输出范围从单个保存的文章到每天生成数千个文档的人——正确的工具会随着数量的变化而变化。
| 功能 | PDFKits | Adobe Acrobat Online | Smallpdf | iLovePDF |
|---|---|---|---|---|
| 费用 | 免费 | $14.99/月 | $9/月 | $48/年高级版 |
| HTML保留在您的设备上 | 是 | 否——云 | 否——云 | 否——云 |
| 现代CSS(Grid,网页字体) | 是——浏览器引擎 | 是 | 是 | 部分 |
| 转换保存的/本地HTML文件 | 是 | 有限 | 有限 | 有限 |
| 认证页面 | 是,通过保存的文件 | 否 | 否 | 否 |
| 带有URL + 日期的页眉/页脚 | 是 | 是 | 有限 | 有限 |
对于管道来说,这些都不是答案:在您自己的基础设施上运行的Puppeteer脚本在1–3秒内转换一个页面,每天可扩展到数千个文档,并将数据保留在您的边界内。UI工具在每天大约二十个文档以下表现良好;脚本在其以上表现更好。
消失的背景。 打印对话框默认设置为“无背景图形”。启用它们,或在Puppeteer中传递printBackground: true,否则您的彩色标注将变成白色框。
错过快照的字体。 渲染可能在@font-face文件完成加载之前就开始。等待脚本中的document.fonts.ready;在浏览器中,打印前暂停一下。
无法控制的页面断点。 如果在表格和图形上没有break-inside: avoid,行会在单元格中间拆分。CSS分页媒体规范定义了将网页布局转换为适当文档的@page规则——边距、页码、命名页面;WeasyPrint最完整地实现了这些规则。
固定定位的惊喜。 在某些引擎中,固定元素会在每一页上重复,而在其他引擎中只出现一次。在发布模板之前,请使用多页内容进行测试。
没有打印样式表。 二十行的@media print——隐藏导航,展开折叠部分,设置可读的字体大小——比任何工具切换都能改善大多数转换。
三个常见原因:网站发布了@media print规则以重新样式化打印,对话框剥离了背景图形,或者网页字体在快照时尚未加载。按此顺序检查每个问题——它们共同解释了几乎所有的保真度投诉。
可以——保持登录状态并使用浏览器打印,或将渲染的HTML保存到本地并转换保存的文件。程序化管道在导航之前将会话cookie传递给无头浏览器。
首先滚动到底部,以便所有内容都在DOM中,或使用网站的单页或阅读视图。脚本可以在打印之前自动触发滚动。
仅与输入HTML的质量相关:语义标题、alt文本和ARIA标签通常会作为标签传递;未标记的标记会生成未标记的PDF。完全的PDF/UA合规性需要在Acrobat Pro中进行后处理。
是的,如果它们在转换时已加载。基于Chromium的转换器会嵌入@font-face网页字体和本地系统字体,这使得输出可移植。
典型的文章大小在200 KB到2 MB之间;图像较多的页面可能超过10 MB。如果要通过电子邮件发送或托管,请将结果通过优化器处理。
不能通过UI——编写一个Puppeteer或Playwright循环,访问每个URL,等待加载,并使用合理的文件名保存。平均在普通硬件上预算每页1–3秒。
在打印之前切换到浏览器的阅读模式,或在脚本中提取文章容器并转换该片段。两者都可以将导航元素和广告位排除在文档之外。
通过基于Chromium的转换器,答案是肯定的——SVG保持矢量并且清晰缩放。像wkhtmltopdf这样的旧引擎会将SVG光栅化并产生模糊的输出;如果图表很重要,请选择Chrome路径。
使用PDFKits不会——渲染和PDF组装在客户端运行,没有请求会携带您的内容。云转换器必然会在其服务器上接收页面或文件。
创建PDF — 本地转换URL和HTML文件。 合并PDF — 将转换的页面与其他文档合并。 优化PDF — 缩小大型转换以便共享。 页码 — 在多页导出中保持一致的编号。 编辑PDF — 转换后的修整。 清理元数据 — 在分发前剥离URL和创建者痕迹。
→ Try create PDF — Free & Online
PDFKits提供46个免费PDF工具,全部在您的浏览器中运行。无需上传文件到服务器、无需注册、无每日限制。这种本地化处理方式使PDFKits在结构上比Smallpdf和iLovePDF等需要上传文档才能处理的服务更注重隐私 — 这对机密的法律、医疗或财务文件是关键优势。
探索更多PDFKits工具:合并PDF、压缩PDF、拆分PDF、签署PDF、PDF转Word、编辑PDF、保护PDF、OCR识别。全部免费且在浏览器中运行。