将 Python 转为 PDF:.py 文件导出 PDF 完整指南

Python 脚本在开发流程、文档生成、培训课程和学术环境中广泛使用。将 Python (.py) 文件转换为 PDF 可以保证格式统一,提高分发时的可读性,并提供不可编辑的版本,适合存档、打印或发布。

本指南介绍了 所有实用的 Python 转 PDF 方法,包括在线工具、IDE 打印为 PDF、Python 脚本自动转换(带或不带语法高亮)以及批量处理解决方案。每种方法都包含详细步骤、技术说明及必要的安装指导。

方法概览:

在线 Python 转 PDF 工具

在线工具提供了无需配置软件即可快速将 .py 文件转换为 PDF 的方法,适合只需要生成可阅读 PDF 的用户。

在线转换的工作原理

上传 .py 文件后,服务会处理文件内容并生成 PDF,同时保留代码缩进和基础格式。一些平台还提供可选设置,如字体大小、页边距和行号显示。

示例:使用 CodeConvert AI 转换 Python 代码为 PDF

操作步骤

  1. 访问 CodeConvert AI(浏览器在线代码转换平台)。

  2. 上传 .py 文件或将代码粘贴到编辑器中。

  3. 点击 Generate PDF 生成 PDF 文件。

    CodeConvert AI Python to PDF Output

  4. 在弹出菜单中选择打印为 PDF 文件。

    Print Document as PDF File

优点

  • 无需安装或配置。
  • 跨操作系统和设备可用。
  • 适合快速转换和轻量需求。

限制

  • 不建议上传机密或专有脚本。
  • 格式化选项依赖服务平台。
  • 语法高亮效果在不同平台上差异较大。

通过 IDE “打印为 PDF” 转换 Python

大多数开发编辑器,包括 VS CodePyCharm、Sublime Text 和 Notepad++,都支持通过操作系统的打印功能将文件导出为 PDF。

工作原理

打印时,IDE 使用其内置语法高亮引擎渲染代码,并将样式输出交给操作系统,由操作系统生成 PDF。

步骤示例(以 PyCharm 为例)

  1. 打开 Python 文件。

  2. 点击 文件 → 打印

    PyCharm Print Python Code

  3. 可选地调整页面设置(边距、方向、缩放)。

    PyCharm Print Setup

  4. 选择 Microsoft Print to PDF 打印机并保存 PDF 文件。

    Print Python to PDF Using Microsoft Print to PDF

优点

  • 格式干净、可读性高。
  • 通常保留语法高亮。
  • 无需额外库。

限制

  • 对换行或页面布局控制有限。
  • 不适合批量处理。
  • 输出效果依赖 IDE 主题。

Python 脚本自动化转换(支持自定义)

Python 工具提供灵活的 .py 转 PDF 方法,支持自动化流程、统一格式,并可选择语法高亮。
使用以下方法前,请先安装所需组件。

必备包

Free Spire.Doc for Python – 用于 PDF 导出

1
pip install spire.doc.free

Pygments – 生成语法高亮 HTML

1
pip install pygments

3.1 方法 A:直接文本转 PDF(无语法高亮)

该方法将 .py 文件作为纯文本读取并写入 PDF,适合简单导出、文档快照或内部存档,无需语法高亮。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from spire.doc import Document, FileFormat, BreakType, Color, LineSpacingRule, LineNumberingRestartMode, TextRange

with open("Python.py", "r", encoding="utf-8") as f:
python_code = f.read()

doc = Document()
section = doc.AddSection()
paragraph = section.AddParagraph()

# 逐行插入代码并设置字体
for line_number, line in enumerate(python_code.split("\n")):
tr = paragraph.AppendText(line)
tr.CharacterFormat.FontName = "Consolas"
tr.CharacterFormat.FontSize = 10.0
if line_number < len(python_code.split("\n")) - 1:
paragraph.AppendBreak(BreakType.LineBreak)

# 可选设置项
# 设置背景色
paragraph.Format.BackColor = Color.get_LightGray()
paragraph.Format.LineSpacingRule = LineSpacingRule.Multiple
paragraph.Format.LineSpacing = 12.0
# 设置行号
section.PageSetup.LineNumberingStartValue = 1
section.PageSetup.LineNumberingStep = 1
section.PageSetup.LineNumberingRestartMode = LineNumberingRestartMode.RestartPage
section.PageSetup.LineNumberingDistanceFromText = 10.0

# 将代码导出为 PDF
doc.SaveToFile("output/Python-PDF.pdf", FileFormat.PDF)

工作原理

此方法通过 AppendText() 逐行插入代码,使用 AppendBreak() 添加换行,最终通过 SaveToFile() 导出 PDF。

应用该方法后的效果如下:

Convert Python to PDF Using Spire.Doc

