首页 > 代码库 > 简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)
简单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
null
简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。