将jupyter中的ipynb文件转换成PDF文件

python 专栏收录该内容
72 篇文章 2 订阅

前言

如题,有些时候,在一些终端设备上,比如说平板或者手机上查看.ipynb文件会十分不便,我们需要启动jupyter服务端,在浏览器客户端才能查看翻阅.ipynb文件,所以我在私下里找了找是否可以将.ipynb文件转换成PDF文件,再拷贝到其它设备上阅览,这不,找到曲线救国的方法。大致操作为:

① 先将.ipynb文件转换成HTML文件;
② 再将HTML文件转换成PDF文件。

那么这里需要借助到两个工具,一个是wkhtmltopdf,另一个是 pdfkit

实现

首先,去这个官网下载wkhtmltopdf并双击安装(这里以windows为例):
http://wkhtmltopdf.org/
111
安装过程中一定要记住自己安装的路径,后面会有用到的地方,我是按照它的默认路径安装的,所以安装路径如下:
222
接下来安装第二个工具 pdfkit ,在自己的Python解释器中使用如下命令安装:

pip install pdfkit

安装完成后,我们编写如下脚本 file_to_pdf.py

import sys
import subprocess
import pdfkit

# 下面两种路径表示方法都行,一种是原生字符串,避免发生转义,一种是直接使用两个反斜杠表示转义下的一个反斜杠
# config = pdfkit.configuration(wkhtmltopdf=r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe")
config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")

inputfile = sys.argv[1].replace(" ", "\ ")
# print(inputfile)
temp_html = inputfile[0:inputfile.rfind('.')]+'.html'
command = 'ipython nbconvert --to html ' + inputfile
subprocess.call(command, shell=True)
print('============Convert To PDF Success!===========')
output_file =inputfile[0:inputfile.rfind('.')]+'.pdf'
pdfkit.from_file(temp_html,output_file, configuration=config)
subprocess.call('rm '+temp_html, shell=True)

脚本编写完成之后,我们就可以使用命令行去操作了!!!

比如说我们现在要将处在脚本文件 file_to_pdf.py 下一级目录 notebook 下的 test.ipynb 文件转换成PDF文件,执行如下命令:

 python file_to_pdf.py ./notebook/test.ipynb

PS:生成的PDF文件与你的.ipynb文件 在同一目录下。

如上,功能实现完成!

参考文献:
https://www.jianshu.com/p/49a0c9f74d59
https://blog.csdn.net/qq_38846810/article/details/83450293

  • 1
    点赞
  • 0
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论
请先登录 后发表评论~
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

june_francis

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值