在 Python via Java 中的组演示形状
Contents
[
Hide
]
概述
本文说明了如何在 Aspose.Slides 中使用组形状。它展示了如何向幻灯片添加组形状、在组内放置形状以及保存更新后的演示文稿。文章还演示了如何访问存储在组中的形状并使用getAlternativeText读取它们的备用文本。此外,本文还简要介绍了相关的组形状功能,例如嵌套组、Z 顺序和锁定选项。
添加组形状
Aspose.Slides 支持在幻灯片上使用组形状。此功能帮助开发者创建更丰富的演示文稿。Aspose.Slides for Python via Java 支持添加和访问组形状。您可以向组形状中填充形状或访问其属性。要使用 Aspose.Slides for Python via Java 将组形状添加到幻灯片:
- 创建一个 Presentation 类的实例。
- 按索引获取幻灯片的引用。
- 向幻灯片添加组形状。
- 向组形状中添加形状。
- 将修改后的演示文稿保存为 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 访问此文本:
- 实例化表示 PPTX 文件的 Presentation 类。
- 按索引获取幻灯片的引用。
- 访问幻灯片的形状集合。
- 访问组形状。
- 使用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 暴露,您可以限制对该对象的操作。