python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的操作方法
作者:西京刀客 发布时间:2022-11-14 18:37:28
python包-pdfkit 将HTML转换为PDF
什么是pdfkit
pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具。它就是html转成pdf工具包wkhtmltopdf的Python封装。所以,必须手动安装wkhtmltopdf。
安装
首先需要安装 pdfkit 库,使用 pip install pdfkit 命令就好了。
还需要安装 wkhtmltopdf 工具,本质就是利用这个工具来进行转换,pdfkit 库就是作为接口来调用该工具。
python版本 3.x,在命令行输入:
$sudo apt-get install wkhtmltopdf
工具下载地址:
wkhtmltopdf 官网:https://wkhtmltopdf.org/downloads.html
Ubuntu系统可以直接使用以下命令安装:
$sudo yum intsall wkhtmltopdf
CentOS系统可以直接使用以下命令安装:
$sudo yum intsall wkhtmltopdf
使用
将url生成pdf文件
不指定wkhtmltopdf,会从系统的默认执行路径下找 wkhtmltopdf
import pdfkit
'''将url生成pdf文件'''
def url_to_pdf(url, to_file):
pdfkit.from_url(url, to_file,verbose=True)
url_to_pdf('http://www.baidu.com','out_3.pdf')
指定 wkhtmltopdf 的位置:
import pdfkit
'''将url生成pdf文件'''
def url_to_pdf(url, to_file):
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_url(url, to_file,configuration=config,verbose=True)
url_to_pdf('http://www.baidu.com','out_3.pdf')
字符串生成pdf【pdfkit.from_string()函数】
# 导入库
import pdfkit
'''将字符串生成pdf文件'''
def str_to_pdf(string, to_file):
# 将wkhtmltopdf.exe程序绝对路径传入config对象
path_wkthmltopdf = r'C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
# 生成pdf文件,to_file为文件路径
pdfkit.from_string(string, to_file, configuration=config)
print('完成')
str_to_pdf('This is test!','out_3.pdf')
报错
报错OSError: No wkhtmltopdf executable found
在使用pdfkit.from_string或者pdfkit.from_file或者pdfkit.from_url将字符串、文件或者网页内容转化为pdf时,报错:
OSError: No wkhtmltopdf executable found
原因很明显,就是没找到可执行的wkhtmltopdf文件,也就是未找到wkhtmltopdf.exe文件。
python的pdfkit扩展包使用时需要基于wkhtmltopdf.exe这个可执行文件才可运行,因此需要先安装wkhtmltopdf。
对于windows系统,可以在(https://wkhtmltopdf.org/downloads.html)下载安装,然后将该程序的执行文件路径添加到环境变量中(这样即可直接用pdfkit扩展包,否则需要在使用pdfkit时,指明该程序的路径)
Ubuntu系统可以直接使用以下命令安装:
$sudo apt-get install wkhtmltopdf
CentOS系统可以直接使用以下命令安装:
$sudo yum intsall wkhtmltopdf
来源:https://blog.csdn.net/inthat/article/details/124296992
猜你喜欢
- 本文实例讲述了PHP 对象继承原理与简单用法。分享给大家供大家参考,具体如下:对象继承继承已为大家所熟知的一个程序设计特性,PHP 的对象模
- session的本质使用cookie来实现。原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie,
- 一、邮件发送示例邮件发送示例flask_email及smtplib原生邮件发送示例,适用于基于Flask框架开发,但是内部设置的定时任务发送
- 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句
- 原图矫正后我新建了个jz的文件夹放相机矫正所需要拍摄的图片,如下:共12张 # coding:utf-8import cv2imp
- asp之日期和时间函数示例可以使用日期和时间函数来得到各种格式的日期和时间函数语法说明示例NowNow()取得系统当前的日期和
- 你还没用 jQuery 写过导航菜单? 相信看到这些出色的jQuery导航菜单后,一定会为此而后悔没早点把 jQuery 应用到自己的Web
- 博主本地环境:VMwareCentos7.6django2.22python3.6出现这个的原因分析:第一:您在VMware中的虚拟主机地址
- 先给大家快捷总结:文件格式Python库文本文件内置open函数CSV文件csvJSON文件jsonXML文件xml.etree.Eleme
- 本文介绍基于Python中seaborn模块,实现联合分布图绘制的方法。联合分布(Joint Distribution)图是一种查看两个或两
- python根据字典的键来删除元素的方法:可以利用pop()方法来进行删除。pop()方法可以删除字典定键key及对应的值,并返回被删除的值
- 引言这不是一个什么多深的技术问题,多么牛叉的编程能力。这跟一个人的开发能力也没有非常必然的直接关系,但是知道这些会对你的SQL编写,排忧及优
- 只是做笔记,没什么!! 代码如下:--创建测试表 CREATE TABLE [dbo].[Student]( [ID] [int
- 输入框组默认是div.input-group已知可在input表单元素前后加入两类元素【分别是文本和按钮】如下所示:div.input-gr
- 保存的文件有4个: checkpointmodel-parameters.bin-46000.data-00000-of-00001mode
- 我们知道,在js中,当object作为参数传递到函数中进行处理后,实际上是修改了传入的对象本身(或者说是对象的引用),但很多时候我们并不希望
- 这篇文章介绍了 5 个实用的 CSS 属性。你应该很熟悉,但很可能很少会使用到。我并不是在谈论展望全新的 CSS3 属性,我指的是旧的 CS
- 在实际使用python时,我们会将一些公共的东西写到一些基础模块中,供其他模块去调用,这时会去import自定义的一些基础模块,然后来导入。
- 手写Vue服务端渲染概念:放在浏览器进行就是浏览器渲染,放在服务器进行就是服务器渲染。客户端渲染不利于 SEO 搜索引擎优化服务端渲染是可以
- getpass模块的使用:在python中实现密码密文需要导入getpass模块,在python中要使用内置模块的话,需要使用import进