PowerPoint 演示文稿中使用了各种类型的图表,以使内容更加详尽。这些图表由不同的形状组成,例如椭圆、线条、矩形和连接器。在本文中,您将学习如何在 Python 中以编程方式在 PowerPoint 幻灯片中添加、克隆和删除形状。
- 用于处理 PowerPoint 形状的 Python 库
- PowerPoint 形状的类型
- 将形状添加到 PowerPoint 幻灯片
- 在 PowerPoint 中向形状添加连接线
- 在 PowerPoint 幻灯片中克隆形状
- 从 PowerPoint 幻灯片中删除形状
用于处理 PowerPoint 形状的 Python 库
Aspose.Slides for Python via .NET 旨在从 Python 应用程序中创建和操作 PowerPoint 演示文稿。我们将使用这个库来处理 PowerPoint 幻灯片中的形状。您可以使用以下 pip 命令从 PyPI 安装它。
> pip install aspose.slides
PowerPoint 中的形状类型
您可以使用 Aspose.Slides for Python 在 PowerPoint 演示文稿中创建各种形状。最常用的形状包括:
在 Python 中将形状添加到 PowerPoint 幻灯片
要添加任何形状,包括椭圆、直线、矩形,可以使用 addautoshape(ShapeType, Single, Single, Single, Single) 方法,您可以将形状的类型和其他必要的参数传递给该方法。 ShapeType 枚举用于指定形状的类型。以下是在 Python 中将形状添加到 PowerPoint 幻灯片的步骤。
- 使用 Presentation 类创建演示文稿或加载现有演示文稿。
- 从 Presentation.slides 集合中获取所需幻灯片的引用。
- 使用 addautoshape(ShapeType, Single, Single, Single, Single) 方法添加椭圆(或任何其他形状)。
- 使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何在 Python 中将形状添加到 PowerPoint 幻灯片。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建一个新的演示文稿
with slides.Presentation() as pres:
# 获取第一张幻灯片
sld = pres.slides[0]
# 添加椭圆类型的自动形状
shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)
# 对椭圆形状应用一些格式
shp.fill_format.fill_type = slides.FillType.SOLID
shp.fill_format.solid_fill_color.color = drawing.Color.pink
# 对 Ellipse 行应用一些格式
shp.line_format.fill_format.fill_type = slides.FillType.SOLID
shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
shp.line_format.width = 5
# 将 PPTX 文件保存到磁盘
pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)
以下是我们使用上面的代码示例添加的椭圆。
在 Python 中使用连接器连接 PowerPoint 形状
在图表中,不同的形状使用称为连接器的线相互连接。连接器可以是直线或曲线。让我们看看如何在 Python 中的两个 PowerPoint 形状之间添加连接器。
- 首先,创建一个 Presentation 类的实例来创建或加载演示文稿。
- 然后,使用 Presentation.slides 集合获取幻灯片的引用。
- 就像您在上一节中添加的一样添加两个形状并获取它们的参考。
- 使用 addconnector(ShapeType, Single, Single, Single, Single) 方法创建连接器。
- 使用 Connector.startshapeconnectedto 和 Connector.endshapeconnectedto 属性连接形状。
- 调用 Connector.reroute() 方法创建最短的自动连接路径。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何在 Python 中连接 PowerPoint 幻灯片中的形状。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿
with slides.Presentation() as presentation:
# 访问选定幻灯片的形状集合
shapes = presentation.slides[0].shapes
# 添加椭圆
ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)
# 添加自动形状矩形
rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)
# 添加连接器以连接形状
connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)
# 使用连接器连接形状
connector.start_shape_connected_to = ellipse
connector.end_shape_connected_to = rectangle
# 调用 reroute 设置形状之间的自动最短路径
connector.reroute()
# 保存演示文稿
presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)
以下是使用连接器连接形状后的演示文稿屏幕截图。
在 Python 中克隆 PowerPoint 形状
有时,您选择克隆形状而不是创建新形状。为此,Aspose.Slides 支持形状克隆。以下是使用 Python 在 PowerPoint 中克隆形状的步骤。
- 首先,使用 Presentation 类加载演示文件。
- 从 Presentation.slides 集合中获取幻灯片的引用。
- 从 ISlide.shapes 集合访问源和目标幻灯片形状。
- 使用 addclone() 方法将源幻灯片形状集合中的形状克隆到目标幻灯片。
- 最后,保存更新的演示文件。
以下代码示例演示如何在 Python 中克隆 PowerPoint 幻灯片中的形状。
import aspose.slides as slides
# 加载演示文稿
with slides.Presentation("add-ellipse.pptx") as presentation:
# 访问源幻灯片的形状
sourceShapes = presentation.slides[0].shapes
# 添加新的空白幻灯片
blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
destSlide = presentation.slides.add_empty_slide(blankLayout)
# 访问目标幻灯片的形状
destShapes = destSlide.shapes
# 克隆形状
destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
destShapes.add_clone(sourceShapes[0])
destShapes.insert_clone(0, sourceShapes[0], 50, 150)
# 保存存档
presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)
在 Python 中从 PowerPoint 幻灯片中删除形状
您还可以按照以下步骤从 PowerPoint 演示文稿中删除形状。
- 创建 Presentation 类的实例以加载 PPT/PPTX 文件。
- 从 Presentation.slides 集合中访问所需的幻灯片。
- 使用 IShape.alternativetext 属性过滤具有特定文本的所需形状。
- 使用 ISlide.shapes.remove(IShape) 方法删除形状。
- 最后,保存更新的演示文件。
以下代码示例演示如何在 Python 中从 PowerPoint 幻灯片中删除形状。
# 加载演示文稿
with slides.Presentation("add-ellipse.pptx") as presentation:
# 获取第一张幻灯片
sld = presentation.slides[0]
alttext = "User Defined"
# 循环遍历形状
for i in range(len(sld.shapes)):
# 通过替代文本查找形状
ashp = sld.shapes[0]
if ashp.alternative_text == alttext:
sld.shapes.remove(ashp)
# 保存存档
presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)
获得免费许可证
您可以获得免费的临时许可证 使用 Aspose.Slides for Python,而不受评估限制。
结论
MS PowerPoint 支持一系列形状来创建不同类型的图表,例如流程图。在本文中,我们介绍了如何创建椭圆、矩形等 PowerPoint 形状,并使用 Python 中的连接器连接它们。此外,您还学习了如何以编程方式克隆和删除 PowerPoint 幻灯片中的形状。您可以使用 文档 探索更多关于 Aspose.Slides for Python 的信息。此外,您可以随时通过我们的 论坛 告诉我们您的疑问。