大家好,我是爱撸码的开源大叔!
大家在日常的工作当中,应该经常会遇到将网页保存为PDF文档的需求。
一般而言,直接使用浏览器自带的“打印”功能,选择“另存为PDF”,即可以输出 PDF 了。但是如果需要打印的数量多了,这个操作就很费劲了。
今天大叔逛 Github 的时候无意发现一个好用的开源项目-wkhtmltopdf
,只需要一行命令就可以实现网页转 PDF 文件保存,结合各种语言,可以非常容易实现批量化操作。
wkhtmltopdf
是一个用 C++ 编写的开源、简单而有效的命令行 shell 程序,它可以将任何 HTML (网页)转换为 PDF 文档或图像(jpg、png 等)。基于QT Webkit 渲染引擎,遵循LGPL开源协议。
官网地址是:
https://wkhtmltopdf.org/
选择你正在使用的操作系统对应的安装文件即可。
大叔这边以 windows 版本为例,下载完成直接安装即可。
软件安装完成之后,就可以使用了。这里以 搜狗首页 为例,展示如何将 搜狗首页保存为 PDF 文件。
我们打开 cmd,找到安装路径下的 bin 目录,然后输入以下命令:
wkhtmltopdf.exe https://www.sogou.com/ C:\sougou.pdf
运行之后就可以在指定的目录C盘根目录下找到 sougou.pdf 文件了。
本地的 html 文件也是可以的,你只需要把 https://www.sogou.com 替换成成本地文件路径就行。
更多的使用参数可以使用wkhtmltopdf.exe -h
进行查看。
支持 PHP、Python、Java 等多种语言对项目程序的调用,进而可以实现各类不同的需求。
以 Python 为例,需要再安装pdfkit库(Python对wkhtmltopdf调用的封装库),支持URL,本地文件,文本内容到PDF的转换,实际转换还是最终调用wkhtmltopdf命令。
import pdfkit
path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url('https://www.sogou.com/', 'sougou.pdf', configuration=config)
最后,关于这个项目的更多详细使用功能,大家可以自己查阅下开源项目地址和官网:
Github地址:https://github.com/wkhtmltopdf/wkhtmltopdf
官网:https://wkhtmltopdf.org/