118

我想将我的 ipython-notebooks 转换为打印它们,或者只是以 html 格式发送它们。我注意到已经有一个工具可以做到这一点,nbconvert。虽然我已经下载了它,但我不知道如何使用 nbconvert2.py 转换笔记本,因为 nbconvert 说它已被弃用。nbconvert2.py 说我需要一个配置文件来转换笔记本,它是什么?是否存在有关此工具的文档?

4

19 回答 19

128

如果您安装了 LaTeX,您可以使用File -> Download as -> PDF via LaTeX (.pdf)直接从 Jupyter notebook 下载 PDF 格式。否则按照这两个步骤。

  1. 对于 HTML 输出,您现在应该使用 Jupyter 代替 IPython 并选择File -> Download as -> HTML (.html)或运行以下命令:

     jupyter nbconvert --to html notebook.ipynb  
    

    这会将 Jupyter 文档文件 notebook.ipynb 转换为 html 输出格式。

    Google Colaboratory 是 Google 的免费 Jupyter 笔记本环境,无需设置,完全在云中运行。如果您使用的是 Google Colab,命令是相同的,但 Google Colab 只允许您下载 .ipynb 或 .py 格式。

  2. 将 html 文件 notebook.html 转换为名为 notebook.pdf 的 pdf 文件。在 Windows、macOS ( brew install wkhtmltodf) 或 Linux 中,安装wkhtmltopdf。wkhtmltopdf 是一个命令行实用程序,用于使用 WebKit 将 html 转换为 pdf。您可以从链接的网页下载 wkhtmltopdf,或者在许多 Linux 发行版中可以在其存储库中找到它。

     wkhtmltopdf notebook.html notebook.pdf   
    

原始(现在几乎已过时)修订:将 IPython 笔记本文件转换为 html。

ipython nbconvert --to html notebook.ipynb

于 2014-09-19T20:42:41.310 回答
24

还传递--execute标志以生成输出单元格

jupyter nbconvert --execute --to html notebook.ipynb
jupyter nbconvert --execute --to pdf notebook.ipynb

最佳做法是将输出保留在笔记本之外以进行版本控制,请参阅:在版本控制下使用 IPython 笔记本

但是,如果您不通过--execute,输出将不会出现在 HTML 中,另请参阅:如何从终端运行 .ipynb Jupyter Notebook?

对于没有标题的 HTML 片段:How to export an IPython notebook to HTML for a blog post?

在 Jupyter 4.4.0 中测试。

于 2017-12-12T12:58:30.303 回答
20

文档

如果您想向其他人提供您笔记本的静态 HTML 或 PDF 视图,请使用“打印”按钮。这将打开文档的静态视图,您可以使用操作系统的工具将其打印为 PDF,或者使用 Web 浏览器的“保存”选项保存到文件(请注意,通常这将创建一个 html 文件和一个名为notebook_name_files 旁边包含所有必要的样式信息,因此如果您打算共享它,则必须将目录与主 html 文件一起发送)。

于 2013-04-14T11:30:23.793 回答
14

nbconvert 尚未完全被 nbconvert2 取代,如果您愿意,您仍然可以使用它,否则我们会删除该可执行文件。这只是一个警告,我们不再修复 nbconvert1。

以下应该有效:

./nbconvert.py --format=pdf yourfile.ipynb 

如果您使用的是最新版本的 IPython,请不要使用打印视图,只需使用正常的打印对话框即可。在 chrome 中剪切图形是一个已知问题(Chrome 不尊重某些打印 css),并且在 firefox 上效果更好,并非所有版本仍然如此。

至于 nbconvert2,它仍然是高度开发的,需要编写文档。

Nbviewer使用 nbconvert2 所以它与 HTML 相当不错。

当前可用配置文件列表:

$ ls -l1 profile|cut -d. -f1

base_html
blogger_html
full_html
latex_base
latex_sphinx_base
latex_sphinx_howto
latex_sphinx_manual
markdown
python
reveal
rst

给你现有的配置文件。(您可以创建自己的,参考未来的文档,./nbconvert2.py --help-all应该会给您一些可以在您的个人资料中使用的选项。)

然后

$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>

只要在cwd中提取数字,它就应该写你的(tex)文件。是的,我知道这并不明显,它可能会改变,因此没有文档......

原因是 nbconvert2 将主要是一个 python,您可以在伪代码中执行以下操作:

 MyConverter = NBConverter(config=config)
 ipynb = read(ipynb_file)
 converted_files = MyConverter.convert(ipynb)
 for file in converted_files :
     write(file)

