概述

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

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

工具

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

示例代码(供参考)

【示例1】绘制形状

步骤1:新建一个幻灯片

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

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

ISlide slide = ppt.Slides[];

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

//添加一个云朵形状,并填充渐变颜色
IAutoShape shape1 = slide.Shapes.AppendShape(ShapeType.CalloutCloud, new RectangleF(, , , ));
shape1.Fill.FillType = FillFormatType.Gradient;
shape1.Fill.Gradient.GradientStops.Append(, Color.Blue);
shape1.Fill.Gradient.GradientStops.Append(, Color.Azure);
shape1.Line.FillType = FillFormatType.None; //在形状中绘制文本,并设置字体、字号、字体颜色等
shape1.AppendTextFrame("HOW??");
TextRange textRange = (shape1 as IAutoShape).TextFrame.TextRange;
textRange.FontHeight = ;
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(, , , ));
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(, , , ));
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 = 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(, , , ));
shape4.ShapeStyle.LineColor.Color = Color.Red;
shape4.Line.LineEndType = LineEndType.StealthArrow;
shape4.Rotation = -;//设置形状旋转角度

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

//添加一个圆形
IAutoShape shape5 = slide.Shapes.AppendShape(ShapeType.Ellipse, new RectangleF(, , , ));
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(, , , ));
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[].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[]; //添加一个云朵形状,并填充渐变颜色
IAutoShape shape1 = slide.Shapes.AppendShape(ShapeType.CalloutCloud, new RectangleF(, , , ));
shape1.Fill.FillType = FillFormatType.Gradient;
shape1.Fill.Gradient.GradientStops.Append(, Color.Blue);
shape1.Fill.Gradient.GradientStops.Append(, Color.Azure);
shape1.Line.FillType = FillFormatType.None; //在形状中绘制文本,并设置字体、字号、字体颜色等
shape1.AppendTextFrame("HOW??");
TextRange textRange = (shape1 as IAutoShape).TextFrame.TextRange;
textRange.FontHeight = ;
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(, , , ));
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(, , , ));
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 = new PresetShadow();
presetShadow.Preset = PresetShadowValue.BackRightPerspective;
presetShadow.ColorFormat.Color = Color.LightGray;
shape3.EffectDag.PresetShadowEffect = presetShadow; //添加一个带箭头的直线
IAutoShape shape4 = slide.Shapes.AppendShape(ShapeType.Line, new RectangleF(, , , ));
shape4.ShapeStyle.LineColor.Color = Color.Red;
shape4.Line.LineEndType = LineEndType.StealthArrow;
shape4.Rotation = -;//设置形状旋转角度 //添加一个圆形
IAutoShape shape5 = slide.Shapes.AppendShape(ShapeType.Ellipse, new RectangleF(, , , ));
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(, , , ));
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[].GroupShapes(list); //保存文档
ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("result.pptx");
}
}
}

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

步骤1:加载测试文档

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

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

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

(本文完)

转载请注明出处。

C# 在PPT中绘制形状(shape)的更多相关文章

  1. Java 在PPT中绘制图形

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

  2. (一)在 Blend 中绘制形状和路径

    原文:(一)在 Blend 中绘制形状和路径 https://docs.microsoft.com/zh-cn/previous-versions/jj170881(v=vs.120) 在 Blend ...

  3. WPF 中的形状和基本绘图概述

    本主题概述如何使用 Shape 对象绘图. Shape 是一种允许您在屏幕中绘制形状的 UIElement 类型. 由于它们是 UI 元素,因此 Shape 对象可以在 Panel 元素和大多数控件中 ...

  4. Android中绘制圆角矩形图片及任意形状图片

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角 ...

  5. C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

    在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印:也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果.本文 ...

  6. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...

  7. Office系列(2)---提取Office文件(Word、PPT)中的所有图片

    回顾一下上文结尾的问题:如何给文档设置一个合适的封面图?其中一个解决方案就是,获取Office文件内部的图片作为封面.这里就详细介绍下获取图片的几种方式,以及他们各自的优缺点. PS:因为之前用VST ...

  8. HTML5在canvas中绘制复杂形状附效果截图

    HTML5在canvas中绘制复杂形状附效果截图 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径. beginPath() : 开始绘制一个新路 ...

  9. css3中的几何图形shape研究

    前言 估计大家在日常工作中都会用到css形状,但是目前天朝中使用到最多的估计就是圆(circle).椭圆(ellipse).各种三角形形状,但是你肯定很少看见过用几何图形或者多边图形.假如你不懂什么叫 ...

随机推荐

  1. Android--APP性能测试工具GT的使用总结

    GT(随身调)是APP的随身调测平台,它是直接运行在手机上的"集成调测环境"(IDTE, Integrated Debug Environment).利用GT,仅凭一部手机,无需连 ...

  2. window10 hello 人脸识别无法启动相机的问题

    win10设置人脸识别的时候无法打开相机.但是在qq,其他软件中可以调用相机,可以打开相机的时候.windows hello 就是打不开,不知道怎么回事. 尝试打开电源选项,有一个   选项,还原一下 ...

  3. Java注解(二):实战 - 直接使用对象列表生成报表

    通过对Java注解(一):介绍,思想及优点学习了解,相信大家对Java注解有一定程度的了解,本篇文章将实战项目中的应用来加深对Java注解的了解. 本实例实现根据指定字段的JavaBean,生成对应列 ...

  4. python输出彩色字体

    Python终端如何输出彩色字体 实现过程:       终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关.       转义序列是以ESC开头,即用\033来完成(ES ...

  5. 命令行中的 vi 模式

    命令行中修改已经输入的命令比较麻烦,如果你不知道一些快捷键的话,只能使用方向键一个一个字符地移动到目标位置进行修改,对于比较复杂且过长的命令来说,效率不高. 以下信息来自 bash 的 man 页面: ...

  6. 机器学习——KMeans聚类,KMeans原理,参数详解

    0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...

  7. pytest-allure-poco之allure全量详细用法

    allure简介 Allure Framework是一个灵活的轻量级多语言测试报告工具.貌似是目前最漂亮的一个报告工具 python版本及必要库或工具 python 3.7 pytest 4.3.1 ...

  8. Fast R-CNN中的边框回归

    前面对R-CNN系的目标检测方法进行了个总结,其中对目标的定位使用了边框回归,当时对这部分内容不是很理解,这里单独学习下. R-CNN中最后的边框回归层,以候选区域(Region proposal)为 ...

  9. Java设置PPT幻灯片背景——纯色、渐变、图片背景

    PPT幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充.本文将对此介绍具体实现方法. 使用工具:Free Spire.Presentation fo ...

  10. Retrofit的初次使用

    rxretrofitlibrary是一个已经写好的网络框架库,先以本地Module导入到自己的项目中. 1.它的初始化操作大多在自定义的application中完成,如: public class A ...