加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 在PPT中绘制形状(shape)

发布时间:2020-12-16 01:07:23 所属栏目:百科 来源:网络整理
导读:概述 本篇文章将介绍C# 在PPT幻灯片中操作形状(shape)的方法。这里主要涉及常规形状,如箭头、矩形、圆形、三角形、多边形、不规则形状等。下面的示例中,可以通过绘制形状,并设置相应格式等。示例包含以下要点: 绘制形状 用图片填充形状 在形状中添加文

概述

本篇文章将介绍C# 在PPT幻灯片中操作形状(shape)的方法。这里主要涉及常规形状,如箭头、矩形、圆形、三角形、多边形、不规则形状等。下面的示例中,可以通过绘制形状,并设置相应格式等。示例包含以下要点:

  • 绘制形状
  • 用图片填充形状
  • 在形状中添加文字
  • 设置形状单色、渐变色填充
  • 设置形状阴影效果
  • 组合多个形状为一个
  • 设置形状光边效果
  • 将形状保存为图片

?

工具

  • Spire.Presentation for .NET

下载安装后,注意在程序中添加引用Spire.Presentation.dll到程序,dll文件可在安装路径下的Bin文件夹中获取。

示例代码(供参考)

【示例1】绘制形状

步骤1:新建一个幻灯片

//新建一个幻灯片文档,并指定幻灯片大小
Presentation ppt = new Presentation();
ppt.SlideSize.Type = SlideSizeType.Screen16x9;

步骤2:获取第一张幻灯片

ISlide slide = ppt.Slides[0];

步骤3:添加一个云朵形状,并填充渐变色,绘入文字

添加一个云朵形状,并填充渐变颜色
IAutoShape shape1 = slide.Shapes.AppendShape(ShapeType.CalloutCloud,new RectangleF(160,50,1)">200,1)">80));
shape1.Fill.FillType = FillFormatType.Gradient;
shape1.Fill.Gradient.GradientStops.Append(0,Color.Blue);
shape1.Fill.Gradient.GradientStops.Append(1 FillFormatType.None;

在形状中绘制文本,并设置字体、字号、字体颜色等
shape1.AppendTextFrame("HOW??");
TextRange textRange = (shape1 as IAutoShape).TextFrame.TextRange;
textRange.FontHeight = 13;
textRange.LatinFont = new TextFont(Arial);
textRange.Fill.FillType = FillFormatType.Solid;
textRange.Fill.SolidColor.Color = Color.White;

步骤4:添加椭圆形状,并加载图片填充

IAutoShape shape2 = slide.Shapes.AppendShape(ShapeType.Ellipse,1)">130,1)">150,1)">250));
string picPath = sk.png; 
shape2.Fill.FillType = FillFormatType.Picture;
shape2.Fill.PictureFill.Picture.Url = picPath;
shape2.Fill.PictureFill.FillType = PictureFillType.Stretch;
shape2.Line.FillType = FillFormatType.None;

步骤5:添加三角形,并设置边框效果,阴影效果

添加一个三角形,填充颜色并设置边框样式
IAutoShape shape3 = slide.Shapes.AppendShape(ShapeType.Triangle,1)">480,1)">180,1)">100,1)">130));
shape3.Fill.FillType = FillFormatType.Solid;
shape3.Fill.SolidColor.Color = Color.Wheat;
shape3.Line.Width = 3;
shape3.Line.DashStyle = LineDashStyleType.Dash;
shape3.ShapeStyle.LineColor.Color = Color.Red;

设置形状阴影效果
PresetShadow presetShadow =  PresetShadow();
presetShadow.Preset = PresetShadowValue.BackRightPerspective;
presetShadow.ColorFormat.Color = Color.LightGray;
shape3.EffectDag.PresetShadowEffect = presetShadow;

步骤6:添加一个带箭头的直线

IAutoShape shape4 = slide.Shapes.AppendShape(ShapeType.Line,1)">660,1)">100));
shape4.ShapeStyle.LineColor.Color = Color.Red;
shape4.Line.LineEndType = LineEndType.StealthArrow;
shape4.Rotation = -90;设置形状旋转角度

步骤7:绘制一个圆形、五角星,并设置光边效果,将拉个形状组合

添加一个圆形
IAutoShape shape5 = slide.Shapes.AppendShape(ShapeType.Ellipse,1)">289,1)">166,1)">120,1)">120));
shape5.Fill.FillType = FillFormatType.Solid;
shape5.Fill.SolidColor.Color = Color.White;
shape5.Line.FillType = FillFormatType.Solid;
shape5.Line.SolidFillColor.Color =添加一个五角星形状
IAutoShape shape6 = slide.Shapes.AppendShape(ShapeType.FivePointedStar,1)">300,1)">170,1)">));
shape6.Fill.FillType = FillFormatType.Solid;
shape6.Fill.SolidColor.Color = Color.Orange;
shape6.Line.FillType = FillFormatType.None;
设置五角星形状的光边效果
GlowEffect glow =  GlowEffect();
glow.ColorFormat.Color = Color.Yellow;
glow.Radius = 7.0;
shape6.EffectDag.GlowEffect = glow;

