我想将我的 ipython-notebooks 转换为打印它们,或者只是以 html 格式发送它们。我注意到已经有一个工具可以做到这一点,nbconvert。虽然我已经下载了它,但我不知道如何使用 nbconvert2.py 转换笔记本,因为 nbconvert 说它已被弃用。nbconvert2.py 说我需要一个配置文件来转换笔记本,它是什么?是否存在有关此工具的文档?
19 回答
如果您安装了 LaTeX,您可以使用File -> Download as -> PDF via LaTeX (.pdf)直接从 Jupyter notebook 下载 PDF 格式。否则按照这两个步骤。
对于 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 格式。
将 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
还传递--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 中测试。
从文档:
如果您想向其他人提供您笔记本的静态 HTML 或 PDF 视图,请使用“打印”按钮。这将打开文档的静态视图,您可以使用操作系统的工具将其打印为 PDF,或者使用 Web 浏览器的“保存”选项保存到文件(请注意,通常这将创建一个 html 文件和一个名为notebook_name_files 旁边包含所有必要的样式信息,因此如果您打算共享它,则必须将目录与主 html 文件一起发送)。
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 的专家。
- 另存为HTML ;
- Ctrl+ P;
- 另存为PDF。
对于那些无法在他们的系统中安装wkhtmltopdf的人,除了这个问题的答案中已经提到的许多方法之外,还有一种方法是简单地从 jupyter notebook 下载文件作为 html 文件,将其上传到HTML to PDF,然后下载从那里转换的pdf文件。
在这里,您将 IPython notebook(.ipynb) 转换为 PDF(.pdf) 和 HTML(.html) 格式。
如果您的文档中有数学、科学公式,那么只有这个答案对您有用。即使您没有它们,它也可以正常工作。
图形界面方式
然后检查您的下载文件夹中的文件。PS:如果 LaTeX 在编译 PDF 时出现任何错误,它将失败。如果发生这种情况,请下载 HTML 文件,然后使用网页转 PDF 工具或任何其他类似服务将 HTML 转换为 PDF。
命令行方式
- 打开终端
- 导航到包含 jupyter 笔记本的文件夹
- 输入“jupyter nbconvert --to pdf your_jupyter_notebook.ipynb”
PS:如果失败,请尝试Yogesh 的回答。
如果您使用的是sagemath云版本,您只需转到左上角,
选择 File → Download as → Pdf via LaTeX (.pdf)
如果需要,请查看屏幕截图。
如果由于任何原因它不起作用,您可以尝试另一种方法。
选择文件→打印预览,然后在预览上
右键单击→打印,然后选择另存为pdf。
您可以先将笔记本转换为 HTML,然后再转换为 PDF 格式:
以下我已经实施的步骤:操作系统:Ubuntu、Anaconda-Jupyter notebook、Python 3
1 以 HTML 格式保存笔记本:
启动要以 HTML 格式保存的 jupyter notebook。首先正确保存笔记本,以便 HTML 文件具有您的代码/笔记本的最新保存版本。
从笔记本本身运行以下命令:
!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:
- 现在打开该
your_notebook_name.html
文件(单击它)。它将在浏览器的新选项卡中打开。 - 现在转到打印选项。从这里您可以将此文件保存为 pdf 文件格式。
请注意,从打印选项中,我们还可以灵活地选择笔记本的一部分以保存为 pdf 格式。
其他建议的方法:
使用“打印然后选择另存为 pdf”。从您的 HTML 文件中删除将导致边界边缘丢失、语法突出显示、绘图修剪等。
在使用过时的版本时,其他一些库已被证明是损坏的。
解决方案:更好、更轻松的选择是使用在线转换器,它将 *.ipynb 的 *.html 版本转换为 *.pdf。
脚步:
- 首先,从您的 Jupyter 笔记本界面,使用以下命令将您的 *.ipynb 转换为 *.html:
文件 > 下载为 > HTML(.html)
在此处上传新创建的 *.html 文件,然后选择 HTML 到 PDF 选项。
您的 pdf 文件现在可以下载了。
您现在拥有 .ipynb、.html 和 .pdf 文件
我发现将网络上的笔记本转换为 pdf 的最简单方法是首先在网络服务nbviewer上查看它。然后,您可以将其打印为 pdf 文件。如果笔记本在您的本地驱动器上,则首先将其上传到 github 存储库并将其 url 用于 nbviewer。
我还不能让 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”库。我正在调查那个。
我一直在寻找一种将笔记本保存为 html 的方法,因为每当我尝试使用新安装的 Jupyter 下载为 html 时,我总是会收到500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'
错误消息。奇怪的是,我发现下载为 html 很简单:
- 左键单击笔记本
- 点击下拉菜单中的“另存为...”
- 相应地保存
没有打印预览,没有打印,没有 nbconvert。使用 Jupyter Version: 1.0.0
。只是一个尝试的建议(显然并非所有设置都相同)。
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
我在 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 *
}
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”
- 任务完成
有一个名为“notebook as PDF”的库pip install notebook-as-pdf
。
它通过 HTML 将笔记本转换为 pdf。安装库后,您可以在“文件”选项卡的“下载为”选项中找到“PDF via HTML (.pdf)”。
文件>下载为>PDF通过HTML(.pdf)
使用 Ctrl+P
有时,当有许多单元格时,选项可能无法正常工作。
此外,分页也不正确。使读者更难阅读和理解。
与此处介绍的其他选项相比,我发现此方法非常直观、快速且更好。
我认为最简单的方法是“Ctrl+P”>另存为“pdf”。而已。