一般浏览器都可以将当前页面输出为 pdf,但当有很多个 html 文件时一个一个转换就很麻烦了,可以使用 wkhtmltopdf 命令行工具来实现自动化批量转换。

wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely "headless" and do not require a display or display service.

wkhtmltopdf 官网:https://wkhtmltopdf.org/
GitHub 主页:https://github.com/wkhtmltopdf/wkhtmltopdf

下载

在 release 页面下载对应系统最新版:https://github.com/wkhtmltopdf/wkhtmltopdf/releases

我要安装到 Ubuntu 18.04,所以下载:wkhtmltox_0.12.5-1.bionic_amd64.deb

查看 Ubuntu 系统代号可以使用命令:

lsb_release -c

安装

下载的 deb 包,用以下命令进行安装:

dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

使用

支持 url 或 本地 html 转换:

wkhtmltopdf http://bing.com bing.pdf
wkhtmltopdf path/to/test.html index.pdf

配合 find 命令可以实现批量转换:

find path/to/html -name '*.html' -exec wkhtmltopdf {} {}.pdf \;
mkdir pdf/
find path/to/html -name '*.pdf' -exec mv {} pdf/ \;

find 命令详细用法参考:https://blog.niekun.net/archives/543.html

可以使用 wget 命令下载某个网站到本地,然后使用上面命令批量转换:

wget -m -p -k URL

-m, –mirror 等价于 -r -N -l inf -nr
-p:下载所有html文件适合显示的元素
-k, –convert-links 转换非相对链接为相对链接,将文档链接都转换成本地的

标签: none

添加新评论