程序员

如何生成美观的 Notebook PDF 报告

2017-12-17  本文已影响914人  7okis

文 = Yokis

引言

随着深度学习的兴起,Python 语言的热度也不断上升,成为研究和生产的「首选语言」。Jupyter Notebook (原 IPython Notebook) 也成为编程利器。这一软件使用网页生成其界面,具有美观、轻量的优点。其升级版 Jupyter Lab 也即将发布。新的 Jupyter Lab 保留了网页界面的基础上,添加了查看变量等 IDE 常用功能。值得单独介绍一下。

不过今天还是专注于 Jupyter Notebook 上。 Notebook 这种形式,可以使代码和文档结合在一起。生成报告时,可以直接下载成为网页。并可以进一步使用 Chrome 的 Print to PDF 功能生成 PDF 报告。

现在的问题是,页面使用了 Jupyter themes 进行了美化。希望在生成报告的时候把美化后的效果保留下来。以下提供几种方法。

改变 Chrome 渲染模式

参考了这个回答

  1. 保存 Notebook 为网页后,再用 Chrome 打开。
  2. 使用 F12Ctrl+Shift+I (Mac Cmd+Opt+I)打开开发者工具。
  3. 右上角点点点,选择 More toolsRendering
  4. 下面 Emulate CSS Media 选项改为 Screen
  5. 切换到原网页(注意不要关闭开发者工具窗口), Ctrl+P打印网页。
步骤

注:

这些写出版本号 52 以上的方法,旧版方法见原答案(原答案回答的是 print view,需要在最后一步改为 screen)。

优点:

缺点:

效果

修改前(注意生成的是黑白文字版) 修改后(保留了网页样式)

保存整个网页为 PDF

使用 Fireshot 直接捕捉整个网页为图片或 PDF 。

优点:

缺点:

后记

以上的方法,不仅适用于打印 Notebook 网页。之前使用 js 进行代码高亮,但却不能打印出来,后来直接复制到 word 中,可以保留。同时还可以调整文字字体之类的。

生成 PDF 本身也只是为了保留格式进行交流。很大程度上背离了使用 Notebook 的本意。如果能使用 html ,尽量还是使用 html 吧。

上一篇下一篇

猜你喜欢

热点阅读