形状是使您的 PowerPoint 演示文稿更加详尽和吸引人的好方法。 PowerPoint 提供了多种形状,您可以将它们添加到演示文稿幻灯片中,例如椭圆、线条、矩形、连接线等。为了自动化此功能,本文介绍了如何使用 C# 以编程方式在 PowerPoint 幻灯片中添加、克隆和删除形状。
- 用于处理 PowerPoint 形状的 C# API
- PowerPoint 形状的类型
- 将形状添加到 PowerPoint 幻灯片
- 向 PowerPoint 幻灯片中的形状添加连接线
- 在 PowerPoint 幻灯片中克隆形状
- 从 PowerPoint 幻灯片中删除形状
用于处理 PowerPoint 形状的 C# API
Aspose.Slides for .NET 是一个 C# API,旨在处理 .NET 应用程序中的 PowerPoint 演示文稿。与其他演示文稿操作功能一起,API 提供了在 PowerPoint 幻灯片中处理形状的简单方法。您可以下载 API 的 DLL 或通过 NuGet 安装它。
Install-Package Aspose.Slides.NET
PowerPoint 形状
Aspose.Slides for .NET 支持多种可以添加到 PowerPoint 幻灯片的形状类型。最常用的形状包括:
使用 C# 将形状添加到 PowerPoint 幻灯片
为了添加椭圆、直线、矩形等形状,Aspose.Slides 提供了 IShapeCollection.AddAutoShape(ShapeType, Single, Single, Single, Single) 方法。 ShapeType 枚举允许您指定要添加的形状类型。以下是将形状添加到 PowerPoint 幻灯片的步骤。
- 创建 Presentation 类的实例以创建新的演示文稿或加载现有的演示文稿。
- 使用 Presentation.Slides[index] 获取幻灯片的引用到 ISlide 对象。
- 使用 IShapeCollection.AddAutoShape(ShapeType, Single, Single, Single, Single) 由 IShape 对象公开的方法添加椭圆(或任何其他形状)。
- 使用 Presentation.Save(String, SaveFormat) 方法保存 PPTX 文件。
以下代码示例演示如何使用 C# 将形状添加到 PowerPoint 幻灯片中。
// 实例化一个表示演示文件的 Presentation 对象
using (Presentation pres = new Presentation("presentation.pptx"))
{
// 获取第一张幻灯片
ISlide sld = pres.Slides[0];
// 添加椭圆类型的autoshape
sld.Shapes.AddAutoShape(ShapeType.Ellipse, 50, 150, 150, 50);
// 保存演示文稿
pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}
在 C# 中添加连接器以连接 PowerPoint 形状
连接器是用于连接形状以连接它们的线。连接器可以是直线或曲线。让我们看看如何在 PowerPoint 幻灯片中的两个形状之间添加连接线。
- 创建 Presentation 类的实例以创建新的演示文稿。
- 使用 Presentation.Slides[index] 获取幻灯片的引用到 ISlide 对象。
- 添加两个形状,就像您在上一个示例中添加的一样,并在 IAutoShape 对象中获取它们的引用。
- 使用 IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single) 方法创建一个新的 IConnector 对象。
- 使用 IConnector.StartShapeConnectedTo 和 IConnector.EndShapeConnectedTo 属性连接形状。
- 调用IConnector.Reroute()方法创建最短自动连接路径。
- 使用 Presentation.Save(String, SaveFormat) 方法保存 PPTX 文件。
以下代码示例演示如何使用 C# 连接 PowerPoint 幻灯片中的形状。
// 实例化一个表示演示文件的 Presentation 对象
using (Presentation pres = new Presentation("presentation.pptx"))
{
// 访问选定幻灯片的形状集合
IShapeCollection shapes = pres.Slides[0].Shapes;
// 添加自定形椭圆
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.StartShapeConnectedTo = ellipse;
connector.EndShapeConnectedTo = rectangle;
// 调用 reroute 设置形状之间的自动最短路径
connector.Reroute();
// 保存演示文稿
pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}
使用 C# 在 PowerPoint 幻灯片中克隆形状
您还可以使用 Aspose.Slides for .NET 将形状从一张 PowerPoint 幻灯片克隆到另一张幻灯片。以下是执行此操作的步骤。
- 创建 Presentation 类的实例。
- 使用 Presentation.Slides[index] 获取幻灯片的引用到 ISlide 对象。
- 使用 ISlide.Shapes 集合访问源幻灯片形状。
- 使用 ISlide.Shapes 集合访问目标幻灯片形状。
- 使用 IShapeCollection.AddClone(ISlide) 方法将源幻灯片形状集合中的形状克隆到目标幻灯片。
- 保存更新的演示文件。
以下代码示例演示如何使用 C# 在 PowerPoint 幻灯片中克隆形状。
// 实例化一个表示演示文件的 Presentation 对象
using (Presentation pres = new Presentation("presentation.pptx"))
{
// 从源幻灯片获取形状集合
IShapeCollection sourceShapes = pres.Slides[0].Shapes;
ILayoutSlide blankLayout = pres.Masters[0].LayoutSlides.GetByType(SlideLayoutType.Blank);
ISlide destSlide = pres.Slides.AddEmptySlide(blankLayout);
// 从目标幻灯片获取形状集合
IShapeCollection destShapes = destSlide.Shapes;
destShapes.AddClone(sourceShapes[1], 50, 150 + sourceShapes[0].Height);
destShapes.AddClone(sourceShapes[2]);
// 克隆形状
destShapes.InsertClone(0, sourceShapes[0], 50, 150);
// 保存演示文稿
pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}
使用 C# 从 PowerPoint 幻灯片中删除形状
以下是从 PowerPoint 幻灯片中删除形状的步骤。
- 创建 Presentation 类的实例以加载 PPTX 文件。
- 从 Presentation.Slides[index] 访问所需的幻灯片到 ISlide 对象。
- 查找具有特定 IShape.AlternativeText 的形状。
- 使用 ISlide.Shapes.Remove(IShape) 方法删除形状。
- 保存更新的演示文件。
以下代码示例演示如何使用 C# 从 PowerPoint 幻灯片中删除形状。
// 实例化一个表示演示文件的 Presentation 对象
using (Presentation pres = new Presentation("presentation.pptx"))
{
// 获取第一张幻灯片
ISlide sld = pres.Slides[0];
// 添加矩形类型的autoshape
IShape shp1 = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 40, 150, 50);
IShape shp2 = sld.Shapes.AddAutoShape(ShapeType.Moon, 160, 40, 150, 50);
String alttext = "User Defined";
int iCount = sld.Shapes.Count;
for (int i = 0; i < iCount; i++)
{
// 检索形状
AutoShape ashp = (AutoShape)sld.Shapes[0];
if (String.Compare(ashp.AlternativeText, alttext, StringComparison.Ordinal) == 0)
{
// 移除形状
sld.Shapes.Remove(ashp);
}
}
// 保存演示文稿
pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}
结论
MS PowerPoint 允许您使用各种类型的形状,以使您的幻灯片更加详尽。您可以使用椭圆、矩形、线条等来绘制形状和连接线以将它们连接起来。在步骤和代码示例的帮助下,本文介绍了如何使用 C# 以编程方式在 PowerPoint 幻灯片中添加、克隆和删除形状。如果您想了解更多有关 API 的信息,可以访问 文档。