概述

本篇文章将介绍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, 200, 80));
shape1.Fill.FillType = FillFormatType.Gradient;
shape1.Fill.Gradient.GradientStops.Append(0, Color.Blue);
shape1.Fill.Gradient.GradientStops.Append(1, Color.Azure);
shape1.Line.FillType = 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, new RectangleF(50, 130, 150, 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, new RectangleF(480, 180, 100, 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 = new PresetShadow();
presetShadow.Preset = PresetShadowValue.BackRightPerspective;
presetShadow.ColorFormat.Color = Color.LightGray;
shape3.EffectDag.PresetShadowEffect = presetShadow;

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

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

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

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

步骤8:保存文档

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

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

全部代码:

using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Collections;
using System.Drawing;namespace DrawShape_PPT
{class Program{static void Main(string[] args){//新建一个幻灯片文档,并指定幻灯片大小Presentation ppt = new Presentation();ppt.SlideSize.Type = SlideSizeType.Screen16x9;//获取第一张幻灯片ISlide slide = ppt.Slides[0];//添加一个云朵形状,并填充渐变颜色IAutoShape shape1 = slide.Shapes.AppendShape(ShapeType.CalloutCloud, new RectangleF(160, 50, 200, 80));shape1.Fill.FillType = FillFormatType.Gradient;shape1.Fill.Gradient.GradientStops.Append(0, Color.Blue);shape1.Fill.Gradient.GradientStops.Append(1, Color.Azure);shape1.Line.FillType = 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;//添加一个椭圆,并用图片填充形状IAutoShape shape2 = slide.Shapes.AppendShape(ShapeType.Ellipse, new RectangleF(50, 130, 150, 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;//添加一个三角形,填充颜色并设置形状边框样式IAutoShape shape3 = slide.Shapes.AppendShape(ShapeType.Triangle, new RectangleF(480, 180, 100, 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 = new PresetShadow();presetShadow.Preset = PresetShadowValue.BackRightPerspective;presetShadow.ColorFormat.Color = Color.LightGray;shape3.EffectDag.PresetShadowEffect = presetShadow;//添加一个带箭头的直线IAutoShape shape4 = slide.Shapes.AppendShape(ShapeType.Line, new RectangleF(660, 200, 100, 100));shape4.ShapeStyle.LineColor.Color = Color.Red;shape4.Line.LineEndType = LineEndType.StealthArrow;shape4.Rotation = -90;//设置形状旋转角度//添加一个圆形IAutoShape shape5 = slide.Shapes.AppendShape(ShapeType.Ellipse, new RectangleF(289, 166, 120, 120));shape5.Fill.FillType = FillFormatType.Solid;shape5.Fill.SolidColor.Color = Color.White;shape5.Line.FillType = FillFormatType.Solid;shape5.Line.SolidFillColor.Color = Color.Red;//添加一个五角星形状IAutoShape shape6 = slide.Shapes.AppendShape(ShapeType.FivePointedStar, new RectangleF(300, 170, 100, 100));shape6.Fill.FillType = FillFormatType.Solid;shape6.Fill.SolidColor.Color = Color.Orange;shape6.Line.FillType = FillFormatType.None;//设置五角星形状的光边效果GlowEffect glow = new GlowEffect();glow.ColorFormat.Color = Color.Yellow;glow.Radius = 7.0;shape6.EffectDag.GlowEffect = glow;//将shape5和shape6两个形状组合ArrayList list = new ArrayList();list.Add(shape5);list.Add(shape6);ppt.Slides[0].GroupShapes(list);//保存文档ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);System.Diagnostics.Process.Start("result.pptx");}}
}

View Code

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

步骤1:加载测试文档

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

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

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

全部代码:

using Spire.Presentation;
using System;
using System.Drawing;namespace SaveShapesAsImgs_PPT
{class Program{static void Main(string[] args){//实例化Presentation类的对象,并加载测试文档Presentation ppt = new Presentation();ppt.LoadFromFile("test.pptx");//遍历第一张幻灯片中的所有图形for (int i = 0; i < ppt.Slides[0].Shapes.Count; i++){//获取幻灯片中的图形,并保存为.png格式的图片Image image = ppt.Slides[0].Shapes.SaveAsImage(i);image.Save(String.Format("Picture-{0}.png", i), System.Drawing.Imaging.ImageFormat.Png);}}}
}

View Code

(本文完)

转载请注明出处。

转载于:https://www.cnblogs.com/Yesi/p/9995150.html

C# 在PPT中绘制形状(shape)相关推荐

  1. java ppt 绘图,Java 在PPT中绘制图形

    原标题:Java 在PPT中绘制图形 Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充.线条颜色.图形大小.位置等.下面将通过Java编程来演示在PPT中绘 ...

  2. PPT中绘制图形如何导入VISIO编辑

    在PPT中绘制图形想要在VISIO中编辑 ①先拆分图形,然后全选,右键选择-另存为图片(S) ②这里要选择保存为矢量图.SVG格式 ③将保存的.svg图片直接拖到打开的VISIO窗口,打开 ④右键选中 ...

  3. WPF中的形状Shape与几何图形Geometry详解

    总目录 文章目录 总目录 一.Shape(形状) 1.Shape基本信息 2.Ellipse 1.案例 2.说明 3.Rectangle 1.案例 2.说明 4.Line 1.案例 2.说明 5.Po ...

  4. 的标题形状工具在哪里_在PPT中如何用好形状排版

    关注[新精英充电站]能力提升看得见! 刚接触PPT时,对"形状"的认识,很多人可能都会停留在作为"一个普通的页面元素"直接使用上,即只是用形状的外形来表达特定的 ...

  5. 图像处理控件功能演示: 在 C# 中绘制直线、圆弧、椭圆、矩形等形状

    Aspose.Imaging for .NET是一个可以让开发人员可以创建.编辑.画图.转换图像的图像处库,提供了一些开发平台原有功能基础之上的一些新特性.它独立于其他应用程序, Aspose.Ima ...

  6. REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法

    REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法 问题:建筑形状(如图-1)所示,当需要在斜面上或者南北立面上绘制形状时,需要设置工作平面,但是在设置好的工作平面中绘制形状时却不能拾取 ...

  7. 使用 OpenCV 在 Python 中检测图像中的形状

    OpenCV 是一个开源库,主要用于处理图像和视频以识别形状.对象.文本等.它主要与 python 一起使用.在本文中,我们将了解如何检测图像中的形状.为此,我们需要OpenCV 的cv2.findC ...

  8. 计算机word画铁路,PPT中画铁路标志的图标

    PPT中画铁路标志的图标 铁路标志中涉及了许多数学几何知识,本文旨在介绍如何在PPT中绘制铁路标志,希望对喜欢绘制图表的朋友有所帮助. 1.在PPT中插入一个圆,宽高为12厘米,颜色RGB(252,2 ...

  9. 在图像中绘制基本形状和文字

    目录 一 基本形状的绘制 二 随机数 三 绘制文字 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 基本形状的绘制 本文的内容和数字图像处理的关系不大,主要是关于OpenCV提供的在图像中绘 ...

最新文章

  1. 机器学习的出现,是否意味着“古典科学”的过时?
  2. Category中实现了原始类实例变量的get方法导致的警告
  3. 请求中文乱码_【1】执行Http请求访问网页
  4. Laravel中使用模型对数据进行操作
  5. js获取php页面session的值,在html页面中取得session中的值的方法
  6. 轻量集群管理工具PSSH
  7. 手把手教你pyqt中.qrc图片文件的编写和使用
  8. 1093 字符串A+B (20 分)
  9. iis到w3wp的数据流及工作原理
  10. (转)Linux服务器磁盘空间占满问题
  11. 程序员的进阶课-架构师之路(13)-B-树
  12. Math 对象的扩展
  13. 国家邮政局:除夕和初一包裹量超1.3亿件,同比增长223%
  14. 关于数组表示的二叉结构中,下标乘除法对应关系的理解
  15. vue前台导出zip文件_在vue.js中使用JSZip实现在前端解压文件的方法
  16. 景观专业设计师必备SketchUp插件合集,你都用过吗?
  17. 洗衣机测试点 思维导图
  18. K8s 亲和性和非亲和性(Affinity)
  19. iOS 调用系统铃声及震动
  20. 微信发朋友圈的测试用例

热门文章

  1. 腾讯云发布金融国产化战略、《腾讯云银行核心系统分布式转型白皮书》
  2. 苹果iPhone14如何批量删除联系人?iPhone 14批量删除联系人方法
  3. Base64和Base64URL
  4. 模板方法模式 java
  5. Chrome浏览器访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
  6. 机器视觉之UVW平台纠偏原理与实现
  7. python tkinter游戏界面_python tkinter游戏开发
  8. Tomcat无法启动:报出Server Tomcat v8.5 Server at localhost failed to start
  9. 邻近分类算法---KNN(Java实现+公式计算例子)
  10. 油猴脚本和aira2下载器