详细自定义和插入文本的教程请参考:Python 向 PDF 文档添加文本指南

3.2 方法 B:带语法高亮的 PDF(HTML → PDF)

在制作教程或可读文档时,语法高亮有助于区分关键字并提高可读性。此方法使用 Pygments 生成带内联样式的 HTML,再插入文档生成 PDF。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from spire.doc import Document, FileFormat, ParagraphStyle, IParagraphStyle
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter

# 带语法高亮
def py_to_inline_html(py_file_path):
with open(py_file_path, "r", encoding="utf-8") as f:
code = f.read()
formatter = HtmlFormatter(noclasses=True, linenostart=1, linenos='inline')
return highlight(code, PythonLexer(), formatter)

html_result = py_to_inline_html("Python.py")

doc = Document()
section = doc.AddSection()
paragraph = section.AddParagraph()
# 插入 HTML
paragraph.AppendHTML(html_result)

# 将代码导出为 PDF
doc.SaveToFile("output/Python-PDF-Highlighted.pdf", FileFormat.PDF)

工作原理

Pygments 将代码格式化为内联 CSS HTML,然后通过 AppendHTML() 插入,最终用 SaveToFile() 导出 PDF。

生成效果如下:

使用Pygments和Spire.Doc将Python代码转换为PDF格式

3.3 批量转换(文件夹批量导出 PDF)

若需一次转换多个 .py 文件,只需遍历目录并调用转换函数,将每个文件保存为 PDF。

示例代码(最小批处理示例)

1
2
3
4
5
6
7
8
9
10
11
import os

input_folder = "scripts"
output_folder = "pdf-output"
os.makedirs(output_folder, exist_ok=True)

for file in os.listdir(input_folder):
if file.endswith(".py"):
py_path = os.path.join(input_folder, file)
pdf_path = os.path.join(output_folder, file.replace(".py", ".pdf"))
convert_py_to_pdf(py_path, pdf_path)

注意事项

  • 可复用前面定义的转换函数。
  • 自动保存为与 .py 文件同名的 PDF。
  • 支持纯文本和语法高亮方法。

更多详情可参考:Python 直接将 HTML 转 PDF 教程

4. 方法对比:选择合适的转换方式

方法 优点 缺点 适用场景
在线转换工具 快速,无需安装 隐私问题,格式有限 小型、非敏感文件
IDE 打印为 PDF 简单,保留语法高亮(通常) 无自动化 单文件转换
Python 脚本(文本/HTML) 自动化、批量处理、可自定义 需具备脚本知识 文档、教程、流程化处理

5. 生成清晰可读 PDF 的最佳实践

为了确保 Python 代码 PDF 易读、格式规范、专业美观,请遵循以下做法:

使用等宽字体

等宽字体可保留缩进和对齐,使代码更易读和调试。

管理长行与换行

开启自动换行或调整页边距,避免水平滚动或代码截断。

保持格式统一

字体大小、颜色、间距和页面布局在批量处理时应保持一致。

保留逻辑代码块

避免在页面间拆分函数、循环或多行语句,以维持可读性和结构完整。

文件命名与文件夹组织

批量导出、文档自动化或项目存档时,应使用系统化文件名和文件夹结构。

6. 总结

将 Python (.py) 文件转换为 PDF 是保留代码格式、提升可读性以及生成可共享或存档文档的可靠方式。无论用于文档、教程、教学,还是个人用途,这些方法都能帮助开发者、团队和个人生成统一、专业的 Python 源代码 PDF 文件

7. Python 转 PDF 常见问题解答

以下是开发者、教育者和学生在 Python 转 PDF 时常问的问题,答案基于本指南所述方法。

如何将 Python 代码文件 (.py) 转为 PDF?

可使用在线转换工具(如 CodeConvert AI)、IDE 打印为 PDF 功能,或 Python 脚本(使用 Spire.Doc)进行自动化和批量处理。方法选择取决于工作流程、格式需求及是否需要语法高亮。

如何将 Jupyter Notebook 转为 PDF?

对于 Jupyter Notebook (.ipynb),如果已安装 LaTeX,可直接使用 文件 → 下载为 → PDF;或先导出为 .py 脚本,再使用本指南 Python 转 PDF 方法。

如何确保 PDF 保留语法高亮?

可先使用 Pygments 将代码转换为带内联 CSS 的 HTML,再通过 AppendHTML() 插入 PDF 文档,可保留关键字、注释和缩进,实现专业输出。

如何在 Windows 上用 Python 将文本文件转为 PDF?

可使用 Spire.Doc 等免费 Python 库读取 .txt 或 .py 文件,写入 PDF 并可选地进行样式设置。IDE 打印为 PDF 也可用于单文件转换,无需编程。批量脚本可自动处理多个文件并保持格式一致。

参考链接