百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

pdfkit | 利用python实现html文件转pdf

liuian 2024-12-29 04:27 75 浏览

在用jupyter notebook写代码文档的时候,有时需要导出pdf版本,但jupyter会报错。我在想,除了网上的debug方法,还没有其他方案可以生成pdf。

度娘搜了下,很多博客推荐Python的第三方库pdfkit,可以将网页、html文件以及字符串生成pdf文件。

其实也有很多软件提供pdf生成服务,但这样太不python了,那下面就来试试pdfkit怎么用吧!

三步实现自动生成pdf文档:

1.使用pip安装pdfkit库

python版本 3.x,在命令行输入:

pip install pdfkit

安装过程基本不会有啥问题,出现上面的Successfully installed pdfkit-0.6.1提示,说明安装成功了。

2.安装wkhtmltopdf.exe文件

注:pdfkit是基于wkhtmltopdf的python封装,所以需要安装wkhtmltopdf.exe。wkhtmltopdf是轻量级软件,非常很容易安装。

下载地址:https://wkhtmltopdf.org/downloads.html

下载wkhtmltopdf

下载完成后,一路next,将wkhtmltopdf安装好。

务必要记住安装地址,找到wkhtmltopdf.exe文件所在的绝对路径,后面要用到。

我这里是默认路径""C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe""

安装wkhtmltopdf

3.使用pdfkit库生成pdf文件

前面说过pdfkit可以将网页、html文件、字符串生成pdf文件。

  • 网页url生成pdf【pdfkit.from_url()函数】
# 导入库
import pdfkit

