新闻中心
最新版jupyter notebook导出为PDF(jupyter notebook文件怎么导出)
----点击蓝字关注我呀----
RT,关于jupyter notebook导出为PDF的那些事儿
背景
自己在用Python 分析数据时总会依赖jupyter notebook(以下简称 notebook) 交互式的界面,然后把报告中需要的数据复制出来贴在Excel里
这波操作里,就不想贴数据了,而且在notebook里写结论也能直接定位到操作过程,或者说日后能复现、方便管理。所以可以考虑使用 notebook 导出的功能。虽然目前支持多种格式(html、markdown、pdf等),但又想兼顾各设备(电脑、手机)打开的便捷性,所以导出为pdf是个不错的选择。
但是,在导出为PDF的过程中遇到了以下几个问题/需求:
1. 不显示中文
2. Code Free对外展示的时候只需要结果即可
3. 添加报告的目录
4. pandas.DataFrame Style格式导出后直接不显示
5. ...
以上遇到的几个问题/需求,结合notebook导出为pdf的流程来看主要对应notebook2LaTex 和 LaTex2PDF 两个阶段的事。但使用感知依然还是一件事,即notebook导出为PDF
(「Mark」目前还有个先转html再转pdf的方式to webpdf[1])
Choose to convert using latex or chrome web browser when converting to pdf. Output is significantly different for each.
• Use latex when you desire a formal report.
• Use browser to get output similar to that when printing to pdf within a chrome web browser.
上文所列的 2、4便对应notebook2LaTex阶段,而剩下的第1、3个问题便是LaTex2PDF阶段的问题
在此均使用 jupyter nbconver 终端命令实现导出,且略过需要提前配置好的 Pandoc 和 Tex
notebook2LaTex
Code Free
关于不需要input中的代码问题,终端命令是能顺利实现的
jupyter nbconvert notebook.ipynb --to pdf --no-input但这样导出的pdf会遇到表格数据串行的问题,而且pandas.DataFrame 加上一些渲染后再导出也无法显示,即第4个问题
DataFrames2images
(当目前问题解决不了的时候,那就装个包:dataframe-image[2])
但是这个包没有封装--no-input的选项,好在这个包的pdfExporter部分也是从nbconvert继承过来的,所以改下dataframe-image的源代码(_convert.py文件)也是能实现code-free的
pdf = PDFExporter(config={NbConvertBase: {display_data_priority:
self.DISPLAY_DATA_PRIORITY} })
# 改为from traitlets.config importConfig
c = Config({"NbConvertBase": {
"display_data_priority": self.DISPLAY_DATA_PRIORITY
}})
c.PDFExporter.exclude_input_prompt = Truec.PDFExporter.exclude_input =Truepdf = PDFExporter(config=c)LaTex2PDF
中文及目录问题
这个问题放在LaTex2PDF这个阶段就好理解了,这个是跟LaTex有关,这玩意儿一开始就是老外整出来的,要显示中文得修改base.tex.j2文件,加载一些宏包。(网上说要改article.tplx文件的都是比较老的版本了,目前nbconvert不那么整了)
\usepackage[slantfont, boldfont]{xeCJK}
% 其他一些问题% %加水印\usepackage{draftwatermark, everypage}
\SetWatermarkText{DRAFT}
\SetWatermarkLightness{0.95}
\SetWatermarkScale{0.4}
% %中文时间 \usepackage{zhnumber}
\date{\zhtoday}
% %目录\tableofcontents之后工作中遇到新需求、问题再继续更新~
引用链接[1] to webpdf: https://nbconvert.readthedocs.io/en/latest/usage.html#webpdf
[2] dataframe-image: https://pypi.org/project/dataframe-image/

长按联系我
汽车-营销-数据分析
不写代码的洗车仔
不是一名好分析师

营销人的数据分析
~欢迎关注~
这里有营销
有数据分析