三行命令跑通HTML转PDF:wkhtmltopdf 纯命令行实操手册
【免费下载链接】wkhtmltopdfConvert HTML to PDF using Webkit (QtWebKit)项目地址: https://gitcode.com/gh_mirrors/wk/wkhtmltopdf
网页要存档、报表要打印,复制粘贴总是差一口气?wkhtmltopdf 基于 Qt Webkit 引擎把 HTML 直接渲染成 PDF 和图片,全程无图形界面,服务器上一行命令就能出结果,是无界面PDF生成场景里很省事的命令行工具。
什么情况下你会用到它
- 📄 网页内容要长期归档
- 📊 HTML 报表转成可打印 PDF
- 📚 多个 HTML 合并成一本电子书
- 🖥️ 服务器无显示环境也要出 PDF
三步跑通:从拿到项目到第一个产出
克隆源码仓库,方便看代码和 C API 封装:
git clone https://gitcode.com/gh_mirrors/wk/wkhtmltopdf源码编译依赖 Qt Webkit(README 指向独立的打包仓库),只想用的话用包管理器装预编译版最快:
sudo apt-get install wkhtmltopdf跑第一次转换,把 HTML 生成 PDF:
wkhtmltopdf mypage.html mydocument.pdf第一个参数是输入 HTML,第二个是输出 PDF,跑完就能看到成品。
高频玩法拆解
合并多文件:一次转换出一整本 PDF
wkhtmltopdf ch1.html ch2.html ch3.html ebook.pdf多个输入文件按顺序写入最后一个输出文件,中间自动换页,不用手动拼接。
控制纸张与边距:打印排版一步到位
wkhtmltopdf -s A4 -T 20mm report.html report.pdf-s指定纸张(A4、Letter、A3 等),-T上边距,-B/-L/-R分别是下、左、右,单位写 10mm 这种形式。
生成自动目录:章节一多就有导航
wkhtmltopdf toc book.html book.pdftoc是内置输入对象,用--xsl-style-sheet my.xsl可替换目录样式,--dump-default-toc-xsl能导出默认样式表供你改。
控制加载时机:等 JavaScript 渲染完再出图
wkhtmltopdf --javascript-delay 1500 page.html page.pdf--javascript-delay让 JS 多跑 1500 毫秒再渲染;页面没有动态内容时加--disable-javascript更稳。
用之前先看清:优势与局限
- 部署:纯命令行、不依赖显示服务器,容器里直接跑;
wkhtmltopdf -H输出全部参数说明,查用法不用翻网页。 - 输出:WebKit 完整渲染引擎,CSS 和 JS 都支持,
--dump-outline还能把章节大纲直接导出成 XML,方便后续自动化。 - 局限:引擎是 Webkit 而非 Chromium,较新的 CSS 特性兼容性一般;复杂页面要反复调
--javascript-delay、--run-script,出图时机不好卡。
踩过的坑都在这儿
本地 HTML 里的图片样式不显示?→ 默认禁止本地文件互相引用
wkhtmltopdf --enable-local-file-access page.html page.pdf加上这个参数才放行,注意别在对外服务上常开。
页面内容只渲染了一半?→ 异步数据还没加载完就截了
wkhtmltopdf --javascript-delay 2000 page.html page.pdf或者用--run-script跑一段自定义 JS,等你的条件满足再结束。
中文显示成方块?→ 系统没装对应字体
给系统装一个中文字体包(如 fonts-noto-cjk);如果 HTML 文件本身不是 UTF-8,转换时用--encoding UTF-8显式指定。
wkhtmltopdf 把「HTML 转 PDF」压缩成一条可以进脚本的命令,目录、纸张、边距都有对应参数。现在就可以 clone 下来跑第一条命令,两分钟拿到第一份 PDF。
延伸阅读:完整参数帮助、C 语言 API 文档
【免费下载链接】wkhtmltopdfConvert HTML to PDF using Webkit (QtWebKit)项目地址: https://gitcode.com/gh_mirrors/wk/wkhtmltopdf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考