将shape5和shape6两个形状组合
ArrayList list =  ArrayList();
list.Add(shape5);
list.Add(shape6);
ppt.Slides[0].GroupShapes(list);

步骤8:保存文档

ppt.SaveToFile(result.pptx",FileFormat.Pptx2010);

完成代码后,调试运行程序,生成文档,如下图

全部代码:

using Spire.Presentation;
 Spire.Presentation.Drawing;
 System.Collections;
 System.Drawing;

namespace DrawShape_PPT
{
    class Program
    {
        static void Main(string[] args)
        {
            新建一个幻灯片文档,并指定幻灯片大小
            Presentation ppt =  Presentation();
            ppt.SlideSize.Type = SlideSizeType.Screen16x9;

            获取第一张幻灯片
            ISlide slide = ppt.Slides[];

            添加一个云朵形状,并填充渐变颜色
            IAutoShape shape1 = slide.Shapes.AppendShape(ShapeType.CalloutCloud,1)">));
            shape1.Fill.FillType = FillFormatType.Gradient;
            shape1.Fill.Gradient.GradientStops.Append(= FillFormatType.None;

            在形状中绘制文本,并设置字体、字号、字体颜色等
            shape1.AppendTextFrame();
            TextRange textRange = (shape1  IAutoShape).TextFrame.TextRange;
            textRange.FontHeight = ;
            textRange.LatinFont = );
            textRange.Fill.FillType = FillFormatType.Solid;
            textRange.Fill.SolidColor.Color = Color.White;

            添加一个椭圆,并用图片填充形状
            IAutoShape shape2 = slide.Shapes.AppendShape(ShapeType.Ellipse,1)">));
            ; 
            shape2.Fill.FillType = FillFormatType.Picture;
            shape2.Fill.PictureFill.Picture.Url = picPath;
            shape2.Fill.PictureFill.FillType = PictureFillType.Stretch;
            shape2.Line.FillType =));
            shape3.Fill.FillType = FillFormatType.Solid;
            shape3.Fill.SolidColor.Color = Color.Wheat;
            shape3.Line.Width = ;
            shape3.Line.DashStyle = LineDashStyleType.Dash;
            shape3.ShapeStyle.LineColor.Color = Color.Red;

            设置形状阴影效果
            PresetShadow presetShadow =  PresetShadow();
            presetShadow.Preset = PresetShadowValue.BackRightPerspective;
            presetShadow.ColorFormat.Color = Color.LightGray;
            shape3.EffectDag.PresetShadowEffect = presetShadow;
         
            添加一个带箭头的直线
            IAutoShape shape4 = slide.Shapes.AppendShape(ShapeType.Line,1)">));
            shape4.ShapeStyle.LineColor.Color = Color.Red;
            shape4.Line.LineEndType = LineEndType.StealthArrow;
            shape4.Rotation = -设置形状旋转角度

            添加一个圆形
            IAutoShape shape5 = slide.Shapes.AppendShape(ShapeType.Ellipse,1)">));
            shape5.Fill.FillType = FillFormatType.Solid;
            shape5.Fill.SolidColor.Color = Color.White;
            shape5.Line.FillType = FillFormatType.Solid;
            shape5.Line.SolidFillColor.Color =添加一个五角星形状
            IAutoShape shape6 = slide.Shapes.AppendShape(ShapeType.FivePointedStar,1)">));
            shape6.Fill.FillType = FillFormatType.Solid;
            shape6.Fill.SolidColor.Color = Color.Orange;
            shape6.Line.FillType = FillFormatType.None;
            设置五角星形状的光边效果
            GlowEffect glow =  GlowEffect();
            glow.ColorFormat.Color = Color.Yellow;
            glow.Radius = ;
            shape6.EffectDag.GlowEffect = glow;
            
            将shape5和shape6两个形状组合
            ArrayList list =  ArrayList();
            list.Add(shape5);
            list.Add(shape6);
            ppt.Slides[].GroupShapes(list);

            保存文档
            ppt.SaveToFile();
        }
    }
}
View Code

?

【示例2】将形状保存为图片

步骤1:加载测试文档

Presentation ppt =  Presentation();
ppt.LoadFromFile(test.pptx");

步骤2:将形状保存为图片

遍历第一张幻灯片中的所有图形
 for (int i = 0; i < ppt.Slides[0].Shapes.Count; i++)
 {
     获取幻灯片中的图形,并保存为.png格式的图片
     Image image = ppt.Slides[].Shapes.SaveAsImage(i);
     image.Save(String.Format(Picture-{0}.png

全部代码:

 System;
 SaveShapesAsImgs_PPT
{
    实例化Presentation类的对象,并加载测试文档
            Presentation ppt =  Presentation();
            ppt.LoadFromFile();

            遍历第一张幻灯片中的所有图形
            )
            {
                获取幻灯片中的图形,并保存为.png格式的图片
                Image image = ppt.Slides[].Shapes.SaveAsImage(i);
                image.Save(String.Format(View Code

?

(本文完)

转载请注明出处。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读