拆分 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 天的临时许可证。