遇到的问题:尝试使用jupyter notebook直接下载成pdf,但是缺少相关包,没有成功。试过wxhtmltopdf,问题出在ipynb转html之后,html文件中包含图片,但是转成pdf之后图片就没有了,在网上没有搜到解决办法,之后看到pyhtml2pdf这个方法,于是就写了这个脚本。
优点
- 区别于直接在浏览器打印成pdf,该方法导出的文件可以复制文字,使用pdf编辑器二次编辑。
- 查找当前文件夹下的所有ipynb文件,全部转成pdf,不用一个一个点开。
需要使用两个依赖包,在cmd当中直接运行命令,如果没有访问权限可以使用管理员身份运行
pip install glob
pip install pyhtml2pdf
在ipynb文件的当前文件夹下,新建一个ipynb2pdf.py文件,复制以下代码:
import os
from glob import glob
from pyhtml2pdf import converter
path_list = glob(os.path.join(os.getcwd(),'*.ipynb'))
html_list = [i.split('ipynb')[0]+'html' for i in path_list]
pdf_list = [i.split('ipynb')[0]+'pdf' for i in path_list]
for n in range(len(path_list)):
command0 = 'jupyter nbconvert --to html ' + '\"' + path_list[n]+ '\"'
os.system(command0)
converter.convert(source = html_list[n],target=pdf_list[n])
command1 = 'del '+ '\"'+ html_list[n] + '\"'
os.system(command1)
print('已完成{}/{}'.format(n+1,len(path_list)))
在ipynb文件的当前文件夹下打开cmd窗口,运行ipynb2pdf.py
python ipynb2pdf.py
如果不想手动打开cmd敲代码,可使用bat文件
在ipynb文件的当前文件夹下,新建一个txt文档,将上面运行python文件的命令拷贝进去,然后将文档名改为`ipynb2pdf.bat.`,双击运行bat文件,可直接弹出cmd窗口开始运行python文件,运行结束后窗口会自动关闭。