当前位置: 首页 > article >正文

python办公自动化:使用`Python-PPTX` 应用动画效果

动画效果在演示文稿中用于引导观众的注意力、增强视觉吸引力以及突出重要内容。Python-PPTX库允许您在幻灯片中为形状、文本和媒体文件添加各种动画效果。本节将详细介绍如何使用Python-PPTX库来添加和自定义动画效果。

1 基本动画类型

在Python-PPTX中,常见的动画类型有四种:进入动画、退出动画、强调动画和路径动画。每种动画类型都有多种预设效果,如淡入、放大、旋转等。

以下代码示例展示了如何为幻灯片中的形状添加一个简单的进入动画:

from pptx import Presentation
from pptx.util import Inches
from pptx.enum.shapes import MSO_SHAPE
from pptx.oxml.xmlchemy import OxmlElement
from pptx.enum.shapes import MSO_ANIMATION

# 创建演示文稿对象
prs = Presentation()

# 添加一个空白幻灯片
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)

# 添加形状(例如矩形)
left = Inches(2)
top = Inches(2)
width = Inches(2)
height = Inches(1)
shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
shape.text = "Hello, Animation!"

# 创建动画效果
sp = shape._element
animation = OxmlElement('p:anim')
animation.set('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main')
animation.set('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main')
animation.set('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships')
animation.set('type', 'entr')

sp.append(animation)

# 保存演示文稿
prs.save('animated_presentation.pptx')

在上面的代码中:

  • add_shape()方法用于在幻灯片中添加一个矩形形状。
  • 通过创建一个OxmlElement元素,定义动画效果类型和相关参数,并将其附加到形状对象的XML元素中。
2 自定义动画参数

每种动画效果都可以通过一组参数进行自定义,如持续时间、延迟时间、开始条件等。以下示例展示了如何设置动画的持续时间和延迟时间:

from pptx.oxml.ns import nsdecls
from pptx.oxml import parse_xml

# 设置动画效果的持续时间和延迟时间
animation.set('dur', '2000')  # 持续时间设置为2000毫秒(2秒)
animation.set('delay', '1000')  # 延迟时间设置为1000毫秒(1秒)

在以上代码中:

  • dur属性设置动画的持续时间,以毫秒为单位。
  • delay属性设置动画开始前的延迟时间,以毫秒为单位。
3 动画路径效果

路径动画是指对象沿着特定路径移动的动画效果。您可以使用Python-PPTX库为形状添加路径动画,例如从左向右移动的效果。

# 添加路径动画效果
motion_path = OxmlElement('p:animMotion')
motion_path.set('path', 'M 0 0 L 10000 0')  # 设置从左到右的直线路径
motion_path.set('origin', 'layout')

animation.append(motion_path)

在这段代码中:

  • animMotion元素用于定义路径动画效果。
  • path属性使用SVG路径数据来定义形状的移动轨迹,这里设置为从左到右的直线路径。
  • origin属性设置动画的起点,可以是layoutcontent
4 应用多个动画效果

Python-PPTX支持在同一对象上应用多个动画效果,以创建复杂的动画序列。您可以通过将多个OxmlElement对象附加到形状元素来实现这一点。

# 添加第一个动画效果
entrance_anim = OxmlElement('p:anim')
entrance_anim.set('type', 'entr')
sp.append(entrance_anim)

# 添加第二个动画效果
emphasis_anim = OxmlElement('p:anim')
emphasis_anim.set('type', 'emph')
emphasis_anim.set('bldLvl', 'para')
sp.append(emphasis_anim)

在以上代码中:

  • anim元素用于定义不同类型的动画效果,这里分别为进入动画(entr)和强调动画(emph)。
  • 通过添加多个动画元素到形状对象,实现多个动画效果的叠加。
5 控制动画触发方式

动画的触发方式决定了动画效果何时开始,通常可以设置为“单击时”、“与上一动画一起”或“在上一动画之后”。

# 设置动画触发方式
entrance_anim.set('trigger', 'onClick')  # 设置为单击时触发
emphasis_anim.set('trigger', 'afterPrevious')  # 设置为在上一动画之后触发

在这段代码中:

  • trigger属性用于控制动画的触发方式。onClick表示单击时触发动画,afterPrevious表示在上一动画结束后自动触发。

在本节中,介绍了如何在Python-PPTX中为幻灯片中的形状、文本和媒体添加动画效果。


http://www.kler.cn/news/290745.html

相关文章:

  • 【Python】数据可视化之核密度
  • 监控MySQL数据恢复策略性能:深入指南
  • 【专题】2024年中国游戏出海洞察报告合集PDF分享(附原数据表)
  • ubuntu20.04(wsl2)测试 arcface 人脸识别(计算特征向量)
  • chapter01 Java语言概述 知识点Note
  • hadoop强制退出安全模式命令
  • 深入解析Spring Boot中的`@Transactional`注解
  • 学习之SQL语句DQL(数据库操作语言)之多表查询(内外连接,自连接,子查询)
  • web渗透:SSRF漏洞
  • Xinstall引领免邀请码下载新潮流,便捷又安全
  • 性能测试⼯具-——JMeter
  • 基于Java+SpringBoot+Vue+MySQL的地方美食分享网站
  • RDD、DataFrame、DataSet(Spark)
  • 深度学习(七)-计算机视觉基础
  • 0、Typescript学习
  • 【重学 MySQL】七、MySQL的登录
  • HTTPS理论(SSL/TLS)
  • 全面指南:在MySQL中实现数据备份的策略规划
  • NLP从零开始------17.文本中阶处理之序列到序列模型(2)
  • Draw.io for Mac/Win:免费且强大的流程图绘制工具
  • 数据库和MySQL
  • 网络协议--HTTP 和 HTTPS 的区别
  • 设计模式 —— 单例模式
  • 惠中科技PV-Wiper全自动光伏组件清洁系统:智能清洁赋能光伏产业
  • 日系编曲:日系钢琴写作思路 双手思维 双手编写思路 双手合并 琶音 刮奏 颤音 震音
  • 点云帧间位姿矩阵的预测和误差计算
  • [Meachines] [Medium] Bitlab 标签自动填充登录+GitLab+Docker横向+Postgresql+逆向工程
  • Spring AOP(下)原理
  • JMeter 接口自动化测试:以搜索功能为例的实现思路详解
  • vue + Lodop 制作可视化设计页面 实现打印设计功能(三)