跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 文本转 PDF 指南:从字符串与 TXT 文件到专业文档

介绍如何使用 Python 将文本内容转换为 PDF。涵盖文本字符串和 TXT 文件的转换方法,支持自定义页面布局(大小、方向、页边距)、添加页眉页脚和页码,以及批量处理多个文件。通过 Spire.Doc for Python 库实现,无需依赖 Office 软件,适合自动化脚本和服务器环境,生成专业、跨平台兼容的 PDF 文档。

松间照月发布于 2026/3/27更新于 2026/10/25109 浏览
Python 文本转 PDF 指南:从字符串与 TXT 文件到专业文档

Python 文本转 PDF 指南

在 Python 开发过程中,将文本内容转换为 PDF 是一个非常常见、但又容易被忽视的需求。无论是生成系统报告、导出日志文件,还是将用户输入的内容整理成可分享的文档,单纯的 .txt 文本文件往往难以满足实际使用场景的要求。

相比之下,PDF 文件在排版稳定性、跨平台兼容性和专业呈现效果方面具有明显优势。它不仅可以在 Windows、macOS、Linux 以及移动设备上保持一致的显示效果,还支持页边距、字体样式、页眉页脚、页码等丰富的排版能力,非常适合用于正式文档、打印输出和长期存档。

本文将围绕一个高频且实用的开发场景,系统讲解如何使用 Python 将文本转换为 PDF。内容不仅涵盖从文本字符串和 .txt 文件生成 PDF 的基础方法,还将深入介绍页面布局自定义、添加页眉页脚与页码,以及如何批量处理多个文本文件,帮助你构建稳定、自动化的文档生成流程。

为什么要将文本转换为 PDF?

在很多项目中,文本内容最初往往以字符串或 .txt 文件的形式存在。但当这些内容需要对外分享、打印或长期保存时,PDF 通常是更合适的选择,原因主要包括以下几点:

1. 跨平台显示一致

PDF 文件在不同操作系统和设备上的显示效果高度一致,不会出现字体错乱或排版变化的问题,有助于保证用户体验的稳定性。

2. 更专业的文档呈现

与纯文本文件相比,PDF 支持字体、字号、段落间距和页面布局设置,生成的文档更规范、更易读,更符合正式文档的使用场景。

3. 适合长期存档

PDF 是广泛认可的标准文档格式,支持压缩、加密和数字签名,非常适合用于档案保存和合规场景。

4. 打印效果可靠

无论使用哪种打印设备,PDF 的页面布局都能保持一致,非常适合用于报告、合同和正式文件输出。

Python 文本转 PDF 的库选择

在 Python 中,实现文本转 PDF 有多种方式,但在实际开发中,开发者通常希望:

  • 使用方式简单,学习成本低
  • 支持字体、页面布局等格式控制
  • 不依赖 Microsoft Word 等外部环境
  • 适合自动化脚本和批量处理

Spire.Doc for Python 是满足这些需求的一种解决方案。它可以直接将文本字符串或 .txt 文件转换为 PDF,并支持对页面布局、字体样式、页眉页脚等进行精细控制,全程无需安装 Office 软件,非常适合服务器环境和自动化任务。

安装所需库

可以通过 pip 从 PyPI 安装该库:

pip install spire-doc

安装完成后,即可在 Python 脚本中导入并使用。

使用 Python 将文本字符串转换为 PDF

在实际开发中,经常需要将动态生成的文本内容直接转换为 PDF,例如表单数据、接口返回结果或系统生成的说明信息。

实现思路

  1. 创建 Document 文档对象
  2. 向文档中添加一个节(Section)
  3. 在节中添加段落
  4. 向段落中插入文本并设置字体样式
  5. 将文档保存为 PDF

示例代码

from spire.doc import *

# 创建新的文档对象
document = Document()

# 添加一个节
section = document.AddSection()

# 设置页面边距(单位:磅)
section.PageSetup.Margins.All = 72

# 添加段落
paragraph = section.AddParagraph()

# 向段落中插入中文文本
text_range = paragraph.AppendText("这是一个使用 Python 将文本字符串转换为 PDF 的示例文档。")

# 设置中文字体和样式
text_range.CharacterFormat.FontName = "微软雅黑"
text_range.CharacterFormat.FontSize = 14

# 保存为 PDF 文件
document.SaveToFile("文本字符串转 PDF 示例.pdf", FileFormat.PDF)

# 关闭文档,释放资源
document.Close()

