如何将 Jupyter Notebook (ipynb) 文件转换为 PDF
简介
Jupyter Notebook(.ipynb)是数据科学和机器学习领域广泛使用的交互式文档格式。然而,在分享报告、提交作业或发布正式文档时,PDF 格式因其通用性和可打印性成为首选。本文将手把手教你如何将 .ipynb 文件转换为高质量的 PDF。
方法一:使用 nbconvert 命令行
nbconvert 是 Jupyter 自带的一个转换工具,支持多种输出格式。要转换为 PDF,需要安装 LaTeX 引擎(如 TeX Live 或 MiKTeX)。步骤如下:
- 安装nbconvert(通常随Jupyter一起安装)和LaTeX:
pip install nbconvert
Windows 推荐安装 MiKTeX,macOS/Linux 推荐 TeX Live。 - 在终端中运行:
jupyter nbconvert --to pdf your_notebook.ipynb - 如果遇到中文乱码,需修改模板或安装中文字体,例如:
jupyter nbconvert --to pdf --LatexEngine pdflatex --TemplateExporter.extra_template=classic your_notebook.ipynb
优点:高度自定义,适合批量处理。缺点:需要安装 LaTeX,体积较大。
方法二:通过 Jupyter Notebook 界面导出
无需命令行,直接在浏览器中操作:
- 打开你的
.ipynb文件。 - 点击菜单栏 File → Download as → PDF via LaTeX。
- 系统会自动调用 nbconvert 并生成 PDF 下载。
如果选项为灰色,可能需要安装 pandoc 和 texlive-xetex。此外,也可以选择 PDF via HTML(先转 HTML 再打印为 PDF),这种方法不需要 LaTeX,但格式可能略有偏差。
方法三:使用在线转换工具
不想安装任何软件?试试在线服务:
- NBViewer:将 ipynb 网址粘贴到 nbviewer,然后通过浏览器打印为 PDF。
- Google Colab:上传 ipynb 到 Colab,然后
File → Print并选择“另存为 PDF”。 - Convertio 等第三方网站:直接上传文件,但注意隐私问题。
常见问题与解决方法
1. 中文显示为方块
确保系统安装了中文字体(如宋体、黑体)。在 LaTeX 模板中添加:\usepackage[UTF8]{ctex}。或者使用 XeLaTeX 引擎:jupyter nbconvert --to pdf --LatexEngine xelatex your_notebook.ipynb
2. 图形或图像丢失
检查单元格中是否使用了 matplotlib 的 plt.show(),或者确保图形已保存为附件。建议使用 %matplotlib inline 以保证输出内嵌。
3. 页面布局混乱
可通过自定义 LaTeX 模板调整边距、字体大小等。nbconvert 支持 --template 参数。
总结
将 ipynb 转换为 PDF 的核心是利用 LaTeX 或 HTML 打印。对于日常使用,推荐方法二(界面导出),简单快捷;需要批量处理时用法一;无环境则用在线工具。遇到格式问题时,检查字体和引擎是关键。希望本文能帮你顺利产出精美的 PDF 报告!