如题,有些时候,在一些终端设备上,比如说平板或者手机上查看.ipynb文件
会十分不便,我们需要启动jupyter服务端,在浏览器客户端才能查看翻阅.ipynb文件
,所以我在私下里找了找是否可以将.ipynb文件
转换成PDF文件,再拷贝到其它设备上阅览,这不,找到曲线救国的方法。大致操作为:
① 先将.ipynb文件
转换成HTML文件;
② 再将HTML文件转换成PDF文件。
那么这里需要借助到两个工具,一个是wkhtmltopdf
,另一个是 pdfkit
。
首先,去这个官网下载wkhtmltopdf
并双击安装(这里以windows为例):
http://wkhtmltopdf.org/
安装过程中一定要记住自己安装的路径,后面会有用到的地方,我是按照它的默认路径安装的,所以安装路径如下:
接下来安装第二个工具 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