使用 Python 将 TXT 文本文件转换为 PDF

如果你已经有现成的 .txt 文件,例如系统日志、导出的数据文本或简单报告,可以直接加载并转换为 PDF,而无需逐行手动处理文本内容。

实现步骤

  1. 创建 Document 文档对象
  2. 加载 txt 文件内容
  3. 保存为 PDF 文件

示例代码

from spire.doc import *

# 创建文档对象
document = Document()

# 加载 TXT 文件
document.LoadFromFile("示例文本.txt", FileFormat.Txt)

# 保存为 PDF
document.SaveToFile("TXT 转 PDF 示例.pdf", FileFormat.PDF)

# 关闭文档
document.Close()

文本转 PDF 时自定义页面布局,提升 PDF 输出效果

默认生成的 PDF 使用纵向页面和标准页边距。在实际应用中,如果文档内容较多、行宽较大或用于横向展示(如表格、日志),可以通过自定义页面布局来提升阅读体验。

常见可调整页面布局

  • 页面大小(A4、Letter 等)
  • 页面方向(纵向 / 横向)
  • 页边距(上下左右)

示例代码

from spire.doc import *

# 创建文档
document = Document()

# 添加节
section = document.AddSection()

# 设置页面大小为 A4,横向显示
section.PageSetup.PageSize = PageSize.A4()
section.PageSetup.Orientation = PageOrientation.Landscape

# 设置页边距
section.PageSetup.Margins.Top = 50
section.PageSetup.Margins.Bottom = 50
section.PageSetup.Margins.Left = 60
section.PageSetup.Margins.Right = 60

# 添加正文内容
paragraph = section.AddParagraph()
paragraph.AppendText("本示例展示了如何自定义 PDF 的页面大小、方向和页边距," + "以获得更好的排版效果。").CharacterFormat.FontName = "微软雅黑"

# 保存为 PDF
document.SaveToFile("自定义页面布局示例.pdf", FileFormat.PDF)

# 关闭文档
document.Close()

文本转 PDF 时添加页眉、页脚和页码,让 PDF 更专业

在正式文档(如报告、对外材料、打印文件)中,页眉、页脚和页码几乎是必不可少的组成部分。 通过在生成 PDF 时自动添加这些元素,可以显著提升文档的专业度和可读性。

下面的示例展示了如何:

  • 在页眉中添加中文标题
  • 在页脚中插入自动页码(当前页 / 总页数)
  • 同时插入正文内容

示例代码

from spire.doc import *

# 创建文档
document = Document()

# 添加节
section = document.AddSection()
section.PageSetup.Margins.All = 40

# ===== 添加页眉 =====
header = section.HeadersFooters.Header
header_paragraph = header.AddParagraph()
header_text = header_paragraph.AppendText("季度销售数据分析报告")
header_text.CharacterFormat.FontName = "微软雅黑"
header_text.CharacterFormat.FontSize = 11
header_text.CharacterFormat.Italic = True
header_paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right

# ===== 添加页脚和页码 =====
footer = section.HeadersFooters.Footer
footer_paragraph = footer.AddParagraph()
footer_paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
footer_paragraph.AppendText("第 ")
footer_paragraph.AppendField("页码", FieldType.FieldPage)
footer_paragraph.AppendText(" 页 / 共 ")
footer_paragraph.AppendField("总页数", FieldType.FieldNumPages)
footer_paragraph.AppendText(" 页")

# ===== 添加正文 =====
content = section.AddParagraph()
content.AppendText("本 PDF 文档由 Python 自动生成,包含页眉、页脚和页码," + "适用于正式报告和打印输出。").CharacterFormat.FontName = "微软雅黑"

# 保存为 PDF
document.SaveToFile("带页眉页脚的 PDF 示例.pdf", FileFormat.PDF)

# 关闭文档
document.Close()

使用 Python 批量将多个 TXT 文本文件转换为 PDF

在真实业务场景中,文本转 PDF 往往不是处理单个文件,而是需要面对大量日志、批量报表或定期生成的文本数据。

此时,通过 Python 进行批量转换可以显著提高效率,并减少人工操作带来的风险。

示例代码

import os
from spire.doc import *

# 输入目录:存放 TXT 文件
input_folder = "text_files"

# 输出目录:存放生成的 PDF 文件
output_folder = "pdf_files"

# 如果输出目录不存在,则创建
os.makedirs(output_folder, exist_ok=True)