一旦 API 稳定下来,入口点就会出现。

我只想指出@jdfreder(github 个人资料)正在处理 tex/pdf/sphinx 导出,并且在撰写本文时是从 ipynb 文件生成 PDF 的专家。

于 2013-04-14T12:31:13.567 回答
10
  1. 另存为HTML ;
  2. Ctrl+ P;
  3. 另存为PDF
于 2018-12-12T18:10:39.440 回答
9

对于那些无法在他们的系统中安装wkhtmltopdf的人,除了这个问题的答案中已经提到的许多方法之外,还有一种方法是简单地从 jupyter notebook 下载文件作为 html 文件,将其上传到HTML to PDF,然后下载从那里转换的pdf文件。

在这里,您将 IPython notebook(.ipynb) 转换为 PDF(.pdf) 和 HTML(.html) 格式。

于 2020-02-11T15:13:16.777 回答
8

如果您的文档中有数学、科学公式,那么只有这个答案对您有用。即使您没有它们,它也可以正常工作。

图形界面方式

  • 打开 jupyter 笔记本 打开 jupyter 笔记本

  • 通过 LaTeX 转到文件 > 下载为 > HTML 或 PDF通过 LaTeX 转到文件 > 下载为 > HTML 或 PDF

  • 然后检查您的下载文件夹中的文件。PS:如果 LaTeX 在编译 PDF 时出现任何错误,它将失败。如果发生这种情况,请下载 HTML 文件,然后使用网页转 PDF 工具或任何其他类似服务将 HTML 转换为 PDF。

命令行方式

  • 打开终端
  • 导航到包含 jupyter 笔记本的文件夹
  • 输入“jupyter nbconvert --to pdf your_jupyter_notebook.ipynb”

PS:如果失败,请尝试Yogesh 的回答

于 2019-10-06T10:40:30.780 回答
6

如果您使用的是sagemath云版本,您只需转到左上角,
选择 File → Download as → Pdf via LaTeX (.pdf)
如果需要,请查看屏幕截图。

屏幕截图 将 ipynb 转换为 pdf

如果由于任何原因它不起作用,您可以尝试另一种方法。
选择文件→打印预览,然后在预览上
右键单击→打印,然后选择另存为pdf。

于 2016-12-23T07:29:42.113 回答
4

您可以先将笔记本转换为 HTML,然后再转换为 PDF 格式:

以下我已经实施的步骤:操作系统:Ubuntu、Anaconda-Jupyter notebook、Python 3

1 以 HTML 格式保存笔记本:

  1. 启动要以 HTML 格式保存的 jupyter notebook。首先正确保存笔记本,以便 HTML 文件具有您的代码/笔记本的最新保存版本。

  2. 从笔记本本身运行以下命令:

    !jupyter nbconvert --to html your_notebook_name.ipynb

执行后将创建笔记本的 HTML 版本并将其保存在当前工作目录中。您将看到一个 html 文件将添加到当前目录,your_notebook_name.html名称为

( your_notebook_name.ipynb--> your_notebook_name.html)。

2 将 html 保存为 PDF:

  1. 现在打开该your_notebook_name.html文件(单击它)。它将在浏览器的新选项卡中打开。
  2. 现在转到打印选项。从这里您可以将此文件保存为 pdf 文件格式。

请注意,从打印选项中,我们还可以灵活地选择笔记本的一部分以保存为 pdf 格式。

于 2019-02-28T03:57:39.720 回答
3

其他建议的方法:

  1. 使用“打印然后选择另存为 pdf”。从您的 HTML 文件中删除将导致边界边缘丢失、语法突出显示、绘图修剪等。

  2. 在使用过时的版本时,其他一些库已被证明是损坏的。

解决方案:更好、更轻松的选择是使用在线转换器,它将 *.ipynb 的 *.html 版本转换为 *.pdf。

脚步:

  1. 首先,从您的 Jupyter 笔记本界面,使用以下命令将您的 *.ipynb 转换为 *.html:

文件 > 下载为 > HTML(.html)

  1. 在此处上传新创建的 *.html 文件,然后选择 HTML 到 PDF 选项。

  2. 您的 pdf 文件现在可以下载了。

  3. 您现在拥有 .ipynb、.html 和 .pdf 文件

于 2018-12-30T07:40:46.817 回答
3

