文 = Yokis
引言
随着深度学习的兴起,Python 语言的热度也不断上升,成为研究和生产的「首选语言」。Jupyter Notebook (原 IPython Notebook) 也成为编程利器。这一软件使用网页生成其界面,具有美观、轻量的优点。其升级版 Jupyter Lab 也即将发布。新的 Jupyter Lab 保留了网页界面的基础上,添加了查看变量等 IDE 常用功能。值得单独介绍一下。
不过今天还是专注于 Jupyter Notebook 上。 Notebook 这种形式,可以使代码和文档结合在一起。生成报告时,可以直接下载成为网页。并可以进一步使用 Chrome 的 Print to PDF
功能生成 PDF 报告。
现在的问题是,页面使用了 Jupyter themes 进行了美化。希望在生成报告的时候把美化后的效果保留下来。以下提供几种方法。
改变 Chrome 渲染模式
参考了这个回答。
- 保存 Notebook 为网页后,再用 Chrome 打开。
- 使用
F12
或Ctrl+Shift+I
(MacCmd+Opt+I
)打开开发者工具。 - 右上角点点点,选择
More tools
→Rendering
- 下面
Emulate CSS Media
选项改为Screen
- 切换到原网页(注意不要关闭开发者工具窗口),
Ctrl+P
打印网页。
注:
这些写出版本号 52 以上的方法,旧版方法见原答案(原答案回答的是 print view
,需要在最后一步改为 screen
)。
优点:
- 打印成为文字版 PDF 可以选中内容
缺点:
- 分页时,图片出现分开现象。而且目前没有找到不分开元素打印的方法。
效果
修改前(注意生成的是黑白文字版) 修改后(保留了网页样式)保存整个网页为 PDF
使用 Fireshot 直接捕捉整个网页为图片或 PDF 。
优点:
- 保留所有效果
缺点:
- 只能生成图片 PDF,文字无法选择
- 整个网页变成一大张,难以打印
后记
以上的方法,不仅适用于打印 Notebook 网页。之前使用 js 进行代码高亮,但却不能打印出来,后来直接复制到 word 中,可以保留。同时还可以调整文字字体之类的。
生成 PDF 本身也只是为了保留格式进行交流。很大程度上背离了使用 Notebook 的本意。如果能使用 html ,尽量还是使用 html 吧。
网友评论