欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 在PPT幻灯片中绘制图形 博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 

程序员文章站 2024-03-25 17:46:52
...

概述

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

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

 

工具

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


C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 

示例代码(供参考)

【示例1】绘制形状

 

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");
        }
    }
}

 
形状添加效果:

 


C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 
 

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

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);
            }

        }
    }
}

 


C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 
 

 

(本文完)

 

转载请注明出处。

  • C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 
  • 大小: 25.2 KB
  • C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 
  • 大小: 119.8 KB
  • C# 在PPT幻灯片中绘制图形
            
    
    博客分类: .NET PPT C#.NETSpire.PresentationPPT控件图形 
  • 大小: 59.7 KB