在 .NET 中向演示文稿添加线条形状

Aspose.Slides for .NET 支持向幻灯片添加不同类型的形状。本文将从向幻灯片添加直线开始介绍形状的使用。使用 Aspose.Slides for .NET,开发者不仅可以创建普通直线,还可以在幻灯片上绘制一些花式直线。

创建普通直线

要在演示文稿的选定幻灯片上添加一条简单的普通直线,请按以下步骤操作:

  • 创建一个 Presentation class 的实例。
  • 使用幻灯片的 Index 获取幻灯片引用。
  • 通过 Shapes 对象公开的 AddAutoShape 方法添加 Line 类型的 AutoShape。
  • 将修改后的演示文稿保存为 PPTX 文件。

下面的示例中,我们在演示文稿的第一张幻灯片上添加了一条直线。

// 实例化表示 PPTX 文件的 PresentationEx 类
using (Presentation pres = new Presentation())
{
    // 获取第一页幻灯片
    ISlide sld = pres.Slides[0];

    // 添加类型为 line 的自动形状
    sld.Shapes.AddAutoShape(ShapeType.Line, 50, 150, 300, 0);

    //将 PPTX 写入磁盘
    pres.Save("LineShape1_out.pptx", SaveFormat.Pptx);
}

创建箭头形状的直线

Aspose.Slides for .NET 还允许开发者配置直线的部分属性,使其更具美观性。下面尝试配置一些属性,使直线呈现为箭头形状。请按以下步骤操作:

  • 创建一个 Presentation class 的实例。
  • 使用幻灯片的 Index 获取幻灯片引用。
  • 通过 Shapes 对象的 AddAutoShape 方法添加 Line 类型的 AutoShape。
  • 将线条样式设置为 Aspose.Slides for .NET 提供的样式之一。
  • 设置线条的宽度。
  • 将线条的 Dash Style 设置为 Aspose.Slides for .NET 提供的样式之一。
  • 设置线条起点的 Arrow Head Style 和长度。
  • 设置线条终点的 Arrow Head Style 和长度。
  • 将修改后的演示文稿保存为 PPTX 文件。
 // 实例化表示 PPTX 文件的 PresentationEx 类
using (Presentation pres = new Presentation())
{

    // 获取第一张幻灯片
    ISlide sld = pres.Slides[0];

    // 添加类型为 line 的自动形状
    IAutoShape shp = sld.Shapes.AddAutoShape(ShapeType.Line, 50, 150, 300, 0);

    // 对线条应用一些格式设置
    shp.LineFormat.Style = LineStyle.ThickBetweenThin;
    shp.LineFormat.Width = 10;

    shp.LineFormat.DashStyle = LineDashStyle.DashDot;

    shp.LineFormat.BeginArrowheadLength = LineArrowheadLength.Short;
    shp.LineFormat.BeginArrowheadStyle = LineArrowheadStyle.Oval;

    shp.LineFormat.EndArrowheadLength = LineArrowheadLength.Long;
    shp.LineFormat.EndArrowheadStyle = LineArrowheadStyle.Triangle;

    shp.LineFormat.FillFormat.FillType = FillType.Solid;
    shp.LineFormat.FillFormat.SolidFillColor.Color = Color.Maroon;

    //将 PPTX 写入磁盘
    pres.Save("LineShape2_out.pptx", SaveFormat.Pptx);
}

FAQ

是否可以将普通直线转换为连接线,使其“捕捉”到形状上?

不可以。普通直线(类型为 LineAutoShape)不会自动成为连接线。要实现捕捉到形状,请使用专用的 Connector 类型以及用于连接的 对应 API

如果直线的属性继承自主题且难以确定最终值,该怎么办?

通过 ILineFormatEffectiveData/ILineFillFormatEffectiveData 接口读取 有效属性,这些接口已考虑继承和主题样式。

是否可以锁定直线,防止编辑(移动、调整大小)?

可以。Shapes 提供的 lock objects 允许您 禁用编辑操作