在 Python via Java 中的组演示形状

概述

本文说明了如何在 Aspose.Slides 中使用组形状。它展示了如何向幻灯片添加组形状、在组内放置形状以及保存更新后的演示文稿。文章还演示了如何访问存储在组中的形状并使用getAlternativeText读取它们的备用文本。此外,本文还简要介绍了相关的组形状功能,例如嵌套组、Z 顺序和锁定选项。

添加组形状

Aspose.Slides 支持在幻灯片上使用组形状。此功能帮助开发者创建更丰富的演示文稿。Aspose.Slides for Python via Java 支持添加和访问组形状。您可以向组形状中填充形状或访问其属性。要使用 Aspose.Slides for Python via Java 将组形状添加到幻灯片:

  1. 创建一个 Presentation 类的实例。
  2. 按索引获取幻灯片的引用。
  3. 向幻灯片添加组形状。
  4. 向组形状中添加形状。
  5. 将修改后的演示文稿保存为 PPTX 文件。

下面的示例向幻灯片添加了一个组形状:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import NullableBool, Presentation, SaveFormat, ShapeFrame, ShapeType

# 实例化 Presentation 类。
presentation = Presentation()
try:
    # 获取第一张幻灯片。
    slide = presentation.getSlides().get_Item(0)

    # 访问幻灯片的形状集合。
    slide_shapes = slide.getShapes()

    # 向幻灯片添加组形状。
    group_shape = slide_shapes.addGroupShape()

    # 在组形状内部添加形状。
    group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 300, 100, 100, 100)
    group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 500, 100, 100, 100)
    group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 300, 300, 100, 100)
    group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 500, 300, 100, 100)

    # 设置组形状的帧。
    group_frame = ShapeFrame(100, 300, 500, 40, NullableBool.False_, NullableBool.False_, 0)
    group_shape.setFrame(group_frame)

    # 将 PPTX 文件写入磁盘。
    presentation.save("GroupShape.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

访问备用文本

本节展示了如何访问幻灯片上组内形状的备用文本。要使用 Aspose.Slides for Python via Java 访问此文本:

  1. 实例化表示 PPTX 文件的 Presentation 类。
  2. 按索引获取幻灯片的引用。
  3. 访问幻灯片的形状集合。
  4. 访问组形状。
  5. 使用getAlternativeText读取其形状的备用文本。

下面的示例访问组内形状的备用文本:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import GroupShape, Presentation

# 实例化表示 PPTX 文件的 Presentation 类。
presentation = Presentation("AltText.pptx")
try:
    # 获取第一张幻灯片。
    slide = presentation.getSlides().get_Item(0)

    for i in range(slide.getShapes().size()):
        # 访问幻灯片的形状集合中的形状。
        shape = slide.getShapes().get_Item(i)

        if isinstance(shape, GroupShape):
            # 访问组内的形状。
            for j in range(shape.getShapes().size()):
                child_shape = shape.getShapes().get_Item(j)

                # 读取备用文本。
                print(child_shape.getAlternativeText())
finally:
    presentation.dispose()

常见问题

是否支持嵌套分组(组内的组)?

是的。GroupShape 具有 getParentGroup 方法,表明支持层级结构:一个组可以是另一个组的子组。

如何控制组相对于幻灯片上其他对象的 Z 顺序?

使用 GroupShape 对象的 getZOrderPosition 方法检查其在显示堆栈中的位置。

我可以阻止移动、编辑或取消分组吗?

可以。组的锁定通过 getGroupShapeLock 暴露,您可以限制对该对象的操作。