使用 Python 管理演示文稿中的 SmartArt 图形
Contents
[
Hide
]
创建 SmartArt 形状
Aspose.Slides for Python via .NET 允许您从头向幻灯片添加自定义 SmartArt 形状。该 API 简单易用。要向幻灯片添加 SmartArt 形状,请执行以下操作:
- 创建 Presentation 类的实例。
- 通过索引获取目标幻灯片。
- 添加 SmartArt 形状,指定其布局类型。
- 将修改后的演示文稿另存为 PPTX 文件。
import aspose.slides as slides
import aspose.slides.smartart as smartart
# 实例化 Presentation 类。
with slides.Presentation() as presentation:
# 访问演示文稿幻灯片。
slide = presentation.slides[0]
# 添加 SmartArt 形状。
smart_art = slide.shapes.add_smart_art(0, 0, 400, 400, smartart.SmartArtLayoutType.BASIC_BLOCK_LIST)
# 将演示文稿保存到磁盘。
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
访问 幻灯片上的 SmartArt 形状
下面的代码演示如何访问幻灯片上的 SmartArt 形状。示例遍历幻灯片上的每个形状,并检查其是否为 SmartArt 对象。
import aspose.slides as slides
import aspose.slides.smartart as smartart
# 加载演示文稿文件。
with slides.Presentation("SmartArt.pptx") as presentation:
# 遍历第一张幻灯片上的每个形状。
for shape in presentation.slides[0].shapes:
# 检查形状是否为 SmartArt 形状。
if isinstance(shape, smartart.SmartArt):
# 打印形状名称。
print("Shape name:", shape.name)
使用指定布局类型访问 SmartArt 形状
下面的示例展示如何访问具有指定布局类型的 SmartArt 形状。请注意,SmartArt 的布局类型不可更改——它是只读的,并在创建形状时设定。
- 创建 Presentation 实例并加载包含 SmartArt 形状的演示文稿。
- 通过索引获取第一张幻灯片的引用。
- 遍历第一张幻灯片上的所有形状。
- 检查该形状是否为 SmartArt 对象。
- 如果 SmartArt 形状的布局类型与所需匹配,则执行相应操作。
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation("SmartArt.pptx") as presentation:
# 遍历第一张幻灯片上的每个形状。
for shape in presentation.slides[0].shapes:
# 检查形状是否为 SmartArt 形状。
if isinstance(shape, smartart.SmartArt):
# 检查 SmartArt 布局类型。
if shape.layout == smartart.SmartArtLayoutType.BASIC_BLOCK_LIST:
print("Do something here...")
更改 SmartArt 形状样式
下面的示例展示如何定位 SmartArt 形状并更改其样式:
- 创建 Presentation 并加载包含 SmartArt 形状的文件。
- 通过索引获取第一张幻灯片的引用。
- 遍历第一张幻灯片上的每个形状。
- 查找具有指定样式的 SmartArt 形状。
- 将新样式分配给 SmartArt 形状。
- 保存演示文稿。
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation("SmartArt.pptx") as presentation:
# 遍历第一张幻灯片上的每个形状。
for shape in presentation.slides[0].shapes:
# 检查形状是否为 SmartArt 形状。
if isinstance(shape, smartart.SmartArt):
# 检查 SmartArt 样式。
if shape.quick_style == smartart.SmartArtQuickStyleType.SIMPLE_FILL:
# 更改 SmartArt 样式。
smart.quick_style = smartart.SmartArtQuickStyleType.CARTOON
# 保存演示文稿。
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
更改 SmartArt 形状的颜色样式
本示例展示如何更改 SmartArt 形状的颜色样式。示例代码定位具有指定颜色样式的 SmartArt 形状并对其进行更新。
- 创建 Presentation 类的实例并加载包含 SmartArt 形状的演示文稿。
- 通过索引获取第一张幻灯片的引用。
- 遍历第一张幻灯片上的每个形状。
- 检查该形状是否为 SmartArt 对象。
- 定位具有指定颜色样式的 SmartArt 形状。
- 为该 SmartArt 形状设置新的颜色样式。
- 保存演示文稿。
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation("SmartArt.pptx") as presentation:
# 遍历第一张幻灯片上的每个形状。
for shape in presentation.slides[0].shapes:
# 检查形状是否为 SmartArt 形状。
if isinstance(shape, smartart.SmartArt):
# 检查颜色类型。
if shape.color_style == smartart.SmartArtColorType.COLORED_FILL_ACCENT1:
# 更改颜色类型。
shape.color_style = smartart.SmartArtColorType.COLORFUL_ACCENT_COLORS
# 保存演示文稿。
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
常见问题
我可以将 SmartArt 作为单个对象进行动画处理吗?
是的。SmartArt 是一种形状,您可以通过动画 API(入口、退出、强调、动作路径等)应用标准动画,与其他形状的操作相同。
如果我不知道内部 ID,如何在幻灯片上找到特定的 SmartArt?
设置并使用备用文本(AltText),并通过该值搜索形状——这是定位目标形状的推荐方法。
我可以将 SmartArt 与其他形状分组吗?
是的。您可以将 SmartArt 与其他形状(图片、表格等)分组,然后操作该组。
如何获取特定 SmartArt 的图像(例如用于预览或报告)?
导出形状的缩略图/图像;库可以将单个形状渲染为光栅文件(PNG/JPG/TIFF)。
将整个演示文稿转换为 PDF 时,SmartArt 的外观会被保留吗?
是的。渲染引擎针对PDF 导出实现高保真度,并提供多种质量和兼容性选项。