'''将网页url生成pdf文件'''
def url_to_pdf(url, 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_url(url, to_file, configuration=config)
    print('完成')

# 这里传入我知乎专栏文章url,转换为pdf
url_to_pdf(r'https://zhuanlan.zhihu.com/p/69869004', 'out_1.pdf')
  • html文件生成pdf【pdfkit.from_file()函数】
# 导入库
import pdfkit

'''将html文件生成pdf文件'''
def html_to_pdf(html, 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_file(html, to_file, configuration=config)
    print('完成')

html_to_pdf('sample.html','out_2.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')

4.结论

本文讲了如何在Python中使用pdfkit库生成pdf文件,非常方便快捷,适合批量自动化操作。

我们看看生成的pdf效果如何:

pdf效果展示

整体页面视觉不错呦,赶快用起来吧!

相关推荐

安卓软件apk安装包下载(安卓apk安装器下载)
安卓软件apk安装包下载(安卓apk安装器下载)

1.设定-安全-未知来源-打钩。2.可能是下载的软件安装包不完整,请重新下载安装。3.可能是安装软件的版本低于现有版本、或者软件兼容性问题所导致,请更换其他版本或者其他软件再次下载安装。4.安卓手机支持的软件格式为APK,这种情况可以更换其...

2026-01-07 12:05 liuian

一千左右的笔记本电脑哪个好

¥1000左右,笔记本性价比最高的也就性价比之王的肯定,是联想的这种脾气吧,因为联想的笔记本的是国产的最好的这种脾气吧,他生产的笔记本那有高档中档和低端的这几种所以¥1000左右的可以买一杯联想比较性...

电脑截屏的快捷按键(“电脑截屏的快捷键”)

电脑截图快捷键是Ctrl+PrScrn。电脑上截图的方法一般有这4种方式:1、Ctrl+PrScrn使用这个组合键截屏,获得的是整个屏幕的图片;2、Alt+PrScrn这个组合键截屏,获得的结果是当...

qq空间为什么打不开了怎么办
qq空间为什么打不开了怎么办

1、首先我们需要在自己的手机上下载并安装最新版本的QQ空间,安装完成后打开QQ空间,登录自己的账号。2、首先我们尝试打开QQ空间,打不开在手机上找到设置,点击进入设置界面,在这里我们可以对手机进行部分设置。3、进入设置界面后,我们需要在其中...

2026-01-07 10:55 liuian

联想怎么恢复系统(联想电脑系统恢复怎么操作)

  如果电脑重新分区,安装了操作系统就无法恢复到预装系统。  安装了系统,没有做系统备份也是无法恢复的,只能够重新安装。  联想电脑的一键还原系统在需要使用的时候直接按下一键还原按键即可,系统会自动进...

台式机无线网卡连不上wifi怎么办

1、无线网卡驱动没更新或者不匹配;解决办法:开始→控制面板→系统→硬件→设备管理器→网络适配器→右击无线网卡→更新驱动程序软件→按部就班完成更新;2、无线网络服务未开通;解决办法:开始→控制面板→管理...

126官方邮箱登录入囗(126邮箱登录入口手机版官网)

126邮箱是网易的一个免费邮箱登录入口在浏览器输入:mail.126.com浏览器进入126邮箱网站之后,即可自行登录126邮箱账号。如何在手机上登录126邮箱1、打开手机,找到并打开网易邮箱软件。2...

耐用笔记本电脑排行(最耐用笔记本排名)

最耐用的笔记本电脑是联想牌子。联想绝对是最耐用的,质量最好的轻薄本,也是最好用的轻薄本之一。联想笔记本电脑的质量和做工在世界上能称第一。十大公认最耐用笔记本如下1、华硕灵耀x14第12代英特尔酷睿i...

固态硬盘量产工具下载(固态硬盘量产工具下载合集)

固态硬盘量产工具好用的依次是:SLC颗粒最好,MLC颗粒其次,TLC颗粒再次,QLC颗粒现在最次;但是颗粒也分原厂颗粒,黑片,白片;原厂最好,黑片就是淘汰下来的渣渣。slc最好寿命长速度快也最贵...

文件夹怎么显示隐藏的文件夹

查找隐藏文件夹的方式如下:1、点击桌面的“计算机”,双击打开计算机2、在计算机页面中,点开自己存储文件夹的盘,这里以c盘为例。其他盘也可以依据这样的方式进行查找。3、找到左上角的“组织”,在其下拉的菜...

wifi一键连(wifi一键连接下载)
  • wifi一键连(wifi一键连接下载)
  • wifi一键连(wifi一键连接下载)
  • wifi一键连(wifi一键连接下载)
  • wifi一键连(wifi一键连接下载)
电脑硬盘怎么格式化干净(电脑硬盘格式化详细过程)
电脑硬盘怎么格式化干净(电脑硬盘格式化详细过程)

用普通格式化硬盘最干净,采用普通格式化,可以将硬盘中的内容删除掉,同时做上标志,而快速格式化只是对硬盘做了格式化标志,而没有删除内容硬盘格式化步骤:1,打开“我的电脑”,可以看到已经分区好但需要重新格式化的硬盘。2,用右键点击需要格式化的硬...

2026-01-07 06:55 liuian

下载的歌曲怎么转换成mp3格式

一般酷狗音乐下载的都是MP3格式的啊,如果不是的话,也可以通过以下方法来转换。;1、打开浏览器搜索关键词,找到该软件后下载并安装,然后双击打开,再点击“添加文件”。;2、添加后,在右下角选择转换格式为...

所有cpu性能天梯图(所有cpu性能天梯图都一样吗)

1、英特尔(Intel)i59400F酷睿六核盒装CPU处理器;2、英特尔(Intel)i7-9700K酷睿八核盒装CPU处理器;3、英特尔(Intel)i78700酷睿六核盒装...

电脑无故占用大量内存(电脑无故占用大量内存怎么办)

一种可能是后台运行太多,可能是你最近进行了很多任务,导致电脑占用内存变大。也可能是内在任务,类似于你引入了潜在任务,即电脑程序负荷太重,且程序存在不稳定因素,任务自动执行以缓解电脑压力。这个一般没事的...