使用 Python 将 PowerPoint 转换为 Word 文档

在日常工作中,我们经常需要将 PowerPoint 演示文稿内容转换为 Word 文档,以便于:

  • 整理会议纪要:将幻灯片内容整理成文档便于分发和归档。
  • 制作培训材料:将演示文稿内容编辑为可打印文档。
  • 内容再利用:将幻灯片内容嵌入报告或其他文档中。

手动操作时,通常需要先将每页幻灯片截图或复制粘贴,非常繁琐。本文将介绍如何使用 Free Spire.Presentation for Python 和 Free Spire.PDF for Python,通过 Python 自动完成 PowerPoint 到 Word 的转换,并确保排版尽量保留。

更多技术干货资料:https://github.com/encode-studio-fe/natural_traffic/wiki/scan_material9

1. 安装依赖

复制代码
pip install spire.presentation.free spire.pdf.free

2. 将 PowerPoint 转换为 PDF

为了实现 Word 可编辑输出,我们先将 PPTX 文件转换为 PDF。这一步可以保证幻灯片的排版在 Word 中尽量保持一致。

复制代码
from spire.presentation import Presentation, FileFormat
import os

input_ppt = "Sample.pptx"
temp_pdf = "output/temp.pdf"

# 加载 PowerPoint 文件
presentation = Presentation()
presentation.LoadFromFile(input_ppt)

# 保存为 PDF
presentation.SaveToFile(temp_pdf, FileFormat.PDF)

关键步骤解析:

  • 创建 Presentation 对象:用于加载 PPT/PPTX 文件。
  • LoadFromFile():加载本地幻灯片文件。
  • SaveToFile() :将演示文稿保存为 PDF 格式,指定 FileFormat.PDF。

通过这一步,我们就得到了一个中间 PDF 文件,下一步可以将其转换为 Word。


3. 将 PDF 转换为 Word 文档

复制代码
from spire.pdf import PdfDocument, FileFormat as PdfFileFormat

output_docx = "output/output.docx"

# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile(temp_pdf)

# 保存为 Word 文档
pdf.SaveToFile(output_docx, PdfFileFormat.DOCX)

关键步骤解析:

  • PdfDocument 对象:用于操作 PDF 文件。
  • LoadFromFile():加载刚才生成的 PDF 文件。
  • SaveToFile():将 PDF 内容转换为 Word 格式(DOCX),尽量保持原有排版。

经过这一步,我们就完成了 PowerPoint 到 Word 的转换。

转换效果:


4. 删除临时 PDF 文件

为了保持文件夹整洁,可以在转换完成后删除中间生成的 PDF 文件。

复制代码
if os.path.exists(temp_pdf):
    os.remove(temp_pdf)

说明:

  • 使用 os.path.exists() 判断文件是否存在。
  • 使用 os.remove() 删除文件,避免占用空间。

5. 总结与扩展

通过本文的方法,我们实现了:

  • 全自动转换:无需手动复制粘贴幻灯片内容。
  • 保持排版:PDF 中间格式能较好地保留原 PPT 样式。
  • 适合批量处理:可在 Python 脚本中循环处理多个 PPT 文件。

(1)为什么使用 PDF 作为中间格式?

直接将 PPT 转 Word 会丢失部分排版或格式。通过 PDF 作为中间格式,可以最大程度保留幻灯片的视觉效果,同时兼容 Word 输出。

(2)可扩展场景

  • 批量转换 :结合 os.listdir() 遍历文件夹,实现一次性批量处理。
  • 自动命名:根据 PPT 文件名自动生成 Word 文件名。
  • 集成到业务流程:例如会议结束后自动生成 Word 纪要,方便分发和归档。

关键类与方法总结

类 / 方法 说明
Presentation 表示 PowerPoint 演示文稿对象
Presentation.LoadFromFile() 加载 PPT/PPTX 文件
Presentation.SaveToFile() 将 PPT 保存为指定格式(如 PDF)
PdfDocument 表示 PDF 文档对象
PdfDocument.LoadFromFile() 加载 PDF 文件
PdfDocument.SaveToFile() 将 PDF 保存为 Word(DOCX)或其他格式
os.path.exists() 判断文件是否存在
os.remove() 删除文件

总结

本文演示了如何使用 Spire.Presentation 与 Spire.PDF for Python 将 PowerPoint 演示文稿自动转换为 Word 文档。通过 PDF 中间格式,不仅保留了幻灯片的排版效果,还可以在 Python 脚本中实现批量处理,适合会议纪要整理、培训资料生成以及文档归档等多种业务场景。

掌握这些核心类和方法后,你可以轻松实现 PowerPoint 到 Word 的自动化转换,提高工作效率,减少重复操作。

更多技术干货资料,这里:https://github.com/encode-studio-fe/natural_traffic/wiki/scan_material9

相关推荐
旖旎夜光8 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
SL_staff8 小时前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
揽星河..8 小时前
【C语言】结构体
c语言·开发语言
孟陬8 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
GoGeekBaird8 小时前
别再给每个 AI 做自我介绍了:我做了一个「个人上下文」管理系统
后端·github·agent
2601_966949658 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
码事漫谈9 小时前
腾讯混元 Hy4 正式版发布了
后端
Mikko79 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
.Bryce.9 小时前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
SL_staff9 小时前
JVS-APS的7个刚性约束设计:从无限产能幻觉到可执行排产的工程实践
java·spring cloud·全栈