概述

本篇文章将介绍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. 智能实验室-全能优化(Guardio) 4.96.0.850
  3. 图解sqlserver 2000 还原数据库的基本操作
  4. 从别的地方转来的 网址
  5. netty客户端源码
  6. C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
  7. 随机过程及其在金融领域中的应用 第三章 习题 及 答案
  8. 疑似华为Mate 30系列通过3C认证:标配40W快充
  9. jquery +ajax 上传加预览
  10. oracle求当年天数与当月天数
  11. Java007-面向对象(多态)
  12. c++指定在某一线程运行_iPhone11升级iOS14运行速度测试:结果有点小惊喜
  13. Way to MongoDB
  14. 网页图片压缩优化,提高网站打开速度
  15. C语言基础学习教程之数据类型
  16. java alert 乱码_在servlet中输出JS中文乱码,servlet中alert对话框出现中文乱码的解决方法...
  17. cydia未能连接服务器超时,cydia添加源验证超时
  18. c语言编程 追赶法解方程组,追赶法解线性方程组.doc
  19. 一个独到程序员的深刻见解(转)
  20. Navicat工具中数据库导入导出

热门文章

  1. Linux查看CPU信息(CPU个数、核心数、CPU使用率、运行位数)
  2. 自动化测试常见的面试题
  3. HTTP服务器的本质
  4. java即时通信解决方案openfire+spark完整安装指南
  5. java equals返回值_Java equals() 方法
  6. hive 元数据信息表解析
  7. 卜若代码笔记系列的bug集合-3999
  8. 截取数组和字符串的方法js
  9. 基于Qt的软件框架设计
  10. Dots + interval stats and geoms