news 2026/11/2 1:47:23

wkhtmltopdf 使用指南:把 HTML 网页转成 PDF 的 5 个实用技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
wkhtmltopdf 使用指南:把 HTML 网页转成 PDF 的 5 个实用技巧

wkhtmltopdf 使用指南:把 HTML 网页转成 PDF 的 5 个实用技巧

【免费下载链接】wkhtmltopdfConvert HTML to PDF using Webkit (QtWebKit)项目地址: https://gitcode.com/gh_mirrors/wk/wkhtmltopdf

想在服务器或终端里把网页、报表 HTML 文件转成格式规整的 PDF,又不想靠浏览器截图对不齐?wkhtmltopdf 是一款基于 Qt WebKit 引擎的命令行转换工具,一行命令即可把网页渲染成与浏览器几乎一致的 PDF 文档。

📌 核心能力速览:它能做什么

wkhtmltopdf(以及配套的 wkhtmltoimage)是一组命令行工具,基于 Qt WebKit 引擎渲染 HTML,全程 headless 运行,无需图形界面或显示器。

  • 把单个或一批 HTML 页面合并渲染成一份 PDF
  • 支持插入封面页、自动目录(TOC)和 PDF 书签大纲
  • 可加页眉页脚与页码,支持 A4 / Letter 等纸张及横纵方向
  • 能控制 JavaScript、图片、背景是否加载,并调节画质与体积

📥 安装与环境准备

最快跑起来的方式是用系统包管理器(以 Debian/Ubuntu 为例,一行命令即可,需安装 fontconfig 与 freetype 字体依赖):

sudo apt-get install wkhtmltopdf

装完运行wkhtmltopdf --version确认版本即可。要获得完整功能,建议改用官方预编译包:从打包仓库下载对应系统的.deb/.rpm/.pkg/.exe安装即用,各发行版说明见 下载文档。

注意:发行版源里的 wkhtmltopdf 通常使用未打补丁的 Qt,会缺少大纲、目录、页眉页脚变量等高级功能;想完整体验请使用官方预编译包。

🚀 基础用法:快速上手命令

三条最典型的命令,覆盖绝大多数场景:

# 把一个网页转成 PDF wkhtmltopdf https://example.com out.pdf # 把本地 HTML 文件转成 PDF wkhtmltopdf report.html report.pdf # 在开头插入自动目录,再生成正文 wkhtmltopdf toc report.html out.pdf

多个页面对象按顺序排在命令行上即可合并成一份文档,cover和toc也是对象,例如wkhtmltopdf cover.html toc a.html b.html out.pdf。

🎛️ 常用参数指南:排版、页眉与质量

排版与输出

参数说明
-s, --page-size A4纸张尺寸,默认 A4,可换 A3 / Letter / Legal
-O, --orientation Landscape切换横向排版
-T / -B / -L / -R 15mm分别设置上 / 下 / 左 / 右边距

页眉页脚

参数说明
--header-right "Page [page] of [topage]"右上角显示“第 x 页共 y 页”
--footer-center "文档标题"底部居中文本
--default-header一键默认页眉:左页名、右页码

内容与质量

参数说明
--zoom 1.3整体缩放,修复内容超出纸面的问题
--lowquality降低画质以减小 PDF 体积
--javascript-delay 1000等待 JS 渲染完成(毫秒)

🔬 进阶技巧:更快更稳

  • 只要内容、跳过图片:加--no-images不加载图片,转换更快,适合纯文本报告。
  • 批量转换省启动开销:用--read-args-from-stdin从标准输入逐行读取参数,一个进程处理多份文档,如wkhtmltopdf --read-args-from-stdin < cmds。
  • 自定义目录样式:先--dump-default-toc-xsl导出默认 XSL 样式表作为起点,再用--xsl-style-sheet my.xsl套上自己的目录样式。
  • 等动态内容加载完:对依赖 JS 的页面,用--window-status done等到脚本把window.status置为指定值后再渲染。

⚠️ 常见问题排查:中文乱码与图片缺失

中文显示为方块现象:PDF 里中文全是方框。原因:系统缺少中文字体。解决:安装 CJK 字体后重跑,如sudo apt-get install fonts-noto-cjk,并确认输入带--encoding UTF-8。

本地 HTML 引用的图片不显示现象:本地文件里的图片、子页面一片空白。原因:默认禁止本地文件访问。解决:加--enable-local-file-access,或只放行指定目录--allow ./assets。

页面是 JS 动态渲染,PDF 却是空的现象:内容没加载出来。原因:脚本还没跑完就出图了。解决:加大--javascript-delay 2000,或用--run-script "..."在页面加载后手动补执行。

📚 资源导航:官方文档与源码入口

  • 官方使用文档:docs/usage/wkhtmltopdf.txt
  • 项目状态与引擎说明:docs/status.md
  • 下载与发行版说明:docs/downloads.md
  • 安全(AppArmor 策略):docs/apparmor.md
  • C 库 API 文档与示例:docs/libwkhtmltox/、examples/
  • 从源码获取:git clone https://gitcode.com/gh_mirrors/wk/wkhtmltopdf(实际编译打包在独立的 packaging 仓库进行)

【免费下载链接】wkhtmltopdfConvert HTML to PDF using Webkit (QtWebKit)项目地址: https://gitcode.com/gh_mirrors/wk/wkhtmltopdf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 1:47:09

Pearcleaner使用指南:macOS残留文件清理与Mac磁盘瘦身完整教程

Pearcleaner使用指南&#xff1a;macOS残留文件清理与Mac磁盘瘦身完整教程 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner Pearcleaner是一款免费的macOS清理…

作者头像 李华
网站建设 2026/11/2 1:46:56

为静态资源添加路径前缀并支持发布到 CDN

快速开始欢迎各位进行阅读 Next.js 文档&#xff01;若是你是刚开始接触 Next.js 的话, 我们这边会向你做出建议, 让你先从这个地方的互动课程开始做起。通过这些带有小测验的互动课程, 你将会学到使用 Next.js 所需的全部知识。如果你有关于 next.js 相关的任何问题, 你可以随…

作者头像 李华
网站建设 2026/11/2 1:46:29

ok-ww 鸣潮自动化完整指南:3 步搞定后台自动战斗与一键日常

ok-ww 鸣潮自动化完整指南&#xff1a;3 步搞定后台自动战斗与一键日常 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves ok-ww 是一…

作者头像 李华
网站建设 2026/11/2 1:45:00

HPA 不扩容:metrics-server 与指标延迟的 3 个原因

我不会起名字322 后端 / 算法 / 数据库 &#x1f4d8; 技术栈 &#xff5c; &#x1f9e9; 力扣 Hot100 &#xff5c; &#x1f439; Go 项目 &#xff5c; &#x1f7e5; Redis &#xff5c; &#x1f42c; MySQL 文章目录HPA 不扩容&#xff1a;metrics-server 与指标延迟的…

作者头像 李华