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

d8001f55708a021afcadc1e5e9211218.png

文 | 闲欢

来源:Python 技术「ID: pythonall」

0341bf1ebafd053335a4de6baed9b300.png

我们在上篇文章《强烈推荐这款神器,一行命令将网页转PDF!》中介绍了一款将网页转换成 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 = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url(r'https://zhuanlan.zhihu.com/p/421726412', 'studypython.pdf', configuration=config)

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

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

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

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

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

606df8f1b71d0f1794ad93efa8c8e176.png

HTML 文件转 PDF

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

path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_file(r'C:\Users\xxx\Downloads\ttest\test.html','html.pdf', configuration=config)

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

ecef80c22f18dc3ab52a86cf9350d909.png

字符串转 PDF

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

path_wkthmltopdf = r'C:\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 文件如下:

69f50210dc5d0368754aefb97deb8f3a.png

总结

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

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

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

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

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

5600f681a4913a80c35827d3a327a1d7.gif

代码获取方式

识别文末二维码,回复:闲欢

6439531bdb8112e22a00b5186568c38a.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值