PowerPoint 演示文稿中的形状用于详细说明特定点或创建图表(例如流程图等)。此外,包含形状使演示文稿更具吸引力。因此,PowerPoint 提供了多种形状,如直线、椭圆、矩形等。在本文中,您将学习如何在 PowerPoint 演示文稿中自动处理形状。特别是,本文将介绍如何使用 Java 在 PowerPoint 演示文稿中添加、连接、克隆或删除形状。
- 用于处理 PowerPoint 形状的 Java API
- PowerPoint 形状的类型
- 将形状添加到 PowerPoint 幻灯片
- 向 PowerPoint 幻灯片中的形状添加连接线
- 在 PowerPoint 幻灯片中克隆形状
- 从 PowerPoint 幻灯片中删除形状
- 获取免费 API 许可证
用于处理 PowerPoint 形状的 Java API
为了使用 PowerPoint 形状,我们将使用 Aspose.Slides for Java。它是一个功能强大的 Java API,可让您无缝操作 PowerPoint 演示文稿。特别是,API 允许您创建、修改、读取和转换演示文档。您可以 下载 API 或使用以下 Maven 配置安装它。
<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.3</version>
<classifier>jdk16</classifier>
</dependency>
PowerPoint 形状的类型
PowerPoint 支持您可以添加到演示幻灯片的各种形状。因此,Aspose.Slides for Java 支持以下形状类型:
在 Java 中为 PowerPoint 幻灯片添加形状
Aspose.Slides for Java 提供 ShapeType 类来指定要添加的形状类型。以下是使用 Java 在 PowerPoint 演示文稿中添加特定形状的步骤。
- 首先,创建 Presentation 类的实例以创建新的或加载现有的 PowerPoint 演示文稿。
- 将幻灯片的引用获取到 ISlide 对象中。
- 使用 ISlide.getShapes().addAutoShape(ShapeType.Ellipse, float, float, float, float) 方法添加形状。
- 最后,使用 Presentation.save(String, SaveFormat.Pptx) 方法保存演示文稿。
以下代码示例演示如何使用 Java 将形状添加到 PowerPoint 演示文稿。
// 实例化表示 PPTX 的 Presentation 类
Presentation pres = new Presentation();
// 获取第一张幻灯片
ISlide sld = pres.getSlides().get_Item(0);
// 添加椭圆类型的自选图形
sld.getShapes().addAutoShape(ShapeType.Ellipse, 100, 150, 150, 100);
// 将 PPTX 文件写入磁盘
pres.save("add_shape.pptx", SaveFormat.Pptx);
以下是执行此代码后您将获得的输出。
使用 Java 在 PowerPoint 形状之间添加连接器
连接器是用于连接两个形状的线。此外,连接器可以是直线或曲线。以下是在两个 PowerPoint 形状之间添加连接器的步骤。
- 首先,创建一个 Presentation 类的实例来加载演示文稿。
- 使用 Presentation.getSlides().getItem(0).getShapes() 方法将形状集合到 IShapeCollection 对象中。
- 使用 IShapeCollection.addAutoShape(ShapeType.Ellipse, float, float, float, float) 方法添加两个形状,并在 IAutoShape 对象中获取它们的引用。
- 使用 IShapeCollection.addConnector(ShapeType.BentConnector2, float, float, float, float) 方法创建一个连接器,并将其引用获取到 IConnector 对象中。
- 使用 IConnector.setStartShapeConnectedTo(IAutoShape) 和 IConnector.setEndShapeConnectedTo(IAutoShape) 方法连接形状。
- 最后,使用 Presentation.save(String, SaveFormat.Pptx) 方法保存演示文稿。
以下代码示例演示如何使用 Java 在 PowerPoint 中的两个形状之间添加连接器。
// 实例化表示 PPTX 文件的 Presentation 类
Presentation input = new Presentation();
// 访问选定幻灯片的形状集合
IShapeCollection shapes = input.getSlides().get_Item(0).getShapes();
// 添加自定形椭圆
IAutoShape ellipse = shapes.addAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);
// 添加自定形矩形
IAutoShape rectangle = shapes.addAutoShape(ShapeType.Rectangle, 100, 300, 100, 100);
// 将连接器形状添加到幻灯片形状集合
IConnector connector = shapes.addConnector(ShapeType.BentConnector2, 0, 0, 10, 10);
// 将形状连接到连接器
connector.setStartShapeConnectedTo(ellipse);
connector.setEndShapeConnectedTo(rectangle);
connector.reroute();
// 保存演示文稿
input.save("connect_shape.pptx", SaveFormat.Pptx);
以下是连接形状后的 PowerPoint 演示文稿的屏幕截图。
使用 Java 克隆 PowerPoint 形状
您还可以克隆 PowerPoint 形状以创建其副本。以下是执行此操作的步骤。
- 首先,创建 Presentation 类的实例以创建新的或加载现有的 PowerPoint 演示文稿。
- 将幻灯片的引用获取到 ISlide 对象中。
- 使用 Presentation.getSlides().getItem(0).getShapes() 方法将形状集合放入 IShapeCollection 对象。
- 使用 IShapeCollection.addClone(sourceShapes[int]) 方法添加形状的克隆。
- 最后,使用 Presentation.save(String, SaveFormat.Pptx) 方法保存演示文稿。
以下代码示例展示了如何使用 Java 添加 PowerPoint 形状的克隆。
// 实例化表示 PPTX 的 Presentation 类
Presentation pres = new Presentation();
// 获取第一张幻灯片
ISlide sld = pres.getSlides().get_Item(0);
// 添加矩形类型的自选图形
IShape shp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 75, 150);
// 将形状旋转 90 度
shp.setRotation(90);
// 将 PPTX 文件写入磁盘
pres.save("clone_shape.pptx", SaveFormat.Pptx);
在 Java 中从 PowerPoint 幻灯片中删除形状
您还可以使用 Aspose.Slides for Java 从幻灯片中删除 PowerPoint 形状。以下是从形状集合中删除 PowerPoint 形状的步骤。
- 首先,创建 Presentation 类的实例以加载 PowerPoint 演示文稿。
- 将所需幻灯片的引用获取到 ISlide 对象中。
- 使用 ISlide.getShapes().removeAt(int) 方法按索引删除特定形状。
- 最后,使用 Presentation.save(String, SaveFormat.Pptx) 方法保存演示文稿。
以下代码示例演示如何使用 Java 从幻灯片中删除 PowerPoint 形状。
// 加载演示文稿
Presentation presentation1 = new Presentation("clone_shape.pptx");
// 获取幻灯片
ISlide slide = presentation1.getSlides().get_Item(0);
// 形状文本以查找形状
String alttext = "User Defined";
// 获取形状数量
int iCount = slide.getShapes().size();
// 循环遍历形状
for (int i = 0; i < iCount; i++) {
// 获得形状
IAutoShape ashp = (IAutoShape) slide.getShapes().get_Item(0);
if (ashp.getAlternativeText().compareTo(alttext) == 0) {
// 移除形状
slide.getShapes().remove(ashp);
}
}
presentation1.save("remove_shape.pptx", SaveFormat.Pptx);
获取免费 API 许可证
您可以获得 免费的临时许可证 以便在没有评估限制的情况下使用 API。
结论
在本文中,您学习了如何使用 Java 在 PowerPoint 演示文稿中处理形状。特别是,您已经了解了如何添加、连接、删除或克隆 PowerPoint 形状。此外,您可以通过查阅其 文档 来探索有关 API 的更多信息。此外,如有任何疑问,请随时通过我们的 论坛 告诉我们。