如何将 Python 文件转换为 PDF 或 DOCX(无需安装 LaTeX)
Source: Dev.to
你有一个 .py 文件——或几份文件——需要生成 PDF 或 Word 文档。也许你在提交课程作业、向非开发者分享代码、创建可打印的归档,或离线审阅开源仓库。下面是最常用方法的简要概览、它们的取舍以及各自适用的场景。
Pandoc
Pandoc 是一个成熟且被广泛使用的文档转换工具,能够很好地将 .py 转换为 DOCX 或 PDF。
pandoc my_script.py -o output.docx
pandoc my_script.py -o output.pdf
- DOCX 输出可以干净地完成,无需额外的依赖——如果你对命令行操作熟悉,这是一个可靠的选择。
- PDF 输出需要单独的 PDF 引擎。默认情况下,Pandoc 使用 LaTeX(Windows 上为 MiKTeX,macOS 上为 MacTeX),这些都是体积较大的安装。可以通过
--pdf-engine参数使用更轻量的替代方案,如wkhtmltopdf或weasyprint,但它们也需要事先安装。
最佳适用场景: 对 CLI 熟悉且希望获得免费、可脚本化解决方案的开发者。DOCX 只需最少的设置;PDF 则需要先选择并安装 PDF 引擎。
nbconvert(用于 Jupyter 笔记本)
如果你在处理 .ipynb 笔记本,nbconvert 是合适的工具。它能够干净地处理单元输出、内联图形和 markdown 单元。
jupyter nbconvert --to html notebook.ipynb
jupyter nbconvert --to pdf notebook.ipynb
- 原生输出格式包括 HTML、PDF、Markdown 和脚本。
- DOCX 不是 nbconvert 的原生格式——将笔记本转换为 DOCX 需要单独安装 Pandoc 和
python-docx(如果已安装这些依赖,JupyterLab 中可以通过 文件 → 导出为 → Word 使用)。 - PDF 输出仍然需要 LaTeX 发行版。
最佳适用场景: 需要 HTML 或 PDF 导出的数据科学家和笔记本用户。不适用于普通的 .py 文件。
Sphinx
Sphinx 是标准的 Python 文档工具。它可以根据源代码生成完整的文档站点,make latexpdf 可以生成 PDF。
- 配置工作量较大:需要配置好 Sphinx、使用正确格式的 docstring,并且安装 LaTeX。
- 输出质量优秀:拥有正确的交叉引用、模块索引以及专业的布局。
最佳适用场景: 需要维护文档的开源项目。对于快速导出而言有些大材小用,但对严肃项目来说是长期可靠的投入。
VS Code / 浏览器打印
在 VS Code 中打开带有打印扩展的文件,或在 GitHub 上查看后使用浏览器的 打印 → 保存为 PDF。
- 无需安装,无需命令行,立即可用。
- 输出质量受限——边距和分页无法控制,长行可能被截断,且没有目录。
最佳场景: 当外观不重要时,快速对单个文件进行粗略打印。
pBinder(仅限 Windows)
pBinder 是一个便携式 Windows EXE,专门用于将 Python 文件和项目转换为 DOCX 和 PDF。它不需要 LaTeX、Python 环境,也无需安装——只需下载后直接运行。
- 支持单个文件、少量文件或整个项目目录。
- 生成可导航的文档:
- 可点击的目录,带有项目文件夹树
- 符号目录,列出所有本地定义的类、函数和方法,并带有超链接
- 调用位置交叉引用,将每个使用链接回其定义
**限制:**仅限 Windows 10 64‑bit;PDF 导出需要 Microsoft Word(DOCX 在没有 Word 的情况下也能工作)。
**最佳使用场景:**希望在不需要 Pandoc 或 Sphinx 那样的 LaTeX 与 CLI 设置的情况下,获得结构化、可导航输出的 Windows 用户。提供 14 天免费试用,地址为 。
比较表
| 方法 | DOCX | 多个文件 | 目录 | LaTeX 必需 | 设置 | |
|---|---|---|---|---|---|---|
| Pandoc | ✅ | ✅ | 手动脚本 | ❌ | 需要 PDF 引擎 | CLI |
| nbconvert | ❌ | ✅ | ❌ | ❌ | 用于 PDF | Jupyter 环境 |
| Sphinx | ❌ | ✅ | ✅ | ✅ | ✅ | 重量级 |
| VS Code / Browser | ❌ | ✅ | ❌ | ❌ | 否 | 无 |
| pBinder | ✅ | ✅ | ✅ | ✅ | 否 | 无 |
选择合适的工具
- 单文件,无需繁琐操作: VS Code 或浏览器打印。
- 笔记本:
nbconvert。 - 脚本生成 DOCX 输出(无 LaTeX): Pandoc。
- 完整项目文档(长期): Sphinx。
- 在 Windows 上可导航的 DOCX/PDF,零配置: pBinder。
每种工具都有其合理的使用场景。正确的选择取决于你的操作系统、愿意投入的设置工作量以及期望的输出质量。