在 C#.jpg 中使用幻灯片中的形状

形状是使您的 PowerPoint 演示文稿更加详尽和吸引人的好方法。 PowerPoint 提供了多种形状,您可以将它们添加到演示文稿幻灯片中,例如椭圆、线条、矩形、连接线等。为了自动化此功能,本文介绍了如何使用 C# 以编程方式在 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 幻灯片的步骤。

以下代码示例演示如何使用 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 幻灯片中的两个形状之间添加连接线。

  1. 创建 Presentation 类的实例以创建新的演示文稿。
  2. 使用 Presentation.Slides[index] 获取幻灯片的引用到 ISlide 对象。
  3. 添加两个形状,就像您在上一个示例中添加的一样,并在 IAutoShape 对象中获取它们的引用。
  4. 使用 IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single) 方法创建一个新的 IConnector 对象。
  5. 使用 IConnector.StartShapeConnectedToIConnector.EndShapeConnectedTo 属性连接形状。
  6. 调用IConnector.Reroute()方法创建最短自动连接路径。
  7. 使用 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 幻灯片克隆到另一张幻灯片。以下是执行此操作的步骤。

  1. 创建 Presentation 类的实例。
  2. 使用 Presentation.Slides[index] 获取幻灯片的引用到 ISlide 对象。
  3. 使用 ISlide.Shapes 集合访问源幻灯片形状。
  4. 使用 ISlide.Shapes 集合访问目标幻灯片形状。
  5. 使用 IShapeCollection.AddClone(ISlide) 方法将源幻灯片形状集合中的形状克隆到目标幻灯片。
  6. 保存更新的演示文件。

以下代码示例演示如何使用 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 幻灯片中删除形状的步骤。

  1. 创建 Presentation 类的实例以加载 PPTX 文件。
  2. Presentation.Slides[index] 访问所需的幻灯片到 ISlide 对象。
  3. 查找具有特定 IShape.AlternativeText 的形状。
  4. 使用 ISlide.Shapes.Remove(IShape) 方法删除形状。
  5. 保存更新的演示文件。

以下代码示例演示如何使用 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 的信息,可以访问 文档

也可以看看