在 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 提供了 ISlide.Shapes.AppendShape(ShapeType shapeType, RectangleF rectangle) 方法用于添加各种形状,如矩形、三角形、心形、五角星、箭头等等;提供了 IShape.Fill.FillType、IShape.Fill.SolidColor.Color、IShape.ShapeStyle.LineColor.Color 来设置形状的填充类型、填充颜色以及边框颜色。
具体步骤如下:
- 创建 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载一个 PowerPoint 演示文稿。
- 通过 Presentation.Slides[index] 属性获取特定待操作的幻灯片。
- 通过 ISlide.Shapes.AppendShape(ShapeType shapeType, RectangleF rectangle) 来给当前幻灯片添加一个三角形,并通过 IShape.Fill.FillType 来设置三角形的填充类型,通过 IShape.Fill.SolidColor.Color 来设置三角形的填充颜色,通过 IShape.ShapeStyle.LineColor.Color 来设置三角形的边框线颜色。
- 重复上面这个步骤,为当前幻灯片继续添加椭圆、心形、五角星、矩形、箭头,并为它们设置填充类型、填充颜色以及边框线颜色。
- 使用 Presentation.SaveToFile() 方法保存结果演示文稿。
- Python
from spire.presentation.common import *
from spire.presentation import *
# 设置输出文件路径
outputFile = "output/AddShapes1.pptx"
# 创建一个新的演示文稿对象
presentation = Presentation()
# 设置背景图片文件路径
ImageFile = "input/bg.png"
# 创建一个矩形,覆盖整个幻灯片的大小
rect = RectangleF.FromLTRB(0, 0, presentation.SlideSize.Size.Width, presentation.SlideSize.Size.Height)
# 获取演示文稿中的第一个幻灯片
slide = presentation.Slides[0]
# 给第一张幻灯片设置背景图片
slide.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, ImageFile, rect)
# 设置第一个形状的填充颜色为花白色
slide.Shapes[0].Line.FillFormat.SolidFillColor.Color = Color.get_FloralWhite()
# 添加一个三角形形状
shape = slide.Shapes.AppendShape(ShapeType.Triangle, RectangleF.FromLTRB(115, 130, 215, 230))
# 设置三角形填充类型为纯色填充
shape.Fill.FillType = FillFormatType.Solid
# 设置三角形填充颜色为浅绿色
shape.Fill.SolidColor.Color = Color.get_LightGreen()
# 设置三角形线条颜色为白色
shape.ShapeStyle.LineColor.Color = Color.get_White()
# 添加一个椭圆形状
shape = slide.Shapes.AppendShape(ShapeType.Ellipse, RectangleF.FromLTRB(290, 130, 440, 230))
# 设置椭圆形填充类型为纯色填充
shape.Fill.FillType = FillFormatType.Solid
# 设置椭圆形填充颜色为浅天蓝色
shape.Fill.SolidColor.Color = Color.get_LightSkyBlue()
# 设置椭圆形线条颜色为白色
shape.ShapeStyle.LineColor.Color = Color.get_White()
# 添加一个心形形状
shape = slide.Shapes.AppendShape(ShapeType.Heart, RectangleF.FromLTRB(470, 130, 600, 230))
# 设置心形填充类型为纯色填充
shape.Fill.FillType = FillFormatType.Solid
# 设置心形填充颜色为红色
shape.Fill.SolidColor.Color = Color.get_Red()
# 设置心形线条颜色为浅灰色
shape.ShapeStyle.LineColor.Color = Color.get_LightGray()
# 添加一个五角星形状
shape = slide.Shapes.AppendShape(ShapeType.FivePointedStar, RectangleF.FromLTRB(90, 270, 240, 420))
# 设置五角星填充类型为渐变填充
shape.Fill.FillType = FillFormatType.Gradient
# 设置五角星填充颜色为黑色
shape.Fill.SolidColor.Color = Color.get_Black()
# 设置五角星线条颜色为白色
shape.ShapeStyle.LineColor.Color = Color.get_White()
# 添加一个矩形形状
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, RectangleF.FromLTRB(320, 290, 420, 410))
# 设置矩形填充类型为纯色填充
shape.Fill.FillType = FillFormatType.Solid
# 设置矩形填充颜色为粉红色
shape.Fill.SolidColor.Color = Color.get_Pink()
# 设置矩形线条颜色为浅灰色
shape.ShapeStyle.LineColor.Color = Color.get_LightGray()
# 添加一个向上弯曲的箭头形状
shape = slide.Shapes.AppendShape(ShapeType.BentUpArrow, RectangleF.FromLTRB(470, 300, 720, 400))
# 设置箭头填充类型为渐变填充
shape.Fill.FillType = FillFormatType.Gradient
# 设置箭头渐变填充的颜色从橄榄绿到粉蓝色
shape.Fill.Gradient.GradientStops.AppendByKnownColors(1, KnownColors.Olive)
shape.Fill.Gradient.GradientStops.AppendByKnownColors(0, KnownColors.PowderBlue)
# 设置箭头线条颜色为红色
shape.ShapeStyle.LineColor.Color = Color.get_Red()
# 保存演示文稿到指定的文件路径,并使用PPTX2010格式
presentation.SaveToFile(outputFile, FileFormat.Pptx2010)
# 释放演示文稿资源
presentation.Dispose()
在 PowerPoint 文档中移动形状
在 PowerPoint 中,插入形状后,往往还需要移动形状的位置、调整形状大小来实现页面布局或特定的效果,Spire.Presentation for Python 提供了 IShape.Height、IShape.Width 方法来设置形状的高、宽,提供了 IShape.Left、IShape.Top 方法来设置形状的左边距和上边距,具体步骤如下:
- 创建 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载一个 PowerPoint 演示文稿。
- 通过 Presentation.Slides[Index] 属性获取特定待操作的幻灯片。
- 通过 ISlide.Shapes[Index] 来获取待操作的形状,再通过 IShape.Height、IShape.Width 来设置形状的高、宽来改变形状大小,通过 IShape.Left、IShape.Top 来重新设置形状的左边距和上边距以实现移动形状的目标。
- 使用 Presentation.SaveToFile() 方法保存结果演示文稿。
- Python
from spire.presentation import *
# 定义输入文件路径,该文件是一个PPTX格式的模板文件
inputFile = "shape/ShapeTemplate.pptx"
# 定义输出文件路径,用于结果PPT文件
outputFile = "shape/ResetShapeSizeAndPosition1.pptx"
# 创建一个Presentation对象,用于操作PPT文件
ppt = Presentation()
# 从指定的输入文件中加载PPT内容
ppt.LoadFromFile(inputFile)
# 获取演示文稿中的第一个幻灯片
slide = ppt.Slides[0]
# 获取当前幻灯片的第一个形状
shape = slide.Shapes[0]
# 将形状的高度缩小为原来的一半
shape.Height = shape.Height * 0.5
# 将形状的宽度缩小为原来的一半
shape.Width = shape.Width * 0.5
# 将形状的左边距缩小为原来的一半
shape.Left = shape.Left * 0.5
# 将形状的上边距缩小为原来的一半
shape.Top = shape.Top * 0.5
# 将修改后的演示文稿保存到指定的输出文件中,使用Pptx2013格式
ppt.SaveToFile(outputFile, FileFormat.Pptx2013)
# 释放Presentation对象的资源
ppt.Dispose()
在 PowerPoint 文档中旋转形状
Spire.Presentation for Python 提供了 IShape.Rotation 为形状设置旋转角度,具体步骤如下:
- 创建 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载一个 PowerPoint 演示文稿。
- 通过 Presentation.Slides[index] 属性获取特定待操作的幻灯片。
- 通过 ISlide.Shapes[Index] 来获取待操作的形状,并通过 IShape.Rotation 属性设置形状旋转角度。
- 使用 Presentation.SaveToFile() 方法保存结果演示文稿。
- Python
from spire.presentation import *
# 定义输入文件路径,该文件是一个PPTX格式的演示文稿
inputFile = "shape/RotateShape1.pptx"
# 定义输出文件路径,用于保存修改后的演示文稿
outputFile = "shape/RotateShape_out11.pptx"
# 创建一个Presentation对象,用于操作PPT文件
ppt = Presentation()
# 从指定的输入文件中加载PPT内容
ppt.LoadFromFile(inputFile)
# 获取当前幻灯片的第一个形状
shape = ppt.Slides[0].Shapes[0]
# 检查该形状是否为IAutoShape类型
if isinstance(shape, IAutoShape):
# 如果是,则将其旋转角度设置为90度
shape.Rotation = 90
# 获取当前幻灯片的第二个形状
shape = ppt.Slides[0].Shapes[1]
# 检查该形状是否为IAutoShape类型
if isinstance(shape, IAutoShape):
# 如果是,则将其旋转角度设置为60度
shape.Rotation = 60
# 将修改后的演示文稿保存到指定的输出文件中,使用Pptx2010格式
ppt.SaveToFile(outputFile, FileFormat.Pptx2010)
# 释放Presentation对象的资源
ppt.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。