这个自动化利器,Pythoner都在用!

这个自动化利器,Pythoner都在用!插图亿华云

在之前文章中,介绍了一款将网页转换成 PDF 的神器——wkhtmltopdf。在不同的操作系统中安装这个小巧的软件,就可以通过命令行直接将网页转换成 PDF 和图片。

有小伙伴说这种处理方式跟用插件没什么区别,而且很不 Python!

于是,我去找了下,发现 wkhtmltopdf 这款软件有一个对应的 Python 版本的包——pdfkit。

今天我们就来看看这个包可以帮助我们做什么。

pdfkit 是什么

pdfkit 是把 HTML CSS 格式的文件转换成 PDF 的一种工具,它是 wkhtmltopdf 这个工具包的 python 封装。所以,我们使用 pdfkit 之前要先安装 wkhtmltopdf 。具体安装方法很简单,大家可以参照上篇文章。

pdfkit 安装

安装完 wkhtmltopdf 之后,我们再来安装 pdfkit:

pip install pdfkit

跟安装其他 python 包一样,只需要使用 pip 安装就行。

pdfkit 应用

pdfkit 是基于 wkhtmltopdf 的封装,所以功能肯定也是基于 wkhtmltopdf 的。

URL 对应网页转 PDF

我们先来看一个例子:

path_wkthmltopdf = rC:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe

config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)

pdfkit.from_url(rhttps://zhuanlan.zhihu.com/p/421726412, studypython.pdf, configuration=config)

例子很简单,就三行代码。

第一行是 wkhtmltopdf 软件安装目录的 bin 目录地址;

第二行是将这个目录地址传入 pdfkit 的配置中;

第三行就是传入网页 URL 和生成文件的目标地址,传入配置信息,然后就可以生成 PDF 了。

运行之后,生成的 PDF 文件是这样的:

这个自动化利器,Pythoner都在用!插图1亿华云

HTML 文件转 PDF

这个方法也很简单,跟上一个类似,只需要将 pdfkit 调用的函数改一下即可:

path_wkthmltopdf = rC:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe

config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)

pdfkit.from_file(rC:\Users\xxx\Downloads\ttest\test.html,html.pdf, configuration=config)

可以看到,前两行一样,第三行用了 from_file 函数。这里我传入的是一个简单的分页页面,生成的 PDF 文件如下:

这个自动化利器,Pythoner都在用!插图2亿华云

字符串转 PDF

如果你手中有大量的文档需要转 PDF 文件,比如说下载了很多部小说。这时候可以使用 pdfkit 的字符串转 PDF 功能,批量操作,进行转化。

path_wkthmltopdf = rC:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe

config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)

pdfkit.from_string(talk is cheap, show me your code!,str.pdf, configuration=config)

运行这段代码,生成 PDF 文件如下:

这个自动化利器,Pythoner都在用!插图3亿华云

总结

本文介绍了一款轻量级的三方包——pdfkit,可以将 URL 对应的网页、HTML 文件和字符串转成 PDF 文件。

有人会问:有什么用?这些直接用软件操作,很容易就解决了。

当然,对于少量的单线程操作,确实没必要写代码,使用软件反而更快更好。但是,设想一下,如果你通过爬虫爬取了很多页面,想要将这些页面转成 PDF 文件保存,这时候直接写转换程序,然后和爬虫程序结合,是不是更好更高效?

像这些小工具,功能虽然简单,但是在合适的时候使用,会大大提高你的效率,平时积累一下,关键时刻才可以灵活运用!

THE END
Copyright © 2024 亿华云