我发现将网络上的笔记本转换为 pdf 的最简单方法是首先在网络服务nbviewer上查看它。然后,您可以将其打印为 pdf 文件。如果笔记本在您的本地驱动器上,则首先将其上传到 github 存储库并将其 url 用于 nbviewer。

于 2018-04-05T01:28:22.510 回答
2

我还不能让 pdf 工作。文档暗示我应该能够让它与乳胶一起使用,所以也许我的乳胶不起作用。

$ ipython --version
1.1.0
$ ipython nbconvert --to latex  --post PDF myfile.ipynb
[NbConvertApp] ...
    raise child_exception
    OSError: [Errno 2] No such file or directory
$ ipython nbconvert --to pdf myfile.ipynb
  [NbConvertApp] CRITICAL | Bad config encountered during initialization:
  [NbConvertApp] CRITICAL | The 'export_format' trait of a NbConvertApp instance must be any of ['custom', 'html', 'latex', 'markdown', 'python', 'rst', 'slides'] or None, but a value of u'pdf' <type 'unicode'> was specified.

然而,HTML 使用“幻灯片”效果很好,而且很漂亮!

$ ipython nbconvert --to slides myfile.ipynb
...
[NbConvertApp] Writing 215220 bytes to myfile.slides.html

2014-11-07Fri. 更新:IPython v3 语法不同,它更简单:

$ ipython nbconvert --to PDF myfile.ipynb

在所有情况下,我似乎都错过了“pdflatex”库。我正在调查那个。

于 2014-06-01T20:46:55.853 回答
2

我一直在寻找一种将笔记本保存为 html 的方法,因为每当我尝试使用新安装的 Jupyter 下载为 html 时,我总是会收到500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'错误消息。奇怪的是,我发现下载为 html 很简单:

  1. 左键单击笔记本
  2. 点击下拉菜单中的“另存为...”
  3. 相应地保存

没有打印预览,没有打印,没有 nbconvert。使用 Jupyter Version: 1.0.0。只是一个尝试的建议(显然并非所有设置都相同)。

于 2017-11-13T22:02:21.233 回答
2

notebook-as-pdf安装

python -m pip install notebook-as-pdf pyppeteer-install

用它

您也可以将它与 nbconvert 一起使用:

jupyter-nbconvert --to PDFviaHTML filename.ipynb

这将创建一个名为 filename.pdf 的文件。

或 pip install notebook-as-pdf

从笔记本 jupyter-nbconvert-toPDFviaHTML 创建 pdf

于 2020-06-28T18:33:06.100 回答
2

我在 inline python 中结合了上面的一些答案,您可以将它们添加到 ~/.bashrc 或 ~/.zshrc 以编译并将许多笔记本转换为单个 pdf 文件

function convert_notebooks(){
  # read anything on this folder that ends on ipynb and run pdf formatting for it  
  python -c 'import os; [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir (".") if f.endswith("ipynb")]'
  # to convert to pdf u must have installed latex and that means u have pdfjam installed
  pdfjam * 
}
于 2019-05-07T23:28:06.463 回答
2

partizanos answer的纯python版本。

  • 打开终端(Linux、MacOS)或找到可以在 Windows 中执行 python 文件的位置
  • 在 .py 文件中键入以下代码(例如 tejas.py)
import os

[os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
  • 导航到包含 jupyter 笔记本的文件夹
  • 确保 tejas.py 在当前文件夹中。如有必要,将其复制到当前文件夹。
  • 输入“python tejas.py”
  • 任务完成
于 2019-10-06T11:29:50.960 回答
2

简单直接的方式只是

1- 在 Jupiter notebook 中单击 Ctrl + P

2-另存为PDF 在此处输入图像描述

于 2021-09-15T01:03:15.213 回答
1

有一个名为“notebook as PDF”的pip install notebook-as-pdf

它通过 HTML 将笔记本转换为 pdf。安装库后,您可以在“文件”选项卡的“下载为”选项中找到“PDF via HTML (.pdf)”。

文件>下载为>PDF通过HTML(.pdf)

在此处输入图像描述

使用 Ctrl+P

  • 有时,当有许多单元格时,选项可能无法正常工作。

  • 此外,分页也不正确。使读者更难阅读和理解。

与此处介绍的其他选项相比,我发现此方法非常直观、快速且更好。

于 2021-05-06T19:49:18.117 回答
0

我认为最简单的方法是“Ctrl+P”>另存为“pdf”。而已。

于 2020-08-26T13:04:17.740 回答