给 powerpoint 添加动画能够增强演示的视觉吸引力,突出重点信息,并帮助观众更好地理解复杂概念。动画效果可以引导观众的注意力,使演示内容更加生动和动态,提升整个演示文稿的专业性和记忆点。在本文中,我们将演示如何使用 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
给 powerpoint 文档中形状和形状中文字添加动画
spire.presentation for python 提供了 ishape.slide.timeline.mainsequence.addeffect(ishape,animationeffecttype) 方法用于来给指定形状添加特定的动画效果;提供了 animationeffect.setstartendparagraph (int startparaindex, int endparaindex) 来将指定的动画效果设置给形状中指定段落。
具体步骤如下:
- 创建 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载一个 powerpoint 演示文稿。
- 通过 presentation.slides[index] 属性获取特定幻灯片(根据索引)。
- 通过 islide.shapes.appendshape(shapetype shapetype, rectanglef rectangle) 给当前幻灯片添加一个矩形,并设置矩形的大小与位置。
- 通过 ishape.fill.filetype 来设置矩形填充类型。
- 通过 ishape.fill.solidcolor.color 来设置矩形填充颜色。
- 通过 ishape.shapestyle.linecolor.color 来设置矩形边框线颜色。
- 通过 ishape.appendtextframe() 来给矩形添加段落。
- 通过 ishape.slide.timeline.mainsequence.addeffect(ishape,animationeffecttype) 给矩形添加淡出旋转动画效果以及浮动动画效果。
- 通过 animationeffect.setstartendparagraph(int startparaindex, int endparaindex) 给矩形中指定段落设置浮动动画效果。
- 使用 presentation.savetofile() 方法保存结果演示文稿。
- python
from spire.presentation.common import *
from spire.presentation import *
# 定义输出文件路径和名称
outputfile = "output.pptx"
# 创建一个新的演示文稿对象
ppt = presentation()
# 获取演示文稿中的第一个幻灯片
slide = ppt.slides[0]
# 在幻灯片上添加一个矩形形状,并设置其位置和大小
shape = slide.shapes.appendshape(shapetype.rectangle, rectanglef.fromltrb(100, 150, 300, 230))
# 设置形状的填充类型为纯色填充
shape.fill.filltype = fillformattype.solid
# 设置形状的填充颜色为浅蓝色
shape.fill.solidcolor.color = color.get_lightblue()
# 设置形状的线条颜色为白色
shape.shapestyle.linecolor.color = color.get_white()
# 在形状中添加文本框,并设置文本内容
shape.appendtextframe("动画形状")
# 为形状添加淡出旋转动画效果
shape.slide.timeline.mainsequence.addeffect(shape, animationeffecttype.fadedswivel)
# 为文本形状添加浮动动画效果
animation = shape.slide.timeline.mainsequence.addeffect(shape, animationeffecttype.float)
# 设置动画的起始段落和结束段落(这里设置为同一个段落)
animation.setstartendparagraphs(0, 0)
# 保存演示文稿到指定的文件路径,并使用pptx2013格式
ppt.savetofile(outputfile, fileformat.pptx2013)
# 释放演示文稿资源
ppt.dispose()
给 powerpoint 文档中形状添加退出动画
在 powerpoint 中,动画效果可分为四大类:进入、强调、退出和动作路径,其中,进入和退出包含一些共有的动画效果。当使用 spire.presentation 给形状添加共有动画效果时,这些效果默认将被应用为进入效果,接下来将介绍如何给形状应用退出动画效果。
具体步骤如下:
- 创建 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载一个 powerpoint 演示文稿。
- 通过 presentation.slides[index] 属性获取特定幻灯片(根据索引)。
- 通过 islide.shapes.appendshape(shapetype shapetype, rectanglef rectangle) 给当前幻灯片添加一个立方体,并设置矩形的大小与位置。
- 通过 ishape.fill.filetype 来设置立方体的填充类型。
- 通过 ishape.fill.solidcolor.color 来设置立方体填充颜色。
- 通过 ishape.shapestyle.linecolor.color 来设置立方体边框线颜色。
- 通过 ishape.appendtextframe() 来给立方体添加段落。
- 通过 ishape.slide.timeline.mainsequence.addeffect(ishape,animationeffecttype) 给立方体添加随机条形动画效果。
- 通过 animationeffect.presetclasstype 来将动画类型设置为“退出动画”。
- 使用 presentation.savetofile() 方法保存结果演示文稿。
- python
from spire.presentation.common import *
from spire.presentation import *
# 定义输出文件路径和名称,用于保存ppt文件
outputfile = "output.pptx"
# 创建一个新的powerpoint演示文稿对象
ppt = presentation()
# 获取演示文稿中的第一个幻灯片
slide = ppt.slides[0]
# 在幻灯片上添加一个立方体形状,并设置其位置和大小
shape = slide.shapes.appendshape(shapetype.cube, rectanglef.fromltrb(100, 150, 300, 230))
# 设置形状的填充类型为纯色填充
shape.fill.filltype = fillformattype.solid
# 设置形状的填充颜色为浅蓝色
shape.fill.solidcolor.color = color.get_lightblue()
# 设置形状的线条颜色为白色
shape.shapestyle.linecolor.color = color.get_white()
# 在形状中添加文本框,并设置文本内容为“退出动画”
shape.appendtextframe("退出动画")
# 为形状添加退出动画效果(随机条形动画)
effect = shape.slide.timeline.mainsequence.addeffect(shape, animationeffecttype.randombars)
# 设置动画效果的类型为退出动画
effect.presetclasstype = timenodepresetclasstype.exit
# 将演示文稿保存到指定的文件中,使用pptx 2013格式
ppt.savetofile(outputfile, fileformat.pptx2013)
# 释放演示文稿对象的资源
ppt.dispose()
获取 powerpoint 中动画相关信息
实现该功能需要遍历所有幻灯片,再遍历每张幻灯片中的动画效果,接着通过 animationeffect 对象下相关方法来获取动画效果相关信息。
具体步骤如下:
- 创建 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载一个 powerpoint 演示文稿。
- 遍历 powerpoint 文档的每张幻灯片,以及遍历每张幻灯片中每个动画。
- 通过 animationeffect.shapetarget.name 获取动画效果所作用的形状的名称。
- 通过 islide.slidenumber 来获取当前幻灯片的编号。
- 通过 animationeffect.animationeffecttype 来获取动画效果类型。
- 通过 animationeffect.timeing.duration 来获取动画效果持续时长。
- 通过 animationeffect.timeing.repeatcount 来获取动画效果重复次数。
- 通过 animationeffect.iteratetype 来获取动画文本效果。
- 将前面获取到的信息保存到本地 txt 文件中。
- 通过 ishape.appendtextframe() 来给立方体添加段落。
- python
from spire.presentation.common import *
from spire.presentation import *
# 输入文件路径,指向一个pptx格式的动画演示文稿
inputfile = "input.pptx"
# 输出文件路径,用于存储提取的动画效果信息
outputfile = "output.txt"
# 创建一个presentation对象,用于处理powerpoint文件
presentation = presentation()
# 从指定路径加载pptx文件到presentation对象中
presentation.loadfromfile(inputfile)
# 创建一个空列表,用于存储提取的动画效果信息
sb = []
# 遍历演示文稿中的每一张幻灯片
for slide in presentation.slides:
# 遍历幻灯片中的每一个动画效果
for effect in slide.timeline.mainsequence:
# 获取动画效果所作用的形状的名称
shapename = effect.shapetarget.name
sb.append("形状名称: " shapename)
# 获取当前幻灯片的编号
slidenumber = slide.slidenumber
sb.append("当前幻灯片编号: " str(slidenumber))
# 获取动画效果的类型
animationeffecttype = effect.animationeffecttype
sb.append("动画效果类型: " str(animationeffecttype))
# 获取动画持续时间
duration = effect.timing.duration
sb.append("动画效果持续时长: " str(duration))
# 获取动画重复次数
count = effect.timing.repeatcount
sb.append("动画效果重复次数: " str(count))
# 获取动画文本效果
iteratetype = effect.iteratetype
sb.append("动画文本效果: " str(iteratetype))
sb.append("\n")
# 打开输出文件,准备写入动画效果信息
fp = open(outputfile, "w")
# 遍历列表,将每个动画效果信息写入文件
for s in sb:
fp.write(s "\n")
# 关闭presentation对象,释放资源
presentation.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。