美文网首页程序员
如何生成美观的 Notebook PDF 报告

如何生成美观的 Notebook PDF 报告

作者: 7okis | 来源:发表于2017-12-17 19:32 被阅读914次

    文 = 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 可以选中内容

    缺点:

    • 分页时,图片出现分开现象。而且目前没有找到不分开元素打印的方法。

    效果

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

    保存整个网页为 PDF

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

    优点:

    • 保留所有效果

    缺点:

    • 只能生成图片 PDF,文字无法选择
    • 整个网页变成一大张,难以打印

    后记

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

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

    相关文章

      网友评论

        本文标题:如何生成美观的 Notebook PDF 报告

        本文链接:https://www.haomeiwen.com/subject/vhduwxtx.html