C# 在PPT幻燈片中繪製圖形
阿新 • • 發佈:2018-11-21
概述
本篇文章將介紹C#在PPT幻燈片中操作形狀(shape)的方法。這裡主要涉及常規形狀,如帶箭頭的線條,矩形、圓形、三角形、多邊形、不規則形狀等。下面的示例中,可以通過繪製形狀,並設定相應格式等。示例包含以下要點:
- 繪製形狀
- 用圖片填充形狀
- 在形狀中新增文字
- 設定形狀單色、漸變色填充
- 設定形狀陰影效果、光邊效果
- 組合多個形狀為一個
- 將形狀儲存為圖片
工具
下載安裝後,注意在程式中新增引用Spire.Presentation.dll到程式,dll檔案可在安裝路徑下的Bin資料夾中獲取。
示例程式碼(供參考)
【示例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"); } } }
形狀新增效果:
【示例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); } } } }
(本文完)
轉載請註明出處。