How to convert IPython notebooks to PDF and HTML?
我想转换我的ipython-notebooks来打印它们,或者只是将它们以html格式发送给其他人。 我注意到已经有了一个工具来做到这一点,nbconvert。 我已经下载了它,但我不知道如何使用nbconvert2.py来转换笔记本,因为nbconvert说它已被弃用。 nbconvert2.py说我需要一个配置文件来转换笔记本,它是什么? 是否存在有关此工具的文档?
将IPython笔记本文件转换为html。
1 | ipython nbconvert --to html notebook.ipynb |
这会将IPython文档文件notebook.ipynb转换为html输出格式。
更新:对于HTML输出,您现在应该使用jupyter代替ipython:
1 | jupyter nbconvert --to html notebook.ipynb |
将html文件notebook.html转换为名为notebook.pdf的pdf文件。在Windows,Mac或Linux中,安装wkhtmltopdf。 wkhtmltopdf是一个命令行实用程序,用于使用WebKit将html转换为pdf。您可以从链接的网页下载wkhtmltopdf,也可以在许多Linux发行版中下载它们的存储库。
1 | wkhtmltopdf notebook.html notebook.pdf |
nbconvert还没有完全被nbconvert2取代,如果你愿意,你仍然可以使用它,否则我们会删除可执行文件。这只是一个警告,我们不再修复nbconvert1了。
以下应该有效:
1 | ./nbconvert.py --format=pdf yourfile.ipynb |
如果您使用的是IPython最新版本,请不要使用打印视图,只需使用普通打印对话框即可。 Chrome中的图形切割是一个已知的问题(Chrome不尊重某些打印css),并且使用firefox工作得更好,而不是所有版本。
对于nbconvert2,它仍然是高度开发和文档需要编写。
Nbviewer使用nbconvert2所以它与HTML相当不错。
当前可用的配置文件列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ 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 cf doc,
然后
1 | $ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb> |
它应该写你的(tex)文件,只要在cwd中提取数字。
是的我知道这不明显,它可能会改变因此没有文件...
原因是nbconvert2将主要是一个python库,你可以在伪代码中执行:
1 2 3 4 5 | MyConverter = NBConverter(config=config) ipynb = read(ipynb_file) converted_files = MyConverter.convert(ipynb) for file in converted_files : write(file) |
一旦API稳定,进入点将会更晚。
我只想指出@jdfreder(github profile)正在处理tex / pdf / sphinx导出,并且是撰写本文时从ipynb文件生成PDF的专家。
来自文档:
If you want to provide others with a static HTML or PDF view of your notebook, use the Print button. This opens a static view of the document, which you can print to PDF using your operating system’s facilities, or save to a file with your web browser’s ‘Save’ option (note that typically, this will create both an html file and a directory called notebook_name_files next to it that contains all the necessary style information, so if you intend to share this, you must send the directory along with the main html file).
同时传递
1 2 | jupyter nbconvert --execute --to html notebook.ipynb jupyter nbconvert --execute --to pdf notebook.ipynb |
最佳做法是将输出保留在笔记本中以进行版本控制,请参阅:在版本控制下使用IPython笔记本
但是,如果你没有传递
对于没有标题的HTML片段:如何将IPython笔记本导出为HTML以用于博客文章?
在Jupyter 4.4.0中测试过。
我发现将Web上的笔记本转换为pdf的最简单方法是首先在Web服务nbviewer上查看它。然后,您可以将其打印到pdf文件。如果笔记本电脑在本地驱动器上,则首先将其上载到github存储库,然后将其URL用于nbviewer。
我无法获得pdf工作。文档暗示我应该能够使用乳胶,所以也许我的乳胶不起作用。 http://ipython.org/ipython-doc/rel-1.0.0/interactive/nbconvert.html
$ 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' 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'。我正在调查那个。
最好和最简单的方式
只需按
Command + P in Mac
Control + P in Windows
打开"打印"菜单,然后选择"另存为pdf"并按"保存"。
我在上面的内联python中结合了一些答案,你可以添加到?/ .bashrc或?/ .zshrc来编译和转换许多笔记本到一个pdf文件
1 2 3 4 5 6 | 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 * } |
您可以通过首先将笔记本转换为HTML然后转换为PDF格式来实现:
我已经实施了以下步骤:
操作系统:Ubuntu,Anaconda-Jupyter笔记本,Python 3
1以HTML格式保存Notebook:
从笔记本本身运行以下命令:
执行后将创建笔记本的HTML版本,并将其保存在当前工作目录中。您将看到一个html文件将以
(
2将html另存为PDF:
请注意,从打印选项中我们还可以灵活选择笔记本的一部分以pdf格式保存。
其他建议的方法:
使用"打印然后选择另存为pdf"。从您的HTML文件中将导致边框边缘丢失,突出显示语法,修剪图表等。
在使用过时的版本时,其他一些库已被证明是破碎的。
解决方案:更好,更轻松的选择是使用在线转换器https://www.sejda.com/html-to-pdf,它会将* .ipynb的* .html版本转换为* .pdf。
脚步:
File > Download as > HTML(.html)
将新创建的* .html文件上传到https://www.sejda.com/html-to-pdf,然后选择HTML to PDF选项。
您的pdf文件现在可以下载了。
你现在有.ipynb,.html和.pdf文件
我一直在寻找一种将笔记本保存为html的方法,因为每当我尝试使用我的新Jupyter安装下载为html时,我总是会得到
没有打印预览,没有打印,没有nbconvert。使用Jupyter
如果您使用的是sagemath云版本,您只需转到左下角,选择文件 - >下载为 - > Pdf通过LaTeX(.pdf)
如果需要,请检查屏幕截图。
屏幕截图将ipynb转换为pdf
如果它因任何原因不起作用,你可以尝试另一种方式。
选择文件 - >打印预览,然后选择预览
右键单击 - >打印,然后选择另存为pdf。