简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)相关的知识,希望对你有一定的参考价值。
直接执行的python代码ipynb2pdf.py
# coding:utf-8
import sys
import os
import re
import shutil
notebook = sys.argv[1]
texFile = notebook.replace(‘.ipynb‘,‘.tex‘)
# 1.convert .ipynb to latex file .tex
# 将ipynb文件转为tex文件
print ‘1. convert ‘ + notebook + ‘ to ‘ + texFile
print ‘------ \n‘
os.system(r‘jupyter nbconvert --to latex ‘ + notebook)
print ‘convert over‘
# 2. add Chinese support by adding the string below
# 加入引用的包使支持中文(直接转换中文会丢失)
# \usepackage{fontspec, xunicode, xltxtra}
# \setmainfont{Microsoft YaHei}
# \usepackage{ctex}
print ‘2. add Chinese support to .tex file‘
print ‘------‘
file = open(texFile,‘r‘)
str_file = file.read()
strinfo = re.compile(‘(documentclass[\d\D]+\{article\})‘) #查找的字符line0
m=re.findall(strinfo,str_file)
if len(m) == 0:
print r‘can not find documentclass[**pt]{article}‘
sys.exit(1)
str_file = strinfo.sub(‘\\1 \n \\usepackage{fontspec, xunicode, xltxtra} \n \\setmainfont{Microsoft YaHei} \r \\usepackage{ctex}‘,str_file) # 替换的字符line1
file.close()
file = open(texFile,‘w‘)
file.write(str_file)
file.close()
print ‘add Chinese support successed‘
# 3. convert .tex to .pdf by xelatex
# 使用xelatex命令编译.tex文件得到pdf
print ‘3. convert tex to pdf‘
print ‘------‘
os.system(‘xelatex ‘ + texFile)
print ‘convert pdf successed‘
# 4. delete the auxiliary files
# 清理生成的中间文件
# change there if latex file is needed
print ‘4. delete auxiliary files‘
print ‘------‘
os.remove(notebook.replace(‘.ipynb‘,‘.aux‘))
os.remove(notebook.replace(‘.ipynb‘,‘.log‘))
os.remove(notebook.replace(‘.ipynb‘,‘.out‘))
# change there if latex file is needed
os.remove(notebook.replace(‘.ipynb‘,‘.tex‘))
if os.path.isdir(notebook.replace(‘.ipynb‘,‘_files‘)):
shutil.rmtree(notebook.replace(‘.ipynb‘,‘_files‘))
print ‘delete auxiliary files successed‘
调用方式
- 在当前目录中打开命令行(目录中要有ipynb2pdf.py 与 .ipynb文件)
- 输入命令
python ipynb2pdf.py yourFilename.ipynb
打包为exe(可以忽略)
使用pyinstaller打包为exe,作为命令行命令
pyinstaller -F ipynb2pdf.py
生成的exe放入系统path目录的文件夹下即可直接通过命令的形式处理
调用时在.ipynb所在的文件夹下打开命令行,输入命令
ipynb2pdf yourFilename.ipynb
以上是关于简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)的主要内容,如果未能解决你的问题,请参考以下文章
xgboost work in python not work in jupter notebook
xgboost work in python not work in jupter notebook
xgboost work in python not work in jupter notebook
[机器学习与scikit-learn-39]:环境-Jupter Notebook无法支持3D交互式绘图模式解决办法(No module named ‘ipywidgets‘ jupter)