使用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编程中的异常处理教程
Aug 21 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
python的dataframe和matrix的互换方法
Apr 11 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
python re模块的高级用法详解
Jun 06 Python
python opencv 图像拼接的实现方法
Jun 27 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
Python实现自动整理文件的脚本
Dec 17 Python
python 制作一个gui界面的翻译工具
May 14 Python
浅谈python中的多态
Jun 15 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
You might like
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
php 静态变量的初始化
2009/11/15 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
利用aardio给python编写图形界面
2017/08/21 Python
python hook监听事件详解
2018/10/25 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
c语言常见笔试题总结
2016/09/05 面试题
心得体会范文
2014/01/04 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
生物科学专业自荐书
2014/06/20 职场文书
初中班干部工作总结
2015/08/10 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers