如何将 IPython 笔记本转换为 PDF 和 HTML?

我想转换我的 ipython 笔记本来打印它们,或者只是以 html 格式发送它们。我已经注意到有一个工具可以做到这一点,转换。虽然我已经下载了它,但是我不知道如何转换笔记本电脑,因为 nbConvert2.py 说它已经过时了。Py 说我需要一个配置文件来转换笔记本,它是什么?是否有关于此工具的文档?

444387 次浏览

来自 医生:

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

NbConvert2还没有完全替换 nbConvert2,您仍然可以使用它,如果您愿意,否则我们将删除可执行文件。这只是一个警告,告诉我们不要再修复 nb 转换了。

以下措施应该奏效:

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

如果您使用的是 IPython 的最新版本,请不要使用打印视图,只使用普通的打印对话框即可。图形在 Chrome 中被切割是一个众所周知的问题(Chrome 不尊重一些打印的 css) ,并且在 Firefox 中工作得更好,并不是所有的版本都是如此。

至于 nbConvert2,它仍然需要高度开发,并且需要编写文档。

Nbviewer use nbconvert2 so it's pretty decent with HTML.

List of current available profiles:

$ 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

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

那么

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

And it should write your (tex) files as long as extracted figures in cwd. 是的,我知道这是不明显的,它可能会改变,因此没有医生..。

The reason for that is that nbconvert2 will mainly be a python library where in pseudo code you can do :

 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 的专家。

我还不能让 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-07星期五: IPython v3语法不同,它更简单:

$ ipython nbconvert --to PDF myfile.ipynb

在所有的情况下,它似乎是我错过了图书馆“ pdflatex”。我正在调查这一点。

如果你已经安装了 LaTeX,你可以直接从 Jupiter 笔记本电脑上下载 PDF 文件,文件格式为 档案-> 下载为-> PDF (. PDF)。否则,请遵循以下两个步骤。

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

     jupyter nbconvert --to html notebook.ipynb
    

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

    谷歌协作是谷歌的免费朱庇特笔记本环境,无需设置和运行完全在云中。如果你正在使用 GoogleColab,命令是相同的,但是 GoogleColab 只允许你下载。Ipynb 或。Py 格式。

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

     wkhtmltopdf notebook.html notebook.pdf
    

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

ipython nbconvert --to html notebook.ipynb

如果您使用的是 Sagemath云版本,您可以直接转到左边的角落,< br/> select File → Download as → Pdf via LaTeX (。Pdf) < br/> 如有需要,请检查屏幕截图。

Screenshot Convert ipynb to pdf

如果它不工作的任何原因,你可以尝试另一种方式。
选择文件→打印预览,然后在预览
右击→打印,然后选择另存为 pdf。

我一直在寻找一种将笔记本电脑保存为 html 的方法,因为每当我尝试在新的 Jupiter 安装中将笔记本电脑下载为 html 时,总会出现 500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'错误。奇怪的是,我发现像 html 一样下载非常简单:

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

没有打印预览,没有打印,没有 nb 转换。使用木星 Version: 1.0.0。只是一个尝试的建议(显然不是所有的设置都是相同的)。

Also pass the --execute flag to generate the output cells

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

最佳实践是将输出保持在笔记本之外,以便进行版本控制,参见: 在版本控制下使用 IPython 笔记本

但是,如果没有传递 --execute,输出将不会出现在 HTML 中,请参见: 如何从终端运行一个。 ipynb 朱庇特笔记本?

对于没有头的 HTML 片段: 如何导出一个 IPython 笔记本到 HTML 的博客文章?

在 Jupyter 测试4.4.0。

我发现最简单的方法来转换一个笔记本电脑是在网络上的 pdf 是首先查看它的网络服务 观众。然后你可以把它打印成一个 pdf 文件。如果笔记本在您的本地驱动器上,那么首先将它上传到 github 存储库,然后使用 nbview 的 URL。

  1. 另存为 超文本标示语言;
  2. Ctrl + P;
  3. 保存为 PDF

其他建议的办法:

  1. 使用’打印,然后选择另存为 pdf。从您的 HTML 文件将导致 失去的边界边缘,突出显示的语法,修剪的情节等。

  2. 其他一些库在使用过时的版本时也出现了故障。

解决方案: 一个更好的、无麻烦的选项是使用一个在线 转换器,它将转换 * 。* 的 html 版本。Ipynb to * .Pdf.

步骤:

  1. 首先,从你的 Jupiter 笔记本界面,用以下方法将你的 * . ipynb 转换成 * . html:

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

  1. 上传新创建的 * . HTML 文件 给你,然后选择 HTML 到 PDF 选项。

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

  3. 现在已经有了. ipynb、 . html 和. pdf 文件

You can do it by 1st converting the notebook into HTML and then into PDF format:

我采取了以下步骤: 操作系统: Ubuntu,Anaconda-Jupiter 笔记本,Python 3

1以 HTML 格式储存笔记本:

  1. 启动要以 HTML 格式保存的 jupyter 笔记本。首先正确保存笔记本,以便 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 格式。

我将上面的一些答案组合在 inline python 中,您可以将它们添加到 ~/。Bashrc 或 ~/。将许多笔记本电脑编译并转换为一个 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 *
}

如果你的文档中有数学和科学公式,那么只有这个答案对你有用。即使你没有它们,它工作得很好。

图形用户界面

  • 打开木星笔记本 open the jupyter notebook

  • 打开文件 > 通过 LaTeX 以 HTML 或 PDF 格式下载 < a href = “ https://i.stack.imgur.com/FJYmJ.png”rel = “ norefrer”> < img src = “ https://i.stack.imgur.com/FJYmJ.png”alt = “打开文件 & gt; 通过 LaTeX 下载 HTML 或 PDF”/>

  • 然后检查下载文件夹中的文件。 附注: 如果 LaTeX 在编译 PDF 时有任何错误,它将会失败。如果发生这种情况,请下载 HTML 文件,然后使用 < a href = “ http://webpagetopdf.com/”rel = “ noReferrer”> Web 页面 转换为 PDF 工具 或任何其他类似的服务,以便将 HTML 转换为 PDF

命令行方式

  • 打开终端
  • Navigate to the folder containing the jupyter notebook
  • 输入“ jupyternbConvert —— to pdf your _ jupyter _ book. ipynb "

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

Parzanos 的回答的简单 Python 版本。

  • open Terminal (Linux, MacOS) or get to point where you can execute python files in Windows
  • Type the following code in a .py file (say tejas.py)
import os


[os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
  • 导航到包含木星笔记本的文件夹
  • Ensure that tejas.py is in the current folder. Copy it to the current folder if necessary.
  • 键入“ python tejas.py”
  • 任务完成

对于那些不能在他们的系统中安装 Wkhtmltopdf的人来说,除了这个问题的答案中已经提到的方法之外,还有一个方法就是简单地从 jupyter 笔记本上下载 HTML 文件,上传到 HTML 转 PDF,然后从那里下载转换后的 pdf 文件。

在这里,您可以将 IPython 笔记本(. ipynb)转换为 PDF (. PDF)和 HTML (. HTML)格式。

笔记本式 pdf 安装

Python-m pip 安装笔记本-as-pdf 安装

好好利用

您还可以将它与 nbConvert 一起使用:

jupyter-nbconvert --to PDFviaHTML filename.ipynb

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

or pip install notebook-as-pdf

从笔记本中创建 pdf 转换到 PDFviaHTML

我认为最简单的方法是‘ Ctrl + P’> 另存为‘ pdf’。 就是这样。

有一个 图书馆所谓的“笔记本 PDF”pip install notebook-as-pdf

它通过 HTML 将笔记本电脑转换成 pdf 格式。一旦安装了这个库,你就可以通过 HTML (。在「档案」选项卡的「下载为」选项。

档案 > 下载为 > HTML 下载 PDF (. PDF)

enter image description here

使用 Ctrl + P

  • option may not work properly, at times when there are many cells.

  • 而且,分页也不合适,这使得 读者阅读和理解。

我发现这种方法非常直观,快速和更好的比较,与其他选项在这里提出。

简单直接的方式

1-Click Ctrl + P当你在木星笔记本

2- 另存为 PDF enter image description here

There are 4种导出木星笔记本到 PDF 格式的方法 that I am aware of and described below.

1. Print to PDF

请打开笔记本电脑,你想导出在木星笔记本应用程序,并选择打印从您的网页浏览器选项。应该有一个选项 Save as PDF。这是最简单的方法。

2. 与 Jupiter 一起导出到 PDF

有一个选项导出 PDF 直接在木星笔记本电脑。按 File-> Download as-> PDF via LaTeXPDF via HTML。这个解决方案是在引擎盖下使用 nbconvert工具。您需要安装额外的软件包,使其工作,否则您将获得 500: Internal Server Error。详情请参阅 nbconvert 安装文件

3. nbconvert

解决方案类似于点2,但是使用命令行工具 nbconvert。假设安装了所有附加软件包,转换过程非常简单:

jupyter nbconvert --to webpdf --allow-chromium-download your-notebook-file.ipynb

The --allow-chromium-download is only needed during the first use.

4. 与水银一起出口

有一个共享笔记本的开源框架 Mercury。它将笔记本转换为交互式文档(可以隐藏代码)。在 Mercury中,用户可以调整小部件的值,并使用新的参数执行笔记本电脑。生成的笔记本可以下载为 PDF (或 HTML)文件。