IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 卧槽,一行代码就可将网页直接转pdf保存下来(pdfkit) -> 正文阅读

[Python知识库]卧槽,一行代码就可将网页直接转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联合进行实际需求实现的例子,欢迎大家进行阅读。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-21 21:25:35  更:2022-06-21 21:25:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:45:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码