拆分 PPT 的好处在于能够将复杂信息细分,使观众更易于消化理解。利用拆分,可将主题有序地分布在多张幻灯片上,有助于观众集中注意力,并记住每个部分的核心内容。此外,拆分的 PPT 通常看起来更加清晰和专业,能够更好地吸引观众,提高演讲的整体效果。在本文中,我们将演示如何使用 Spire.Presentation for Python 在 Python 拆分 PowerPoint 文档,包括按每一张幻灯片来拆分或按指定幻灯片页码范围来拆分。
安装 Spire.Presentation for Python
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Presentation for Python
按每一张幻灯片来拆分
使用 Spire.Presentation for Python 来把 PowerPoint 文档中每一张幻灯片都单独保存到一个新的文档中,需要遍历原始文档的每一页,然后把遍历到的当前幻灯片添加到新的 Presentation 对象中,并保存,具体步骤如下:
- 创建 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法来加载待操作的 PowerPoint 演示文稿。
- 循环遍历 PowerPoint 文档中每一张幻灯片,在循环内部新建一个 Presentation 类的对象,并通过 Presentation.Slides.RemoveAt(Index) 方法来移除新 Presentation 中默认空白页,再通过 Presentation.Slides.AppendBySlide(ISlide slide) 方法将当前遍历到的幻灯片添加到新的 Presentation 对象中,最后再使用 Presentation.SaveToFile() 保存这个新的 Presentation 到指定路径下。
- Python
from spire.presentation import *
# 定义输入文件路径,即要拆分的PPT模板文件
inputFile = "signature/InputTemplate.pptx"
# 定义输出文件夹路径,用于存放拆分后的PPT文件
outputFolder = "signature/output"
# 创建一个Presentation对象,用于操作PPT文件
ppt = Presentation()
# 从指定路径加载PPT文件到Presentation对象中
ppt.LoadFromFile(inputFile)
# 遍历PPT文件中的每一张幻灯片
for i, slide in enumerate(ppt.Slides):
# 创建一个新的Presentation对象,用于存储拆分后的幻灯片
newppt = Presentation()
# 移除新Presentation对象中的默认空白幻灯片
newppt.Slides.RemoveAt(0)
# 将当前遍历到的幻灯片添加到新的Presentation对象中
newppt.Slides.AppendBySlide(slide)
# 生成拆分后的文件名,包括输出文件夹路径和序号
result = outputFolder + "//" + "SplitPPT-" + str(i) + ".pptx"
# 将新的Presentation对象保存为PPTX格式的文件
newppt.SaveToFile(result, FileFormat.Pptx2010)
# 释放newppt对象的资源
newppt.Dispose()
# 释放原始ppt对象的资源
ppt.Dispose()
按指定幻灯片页码范围来拆分
在拆分 PowerPoint 文档时,更多的场景需要我们按指定幻灯片页码范围来拆分,使用 Spire.Presentation for Python 来实现这一目标的具体步骤如下:
- 创建 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载一个 PowerPoint 演示文稿。
- 新建一个 Presentation 类的对象,并通过 Presentation.Slides.RemoveAt(Index) 方法来移除新 Presentation 中默认空白页。
- 通过循环将原始 PowerPoint 文档中前2页使用 Presentation.Slides.AppendBySlide(ISlide slide) 方法添加到新的 Presentation 对象中,并使用 Presentation.SaveToFile() 保存这个包含原始文档第1、2张幻灯片的演示文稿到指定路径下。
- 再新建一个 Presentation 类的对象,同样使用 Presentation.Slides.RemoveAt(Index) 方法来移除新 Presentation 中默认空白页,并通过 Presentation.Slides.AppendBySlide(ISlide slide) 将原始文档的第三页添加到新 Presentation 对象中,最后 Presentation.SaveToFile() 保存这个包含原始文档第3张幻灯片的演示文稿到指定路径下。
- Python
from spire.presentation import *
# 定义输入文件路径,即要处理的PPT模板文件
inputFile = "signature/InputTemplate.pptx"
# 定义输出文件夹路径,用于存放分割后的PPT文件
outputFolder = "signature/output1"
# 创建一个空的Presentation对象,用于加载和操作PPT文件
ppt = Presentation()
# 从指定路径加载PPT模板文件到Presentation对象中
ppt.LoadFromFile(inputFile)
# 创建一个新的Presentation对象,用于存储分割后的第一部分幻灯片
ppt1 = Presentation()
# 移除新Presentation对象中的默认空白幻灯片
ppt1.Slides.RemoveAt(0)
# 循环两次,将原Presentation对象的前两个幻灯片添加到新的Presentation对象中
for i in range(2):
ppt1.Slides.AppendBySlide(ppt.Slides[i])
# 拼接输出文件的完整路径,并保存第一部分幻灯片到该路径下的SplitPPT1.pptx文件中
result = outputFolder + "//" + "SplitPPT1.pptx"
ppt1.SaveToFile(result, FileFormat.Pptx2010)
# 创建一个新的Presentation对象,用于存储分割后的第二部分幻灯片
ppt2 = Presentation()
# 移除新Presentation对象中的默认空白幻灯片
ppt2.Slides.RemoveAt(0)
# 将原Presentation对象的第三个幻灯片添加到新的Presentation对象中
ppt2.Slides.AppendBySlide(ppt.Slides[2])
# 拼接输出文件的完整路径,并保存第二部分幻灯片到该路径下的SplitPPT2.pptx文件中
result = outputFolder + "//" + "SplitPPT2.pptx"
ppt2.SaveToFile(result, FileFormat.Pptx2010)
# 释放所有Presentation对象占用的资源
ppt.Dispose()
ppt1.Dispose()
ppt2.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。