# 遍历输入目录中的所有文件
for filename in os.listdir(input_folder):
    # 仅处理 .txt 文件
    if filename.endswith(".txt"):
        try:
            # 创建文档对象
            document = Document()

            # 构建输入文件路径
            input_path = os.path.join(input_folder, filename)

            # 加载 TXT 文件
            document.LoadFromFile(input_path, FileFormat.Txt)

            # 构建输出 PDF 路径
            output_path = os.path.join(
                output_folder, filename.replace(".txt", ".pdf")
            )

            # 保存为 PDF
            document.SaveToFile(output_path, FileFormat.PDF)

            # 关闭文档
            document.Close()
            print(f"转换成功:{filename} → {output_path}")
        except Exception as e:
            print(f"转换失败:{filename},错误信息:{e}")

总结

在 Python 中将文本转换为 PDF 不仅实现简单,而且具备很强的实用性和扩展性。无论是从字符串生成 PDF、将 TXT 文件转换为 PDF,还是批量处理多个文本文件,你都可以灵活控制页面布局、字体样式以及页眉页脚等专业元素。

通过本文介绍的方法,你可以快速构建一套稳定、高效、可自动化的文本转 PDF 解决方案,轻松生成适合分享、打印和长期存档的高质量 PDF 文档。

目录

  1. Python 文本转 PDF 指南
  2. 为什么要将文本转换为 PDF?
  3. Python 文本转 PDF 的库选择
  4. 安装所需库
  5. 使用 Python 将文本字符串转换为 PDF
  6. 实现思路
  7. 示例代码
  8. 创建新的文档对象
  9. 添加一个节
  10. 设置页面边距(单位:磅)
  11. 添加段落
  12. 向段落中插入中文文本
  13. 设置中文字体和样式
  14. 保存为 PDF 文件
  15. 关闭文档,释放资源
  16. 使用 Python 将 TXT 文本文件转换为 PDF
  17. 实现步骤
  18. 示例代码
  19. 创建文档对象
  20. 加载 TXT 文件
  21. 保存为 PDF
  22. 关闭文档
  23. 文本转 PDF 时自定义页面布局,提升 PDF 输出效果
  24. 常见可调整页面布局
  25. 示例代码
  26. 创建文档
  27. 添加节
  28. 设置页面大小为 A4,横向显示
  29. 设置页边距
  30. 添加正文内容
  31. 保存为 PDF
  32. 关闭文档
  33. 文本转 PDF 时添加页眉、页脚和页码,让 PDF 更专业
  34. 示例代码
  35. 创建文档
  36. 添加节
  37. ===== 添加页眉 =====
  38. ===== 添加页脚和页码 =====
  39. ===== 添加正文 =====
  40. 保存为 PDF
  41. 关闭文档
  42. 使用 Python 批量将多个 TXT 文本文件转换为 PDF
  43. 示例代码
  44. 输入目录:存放 TXT 文件
  45. 输出目录:存放生成的 PDF 文件
  46. 如果输出目录不存在,则创建
  47. 遍历输入目录中的所有文件
  48. 总结

更多推荐文章

查看全部
  • LLaMA Factory 核心原理讲解
  • 从零搭建哪吒服务器探针 - 查看多端服务器状态
  • 通义万相 2.1 视频生成模型部署与架构解析
  • Docker部署OnlyOffice社区版,文档保存失败踩坑记录
  • Linux 信号处理:可重入函数原理与实战规范
  • 本地部署 AI 绘画:基于 Flux 模型的快速实践指南
  • 主流开源 RSS 阅读器精选:桌面与移动端最佳实践
  • Claude/GPT/Codex 中转站选择指南:价格、稳定性与避坑要点
  • Python 帧对象:执行模型与运行期状态解析
  • 前端 DOM 操作核心知识与实战解析
  • Rust 异步编程的错误处理艺术
  • AIGC 浪潮下图文内容社区数据指标体系构建
  • 云开发 Copilot:AI 赋能的低代码开发实践
  • 2025 前端技术复盘:框架收敛、AI 赋能与开发者生存指南
  • 大语言模型学习路线:从入门到实战
  • OpenWebUI 联网搜索实战:用 SearXNG 让本地大模型获取实时信息
  • C++ STL list 容器详解:使用与模拟实现
  • Python 基础语法入门(二):条件与循环语句
  • 昇腾 NPU 环境部署与推理测评 CodeLlama-7b-Python
  • 基于 Vue3+Nuxt3 的在线教育系统前端部署指南

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online