我想转换我的ipython-notebooks来打印它们,或者只是将它们以html格式发送给其他人。我注意到已经存在一个工具,nbconvert。我已经下载了它,但我不知道如何使用nbconvert2.py来转换笔记本,因为nbconvert说它已被弃用。 nbconvert2.py说我需要一个配置文件来转换笔记本,它是什么?是否存在有关此工具的文档?
答案 0 :(得分:44)
将IPython笔记本文件转换为html。
ipython nbconvert --to html notebook.ipynb
这会将IPython文档文件notebook.ipynb转换为html输出格式。
更新:对于HTML输出,您现在应该使用jupyter代替ipython:
jupyter nbconvert --to html notebook.ipynb
将html文件notebook.html转换为名为notebook.pdf的pdf文件。在Windows,Mac或Linux中,安装wkhtmltopdf。 wkhtmltopdf是一个命令行实用程序,用于使用WebKit将html转换为pdf。您可以从链接的网页下载wkhtmltopdf,也可以在许多Linux发行版中下载它们的存储库。
wkhtmltopdf notebook.html notebook.pdf
答案 1 :(得分:11)
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
为您提供现有的个人资料。
(您可以创建自己的,cf cf future doc,./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 profile)正在处理tex / pdf / sphinx导出,并且是撰写本文时从ipynb文件生成PDF的专家。
答案 2 :(得分:9)
对于无法在自己的系统中安装wkhtmltopdf的用户,除了在此问题的答案中已经提到的许多方法外,还有另一种方法是简单地从jupyter笔记本中将文件下载为html文件,然后上传该文件到HTML to PDF,然后从那里下载转换后的pdf文件。
在这里,您将IPython笔记本(.ipynb)转换为PDF(.pdf)和HTML(.html)格式。
答案 3 :(得分:7)
来自docs:
如果要向其他人提供笔记本的静态HTML或PDF视图,请使用“打印”按钮。这将打开文档的静态视图,您可以使用操作系统的工具将其打印为PDF,或使用Web浏览器的“保存”选项保存到文件中(请注意,这通常会创建一个html文件和一个名为notebook_name_files旁边包含所有必需的样式信息,因此如果您打算共享它,则必须将目录与主html文件一起发送。)
答案 4 :(得分:4)
同时传递--execute
标志以获取输出
jupyter nbconvert --execute --to html notebook.ipynb
jupyter nbconvert --execute --to pdf notebook.ipynb
最佳做法是将输出保留在笔记本中以进行版本控制,请参阅:Using IPython notebooks under version control
但是,如果您没有通过--execute
,则输出不会出现在HTML中,另请参阅:How to run an .ipynb Jupyter Notebook from terminal?
对于没有标题的HTML片段:How to export an IPython notebook to HTML for a blog post?
在Jupyter 4.4.0中测试。
答案 5 :(得分:2)
python -m pip install notebook-as-pdf pyppeteer安装
您也可以将其与nbconvert一起使用:
jupyter-nbconvert-通过HTML filename.ipynb转换为PDF
这将创建一个名为filename.pdf的文件。
或通过pip安装Notebook-as-pdf
从笔记本创建pdf jupyter-nbconvert-toPDFviaHTML
答案 6 :(得分:2)
仅当您的文档中包含数学公式和科学公式时,此答案才对您有用。即使您没有它们,它也可以正常工作。
GUI方式
然后检查“下载”文件夹中的文件。 PS:如果LaTeX在编译PDF时出现任何错误,它将失败。如果发生这种情况,请下载HTML文件,然后使用http://webpagetopdf.com/或任何其他类似的服务将HTML转换为PDF。
命令行方式
答案 7 :(得分:1)
我无法获得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&#39;。我正在调查那个。
答案 8 :(得分:1)
您可以使用this简单的在线服务。它同时支持HTML和PDF。
答案 9 :(得分:1)
我发现将网络上的笔记本转换为pdf的最简单方法是首先在网络服务nbviewer上查看它。然后,您可以将其打印到pdf文件。如果笔记本电脑在本地驱动器上,则首先将其上传到github存储库,然后将其URL用于nbviewer。
答案 10 :(得分:1)
答案 11 :(得分:1)
我认为最简单的方法是“ Ctrl + P”>另存为“ pdf”。 就是这样。
答案 12 :(得分:0)
有一个 library 称为“notebook as PDF”pip install notebook-as-pdf
。
它通过 HTML 将笔记本转换为 pdf。安装库后,您可以在“文件”选项卡的“下载为”选项中找到“PDF via HTML (.pdf)”。
文件>下载为>通过 HTML(.pdf) 格式的 PDF
使用 Ctrl+P
选项可能无法正常工作,有时有很多单元格。
此外,分页也不正确。让它变得更难 供读者阅读和理解。
与此处介绍的其他选项相比,我发现此方法非常直观、快速且更好。
答案 13 :(得分:0)
partizanos's answer的纯Python版本。
在.py文件中输入以下代码(例如tejas.py)
导入操作系统
[os.system(“ jupyter nbconvert --to pdf” + f) for f in os.listdir(“。”)if f.endswith(“ ipynb”)]
导航到包含jupyter笔记本的文件夹
答案 14 :(得分:0)
我在嵌入式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 *
}
答案 15 :(得分:0)
您可以先将笔记本转换为HTML,然后转换为PDF格式:
执行以下步骤: 操作系统:Ubuntu,Anaconda-Jupyter笔记本,Python 3
从笔记本计算机本身运行以下命令:
!jupyter nbconvert --to html your_notebook_name.ipynb
执行后将创建笔记本的HTML版本,并将其保存在当前工作目录中。您将看到一个带有your_notebook_name.html
名称的html文件被添加到当前目录
({your_notebook_name.ipynb
-> your_notebook_name.html
)。
your_notebook_name.html
文件(单击它)。它将在浏览器的新标签页中打开。请注意,从打印选项中,我们还可以灵活选择笔记本的一部分以pdf格式保存。
答案 16 :(得分:0)
其他建议的方法:
使用“打印,然后选择另存为pdf”。 HTML文件中的内容会导致边框的丢失,语法突出显示,图的修剪等。
当使用过时的版本时,其他一些库显示已损坏。
解决方案:更好,更轻松的选择是使用在线转换器https://www.sejda.com/html-to-pdf,该转换器会将* .ipynb的* .html版本转换为* .pdf。
步骤:
文件>下载为> HTML(.html)
将新创建的* .html文件上传到https://www.sejda.com/html-to-pdf,然后选择HTML到PDF选项。
您的pdf文件现在可以下载了。
您现在拥有.ipynb,.html和.pdf文件
答案 17 :(得分:0)
我一直在寻找一种将笔记本保存为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
。只是一个尝试的建议(显然并非所有设置都相同)。
答案 18 :(得分:0)
如果您使用的是sagemath云版,则只需转到左上角,选择文件 - &gt;下载为 - &gt; Pdf via LaTeX(.pdf)
如果需要,请检查屏幕截图。
Screenshot Convert ipynb to pdf
如果它因任何原因不起作用,你可以尝试另一种方式。
选择文件 - &gt;打印预览,然后预览
右键单击 - &gt;打印,然后选择另存为pdf。