在演示文稿中,SmartArt 用于以视觉形式呈现信息。通常,演示者使用 SmartArt 使简单的文本更具吸引力。此外,它还用于创建流程图、流程、不同实体之间的关系等。在本文中,您将学习如何使用 Java 以编程方式在 PowerPoint 演示文稿中创建 SmartArt。
- 用于在 PowerPoint 中创建 SmartArt 的 Java API
- 在 PowerPoint 中创建 SmartArt 形状
- 在 PowerPoint 中访问 SmartArt 形状
- 更改 SmartArt 形状的样式
用于在 PowerPoint 中创建 SmartArt 的 Java API
为了在 PowerPoint 演示文稿中操作 SmartArt,我们将使用 Aspose.Slides for Java。它是一个功能强大的库,允许从头开始创建和操作 PowerPoint 和 OpenOffice 演示文稿。您可以使用以下 Maven 配置或 下载 其 JAR 安装 API。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.8</version>
<classifier>jdk16</classifier>
</dependency>
使用 Java 在 PowerPoint 中创建 SmartArt 形状
Aspose.Slides for Java 使得在演示文稿中创建 SmartArt 形状变得非常容易。让我们使用 Java 在 PowerPoint 演示文稿中从头开始创建一个简单的 SmartArt 形状。
- 首先,使用 Presentation 类创建一个新的演示文稿或加载现有的演示文稿。
- 获取所需幻灯片的引用到 ISlide 对象中。
- 使用 ISlide.getShapes().addSmartArt() 方法创建 SmartArt。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存更新的演示文稿。
以下代码示例演示如何在 PowerPoint 演示文稿中创建 SmartArt 形状。
// 创建演示文稿或加载现有演示文稿
Presentation pres = new Presentation();
try {
// 获取第一张幻灯片
ISlide slide = pres.getSlides().get_Item(0);
// 添加 SmartArt 形状
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
// 保存演示文稿
pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
以下屏幕截图显示了上述代码示例的输出。
在 PowerPoint 演示文稿中访问 SmartArt 形状
您还可以访问现有 PowerPoint 演示文稿中的 SmartArt 形状并动态更新它们。以下是使用 Java 在 PowerPoint 演示文稿中访问 SmartArt 形状的步骤。
- 首先,使用 Presentation 类创建一个新的演示文稿或加载一个现有的演示文稿。
- 然后,将所需幻灯片的引用获取到 ISlide 对象中。
- 使用 ISlide.getShapes() 集合循环遍历幻灯片中的形状。
- 如果形状的类型为 ISmartArt,则将其引用获取到 ISmartArt 对象中。
- 如果需要,使用 ISmartArt.getLayout() 过滤特定布局的 SmartArt 形状。
以下代码示例演示如何访问 PowerPoint 演示文稿中的 SmartArt 形状。
// 加载演示文稿
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// 遍历第一张幻灯片中的每个形状
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// 检查形状是否为 SmartArt 类型
if (shape instanceof ISmartArt)
{
// 将形状转换为 SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// 检查 SmartArt 布局
if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
{
System.out.println("Do some thing here....");
}
}
}
} finally {
if (pres != null) pres.dispose();
}
使用 Java 更改 SmartArt 形状的样式
您还可以使用 Aspose.Slides 修改 SmartArt 形状的样式。以下步骤演示如何访问 PowerPoint 演示文稿中的 SmartArt 形状并使用 Java 更改其样式。
- 首先,使用 Presentation 类创建一个新的演示文稿或加载一个现有的演示文稿。
- 然后,将所需幻灯片的引用获取到 ISlide 对象中。
- 使用 ISlide.getShapes() 集合循环遍历幻灯片中的形状。
- 如果形状的类型为 ISmartArt,则将其引用获取到 ISmartArt 对象中。
- 更改所需的样式,即 ColorStyle、QuickStyle 等。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存更新的演示文稿。
以下代码示例演示如何更改 PowerPoint 演示文稿中 SmartArt 形状的样式。
// 加载演示文稿
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// 获取第一张幻灯片
ISlide slide = pres.getSlides().get_Item(0);
// 遍历第一张幻灯片中的每个形状
for (IShape shape : slide.getShapes())
{
// 检查形状是否为 SmartArt 类型
if (shape instanceof ISmartArt)
{
// 将形状转换为 SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// 检查 SmartArt 风格
if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
// 更改 SmartArt 样式
smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
}
// 检查 SmartArt 颜色类型
if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
// 更改 SmartArt 颜色类型
smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
}
}
}
// 保存演示文稿
pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
获取免费 API 许可证
通过获得免费的临时许可证,使用 Aspose.Slides for Java,不受评估限制。
结论
在本文中,您学习了如何使用 Java 在 PowerPoint 演示文稿中创建 SmartArt。此外,您还了解了如何访问 SmartArt 形状并以编程方式更改其样式。您可以浏览 文档 以了解有关 Aspose.Slides for Java 的更多信息。此外,您可以通过我们的 论坛 提问。