卧槽,一行代码就可将网页直接转pdf保存下来(pdfkit)

大家好,我是翔宇!

今天给大家分享一个神器,这个神器可以将网页直接进行保存成pdf下来,可以是网站上的在线网页,可以是本地的html文件,还可以是你想要放进去的文本内容。

这个神器就是pdfkit,而它依赖于wkhtmltopdf,所以在使用pdfkit时必须同时安装wkhtmltopdf,而且为了让在pdfkit在执行的时候能够找到wkhtmltopdf并能顺利调用它,因此还要将wkhtmltopdf的安装路径加入环境变量,便可顺利执行,不然将报错OSError: No wkhtmltopdf executable found。下面将带大家从pdfkit和wkhtmltopd的安装到演示将三种形式的网页内容转换成pdf并保存下来的实例。

1.安装pdfkit和wkhtmltopdf

安装pdfkit比较简单,直接采用我们常用pip进行安装就可以,命令:

pip install pdfkit

jupyter notebook中请用:

!pip install pdfkit

而安装wkhtmltopdf需要先下载离线安装包都本地,进行安装后还要将其安装路径添加到环境变量中,以便pdfkit能够顺利调用。

下载地址:https://wkhtmltopdf.org/downloads.html

然后会根据自己的系统进行下载对应的版本的wkhtmltopdf,直接进行安装,安装过程中留意将安装的路径保存下来,下面要将其添加到环境变量中。

在这里插入图片描述

我的电脑是windows系统,所以这里就只演示windows下的安装,安装好wkhtmltopdf之后便是添加环境变量,我们找到安装的路径
在这里插入图片描述

将上面的路径复制下来,我的是:C:\Program Files\wkhtmltopdf\bin

1.1添加环境变量

步骤:找到“此电脑” --> 鼠标右键,点击“属性” --> ”高级系统设置“ --> “环境变量” --> “” --> 点击“Path”,”编辑“ --> 编辑环境变量(看下图) --> 确定保存

找到这个界面

在这里插入图片描述

编辑环境变量

在这里插入图片描述

一路点击确定就行了,如果还是不会请自行百度或者后台添加作者。

2.将三种不同网页内容转换成pdf的演示

上述工作都做好之后,就可以直接进行html转pdf了,在下面演示中,如果你遇到了报错OSError: No wkhtmltopdf executable found,那么你一般式和环境变量没有添加好导致的错误,当然如果是在添加不好环境变量,你也可以加上下面的代码进行运行。

path_wk = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' #你的wkhtmltopdf安装位置
config = pdfkit.configuration(wkhtmltopdf = path_wk)
url = 'https://www.baidu.com/'   # 你要转的网页链接
pdfkit.from_url(url, r'D:\data\baidu.pdf', configuration=config)  # 你要保存到的路径及pdf名字

(1) 直接将在线网页进行转换pdf:

例如我将下面这个网页的内容转换pdf保存下来。

在这里插入图片描述

代码非常简单:

import pdfkit
url = 'https://www.runoob.com/pandas/pandas-tutorial.html'
pdfkit.from_url(url, r'test1.pdf')

然后就会发现你当前运行环境中多了一个叫test1.pdf的pdf文件
在这里插入图片描述

打开后是这个样子的,和网页上的主要内容没啥区别。

在这里插入图片描述

(2) 将本地html文件转换pdf:

import pdfkit

wkhtmltopdf_options = {
    'enable-local-file-access': None
}

pdfkit.from_file('NumPy 安装 _ 菜鸟教程.html', r'test2.pdf')

但是报错了,还没解决,希望知道的小伙伴一起交流:

OSError: wkhtmltopdf reported an error:
Exit with code 1 due to network error: ProtocolUnknownError

(3) 将自定义内容转换到pdf:

import pdfkit

pdfkit.from_string('<html><style> @font-face{font-family: "宋体";src:url("C:\\Windows\\Fonts\\simsun.ttf")</style><h1>wkhtmltopdf 你好</h1></html>', r'test2.pdf')

out:True

打开test.pdf后我发现中文有乱码问题(目前还未解决,希望知道的小伙伴可以指导一下)

在这里插入图片描述

3.结束语

虽然感觉这个库用起来有些坑,老师报各种各样的问题,但是不可否认的是它真的很强大,对于一些pdf阅读需求直接使用pdfkit就可以很方便的把需要的网页直接拿到本地随时像电子书一样打开看。关于本文涉及的相关安装包或者代码,或者需要交流的地方,欢迎小伙伴随时到公众号***“Python和数据分析”***联系翔宇!下篇内容,我将分享pdfkit与selenuim联合进行实际需求实现的例子,欢迎大家进行阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python和数据分析

钟意作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值