使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法


Posted in Python onApril 21, 2022

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

到此这篇关于python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
python数据结构之二叉树的遍历实例
Apr 29 Python
跟老齐学Python之通过Python连接数据库
Oct 28 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
Python可迭代对象操作示例
May 07 Python
python取余运算符知识点详解
Jun 27 Python
python实现可变变量名方法详解
Jul 01 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
python import 上级目录的导入
Nov 03 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 Python
Python必备技巧之函数的使用详解
Apr 04 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
You might like
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
Prototype Object对象 学习
2009/07/12 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python如何去除字符串中不想要的字符
2020/07/05 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
django迁移文件migrations的实现
2020/03/31 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
微信营销策划方案
2014/02/24 职场文书
婚育证明格式
2015/06/17 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python