使用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采集腾讯新闻实例
Jul 10 Python
python实现将内容分行输出
Nov 05 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
python模拟事件触发机制详解
Jan 19 Python
Python求均值,方差,标准差的实例
Jun 29 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Django实现celery定时任务过程解析
Apr 21 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
python实现图片批量压缩
Apr 24 Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
You might like
php4的彩蛋
2006/10/09 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
写自荐信三大法宝
2014/01/24 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
Selenium浏览器自动化如何上传文件
2022/04/06 Python
Linux中sftp常用命令整理
2022/06/28 Servers