搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > DotNet开发跳槽 > C# 绘制Word形状——基本形状、组合形状

C# 绘制Word形状——基本形状、组合形状

DotNet开发跳槽 2018-06-29

来源: https://www.cnblogs.com/Yesi/archive/2018/06/06/9143978.html

一、序言

在Office Word中,支持在Word文档中插入类型非常丰富的形状,包括线条、矩形、基本形状(诸如圆形、多边形、星形、括号、笑脸等等图形)、箭头形状、公式形状、流程图、旗帜图形、标注图形等等,我们在编程过程中,想要在Word中绘制不同类型的图形,可以通过类库来操作。控件Spire.Doc for .NET 6.0及以上版本开始支持Office Word中的所有图形,可以通过代码操作某个单一的形状,也可以通过将单一形状进行组合来获得想要的图形或形状效果,当然,也支持自己自定义图形,通过编程绘制也是可以的。下面将介绍向Word绘制形状和组合形状的方法,方法中的代码供参考。

PS:

  • 安装后,dll文件可在安装路径下的Bin文件夹中获取

Dll引用

二、代码示例

(一)绘制单一形状

步骤1:添加如下using指定

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;

 

步骤2:创建示例,添加section、paragraph

//创建一个Document实例Document doc = new Document();//添加一个section paragraph
 Section sec = doc.AddSection();
 Paragraph para1 = sec.AddParagraph();

 

步骤3:在文档指定位置插入形状,并设置形状类型、大小、填充颜色、线条样式等

(这里简单列举几个形状的添加方法,方法比较简单,不做赘述,效果图中列举了部分形状样式,需要其他样式的形状可自行设置添加)

C# 绘制Word形状——基本形状、组合形状

           //插入一个矩形
            ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Rectangle);
            shape1.FillColor = Color.Blue;
            shape1.StrokeColor = Color.LightSkyBlue;
            shape1.HorizontalPosition = 20;
            shape1.VerticalPosition = 20;            //插入一个圆形
            ShapeObject shape2 = para1.AppendShape(50, 50, ShapeType.Ellipse);
            shape2.FillColor = Color.Purple;
            shape2.StrokeColor = Color.LightPink;
            shape2.LineStyle = ShapeLineStyle.Single;
            shape2.StrokeWeight = 1;
            shape2.HorizontalPosition = 80;
            shape2.VerticalPosition = 20;            //插入一个公式符号 +
            ShapeObject shape3 = para1.AppendShape(50, 50, ShapeType.Plus);
            shape3.FillColor = Color.DarkCyan;
            shape3.StrokeColor = Color.LightGreen;
            shape3.LineStyle = ShapeLineStyle.Single;
            shape3.StrokeWeight = 1;
            shape3.HorizontalPosition = 140;
            shape3.VerticalPosition = 20;            //插入一颗星形
            ShapeObject shape4 = para1.AppendShape(50, 50, ShapeType.Star);
            shape4.FillColor = Color.Red;
            shape4.StrokeColor = Color.Gold;
            shape4.LineStyle = ShapeLineStyle.Single;
            shape4.HorizontalPosition = 200;
            shape4.VerticalPosition = 20;

C# 绘制Word形状——基本形状、组合形状

 

步骤4:保存文档

//保存并打开文档doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("InsertShapes.docx");

 

形状添加效果:

C# 绘制Word形状——基本形状、组合形状

全部代码:

C# 绘制Word形状——基本形状、组合形状

C# 绘制Word形状——基本形状、组合形状

  1 using Spire.Doc;  2 using Spire.Doc.Documents;  3 using Spire.Doc.Fields;  4 using System.Drawing;  5   6 namespace AddShapes_Doc  7 {  8     class Program  9     { 10         static void Main(string[] args) 11         { 12             //创建一个Document实例 13             Document doc = new Document(); 14  15             //添加一个section paragraph 16             Section sec = doc.AddSection(); 17             Paragraph para1 = sec.AddParagraph(); 18  19             //插入一个矩形 20             ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Rectangle); 21             shape1.FillColor = Color.Blue; 22             shape1.StrokeColor = Color.LightSkyBlue; 23             shape1.HorizontalPosition = 20; 24             shape1.VerticalPosition = 20; 25  26             //插入一个圆形 27             ShapeObject shape2 = para1.AppendShape(50, 50, ShapeType.Ellipse); 28             shape2.FillColor = Color.Purple; 29             shape2.StrokeColor = Color.LightPink; 30             shape2.LineStyle = ShapeLineStyle.Single; 31             shape2.StrokeWeight = 1; 32             shape2.HorizontalPosition = 80; 33             shape2.VerticalPosition = 20; 34  35             //插入一个公式符号 + 36             ShapeObject shape3 = para1.AppendShape(50, 50, ShapeType.Plus); 37             shape3.FillColor = Color.DarkCyan; 38             shape3.StrokeColor = Color.LightGreen; 39             shape3.LineStyle = ShapeLineStyle.Single; 40             shape3.StrokeWeight = 1; 41             shape3.HorizontalPosition = 140; 42             shape3.VerticalPosition = 20; 43  44             //插入一颗星形 45             ShapeObject shape4 = para1.AppendShape(50, 50, ShapeType.Star); 46             shape4.FillColor = Color.Red; 47             shape4.StrokeColor = Color.Gold; 48             shape4.LineStyle = ShapeLineStyle.Single; 49             shape4.HorizontalPosition = 200; 50             shape4.VerticalPosition = 20; 51  52             //插入一个立方体 53             ShapeObject shape5 = para1.AppendShape(50, 50, ShapeType.Cube); 54             shape5.FillColor = Color.OrangeRed; 55             shape5.StrokeColor = Color.Orange; 56             shape5.LineStyle = ShapeLineStyle.Single; 57             shape5.HorizontalPosition = 260; 58             shape5.VerticalPosition = 20; 59  60             //插入一个圆柱体 61             ShapeObject shape6 = para1.AppendShape(50, 50, ShapeType.Can); 62             shape6.FillColor = Color.Goldenrod; 63             shape6.StrokeColor = Color.Gold; 64             shape6.LineStyle = ShapeLineStyle.Single; 65             shape6.HorizontalPosition = 320; 66             shape6.VerticalPosition = 20; 67  68             //插入一个箭头 69             ShapeObject shape7 = para1.AppendShape(50, 50, ShapeType.Arrow); 70             shape7.FillColor = Color.Yellow; 71             shape7.StrokeColor = Color.Yellow; 72             shape7.LineStyle = ShapeLineStyle.Single; 73             shape7.HorizontalPosition = 20; 74             shape7.VerticalPosition = 80; 75  76             //插入一个v形臂章图形 77             ShapeObject shape8 = para1.AppendShape(50, 50, ShapeType.Chevron); 78             shape8.FillColor = Color.YellowGreen; 79             shape8.StrokeColor = Color.Yellow; 80             shape8.LineStyle = ShapeLineStyle.Single; 81             shape8.HorizontalPosition = 80; 82             shape8.VerticalPosition = 80; 83  84             //插入一个循环箭头图形 85             ShapeObject shape9 = para1.AppendShape(50, 50, ShapeType.CircularArrow); 86             shape9.FillColor = Color.Green; 87             shape9.StrokeColor = Color.Yellow; 88             shape9.LineStyle = ShapeLineStyle.Single; 89             shape9.HorizontalPosition = 140; 90             shape9.VerticalPosition = 80; 91  92             //插入一个云图形 93             ShapeObject shape10 = para1.AppendShape(50, 50, ShapeType.CloudCallout); 94             shape10.FillColor = Color.LightSkyBlue; 95             shape10.StrokeColor = Color.White; 96             shape10.LineStyle = ShapeLineStyle.Single; 97             shape10.HorizontalPosition = 200; 98             shape10.VerticalPosition = 80; 99 100             //插入一个环形图101             ShapeObject shape11 = para1.AppendShape(50, 50, ShapeType.Donut);102             shape11.FillColor = Color.Pink;103             shape11.StrokeColor = Color.White;104             shape11.LineStyle = ShapeLineStyle.Single;105             shape11.HorizontalPosition = 260;106             shape11.VerticalPosition = 80;107 108             //插入一个波浪形状图109             ShapeObject shape12 = para1.AppendShape(50, 50, ShapeType.DoubleWave);110             shape12.FillColor = Color.Plum;111             shape12.StrokeColor = Color.White;112             shape12.LineStyle = ShapeLineStyle.Single;113             shape12.HorizontalPosition = 320;114             shape12.VerticalPosition = 80;115 116             //插入一个礼结状图形117             ShapeObject shape13 = para1.AppendShape(50, 50, ShapeType.EllipseRibbon);118             shape13.FillColor = Color.RosyBrown;119             shape13.StrokeColor = Color.White;120             shape13.LineStyle = ShapeLineStyle.Single;121             shape13.HorizontalPosition = 20;122             shape13.VerticalPosition = 140;123 124             //插入一个心形图125             ShapeObject shape14 = para1.AppendShape(50, 50, ShapeType.Heart);126             shape14.FillColor = Color.Red;127             shape14.StrokeColor = Color.White;128             shape14.LineStyle = ShapeLineStyle.Single;129             shape14.HorizontalPosition = 80;130             shape14.VerticalPosition = 140;131 132             //插入一个六边形图形133             ShapeObject shape15 = para1.AppendShape(50, 50, ShapeType.Hexagon);134             shape15.FillColor = Color.DarkCyan;135             shape15.StrokeColor = Color.White;136             shape15.LineStyle = ShapeLineStyle.Single;137             shape15.HorizontalPosition = 140;138             shape15.VerticalPosition = 140;139 140             //插入一个不规则图形141             ShapeObject shape16 = para1.AppendShape(50, 50, ShapeType.IrregularSeal1);142             shape16.FillColor = Color.DeepPink;143             shape16.StrokeColor = Color.White;144             shape16.LineStyle = ShapeLineStyle.Single;145             shape16.HorizontalPosition = 200;146             shape16.VerticalPosition = 140;147 148             //插入一个月亮形状149             ShapeObject shape17 = para1.AppendShape(50, 50, ShapeType.Moon);150             shape17.FillColor = Color.Violet;151             shape17.StrokeColor = Color.White;152             shape17.LineStyle = ShapeLineStyle.Single;153             shape17.HorizontalPosition = 260;154             shape17.VerticalPosition = 140;155 156             //插入一个"禁止"形状157             ShapeObject shape18 = para1.AppendShape(50, 50, ShapeType.NoSmoking);158             shape18.FillColor = Color.Yellow;159             shape18.StrokeColor = Color.Goldenrod;160             shape18.LineStyle = ShapeLineStyle.Single;161             shape18.HorizontalPosition = 320;162             shape18.VerticalPosition = 140;163 164             //保存并打开文档165             doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);166             System.Diagnostics.Process.Start("InsertShapes.docx");167         }168     }169 }

C# 绘制Word形状——基本形状、组合形状

 

(二)添加组合形状

步骤1:添加如下using指令

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;

 

步骤2:创建文档,添加section、paragraph

Document doc = new Document();
Section sec = doc.AddSection();
Paragraph para1 = sec.AddParagraph();

 

步骤3:添加文字,并应用格式到文字

C# 绘制Word形状——基本形状、组合形状

para1.AppendText("中日文化交流");
ParagraphStyle style1 = new ParagraphStyle(doc);
style1.Name = "titleStyle";
style1.CharacterFormat.Bold = true;
style1.CharacterFormat.FontName = "隶书";
style1.CharacterFormat.FontSize = 30f;
doc.Styles.Add(style1);
para1.ApplyStyle("titleStyle");
para1.Format.HorizontalAlignment = HorizontalAlignment.Center;

C# 绘制Word形状——基本形状、组合形状

 

步骤4:实例化段落2,并创建一个形状组合,并设置大小

//实例化段落2Paragraph para2 = sec.AddParagraph();//创建一个形状组合并设置大小ShapeGroup shapegr = para2.AppendShapeGroup(300, 300);

 

步骤5:绘制一个中国国旗,这里需要组合形状矩形和五角星形,并填充相应的颜色

C# 绘制Word形状——基本形状、组合形状

 //添加一个矩形到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
            {
                Width = 900,
                Height = 500,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Red,
                StrokeColor = Color.Red,                
                StrokeWeight = 1,
            });            //添加第一个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 100,
                Height = 100,
                VerticalPosition = 90,
                HorizontalPosition = 90,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });            //添加第二个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 40,
                HorizontalPosition = 210,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });            //添加第三个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 80,
                HorizontalPosition = 280,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });            //添加第四个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 160,
                HorizontalPosition = 280,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });            //添加第五个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 220,
                HorizontalPosition = 210,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });

C# 绘制Word形状——基本形状、组合形状

 

步骤6:绘制一个日本国旗,需要组合形状矩形和圆形,并填充颜色

C# 绘制Word形状——基本形状、组合形状

//绘制一个矩形并添加到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
            {
                Width = 900,
                Height = 500,
                VerticalPosition = 700,
                HorizontalPosition = 600,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.WhiteSmoke,
                StrokeColor = Color.WhiteSmoke,
                StrokeWeight = 1,
            });            //绘制一个圆形并添加到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Ellipse)
            {
                Width = 250,
                Height = 250,
                VerticalPosition = 800,
                HorizontalPosition = 900,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Red,
                StrokeColor = Color.Red,
                StrokeWeight = 1,
            });

C# 绘制Word形状——基本形状、组合形状

 

步骤7:保存文档

//保存并打开文档doc.SaveToFile("InsertShapegroups.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("InsertShapegroups.docx");

 

添加效果:

C# 绘制Word形状——基本形状、组合形状

(此时的图形是组合后的效果,任意拖动图形不会出现各个形状分离、错位的情况。)

全部代码:

C# 绘制Word形状——基本形状、组合形状

C# 绘制Word形状——基本形状、组合形状

  1 using Spire.Doc;  2 using Spire.Doc.Documents;  3 using Spire.Doc.Fields;  4 using System.Drawing;  5   6 namespace InsertShapesGroup_Doc  7 {  8     class Program  9     { 10         static void Main(string[] args) 11         { 12             //创建一个Document实例并添加section及paragraph 13             Document doc = new Document(); 14             Section sec = doc.AddSection(); 15             Paragraph para1 = sec.AddParagraph(); 16             //添加文字,并应用格式到文字 17             para1.AppendText("中日文化交流"); 18             ParagraphStyle style1 = new ParagraphStyle(doc); 19             style1.Name = "titleStyle"; 20             style1.CharacterFormat.Bold = true; 21             style1.CharacterFormat.FontName = "隶书"; 22             style1.CharacterFormat.FontSize = 30f; 23             doc.Styles.Add(style1); 24             para1.ApplyStyle("titleStyle"); 25             para1.Format.HorizontalAlignment = HorizontalAlignment.Center; 26  27             //实例化段落2 28             Paragraph para2 = sec.AddParagraph(); 29             //创建一个形状组合并设置大小 30             ShapeGroup shapegr = para2.AppendShapeGroup(300, 300); 31  32             //添加一个矩形到形状组合 33             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle) 34             { 35                 Width = 900, 36                 Height = 500, 37                 LineStyle = ShapeLineStyle.Single, 38                 FillColor = Color.Red, 39                 StrokeColor = Color.Red,                 40                 StrokeWeight = 1, 41             }); 42  43             //添加第一个五角星到形状组合 44             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star) 45             { 46                 Width = 100, 47                 Height = 100, 48                 VerticalPosition = 90, 49                 HorizontalPosition = 90, 50                 LineStyle = ShapeLineStyle.Single, 51                 FillColor = Color.Yellow, 52                 StrokeColor = Color.Yellow, 53                 StrokeWeight = 1, 54             }); 55             //添加第二个五角星到形状组合 56             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star) 57             { 58                 Width = 50, 59                 Height = 50, 60                 VerticalPosition = 40, 61                 HorizontalPosition = 210, 62                 LineStyle = ShapeLineStyle.Single, 63                 FillColor = Color.Yellow, 64                 StrokeColor = Color.Yellow, 65                 StrokeWeight = 1, 66             }); 67             //添加第三个五角星到形状组合 68             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star) 69             { 70                 Width = 50, 71                 Height = 50, 72                 VerticalPosition = 80, 73                 HorizontalPosition = 280, 74                 LineStyle = ShapeLineStyle.Single, 75                 FillColor = Color.Yellow, 76                 StrokeColor = Color.Yellow, 77                 StrokeWeight = 1, 78             }); 79             //添加第四个五角星到形状组合 80             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star) 81             { 82                 Width = 50, 83                 Height = 50, 84                 VerticalPosition = 160, 85                 HorizontalPosition = 280, 86                 LineStyle = ShapeLineStyle.Single, 87                 FillColor = Color.Yellow, 88                 StrokeColor = Color.Yellow, 89                 StrokeWeight = 1, 90             }); 91             //添加第五个五角星到形状组合 92             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star) 93             { 94                 Width = 50, 95                 Height = 50, 96                 VerticalPosition = 220, 97                 HorizontalPosition = 210, 98                 LineStyle = ShapeLineStyle.Single, 99                 FillColor = Color.Yellow,100                 StrokeColor = Color.Yellow,101                 StrokeWeight = 1,102             });103 104             //绘制一个矩形并添加到形状组合105             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)106             {107                 Width = 900,108                 Height = 500,109                 VerticalPosition = 700,110                 HorizontalPosition = 600,111                 LineStyle = ShapeLineStyle.Single,112                 FillColor = Color.WhiteSmoke,113                 StrokeColor = Color.Wheat,114                 StrokeWeight = 1,115             });116             //绘制一个圆形并添加到形状组合117             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Ellipse)118             {119                 Width = 250,120                 Height = 250,121                 VerticalPosition = 800,122                 HorizontalPosition = 900,123                 LineStyle = ShapeLineStyle.Single,124                 FillColor = Color.Red,125                 StrokeColor = Color.Red,126                 StrokeWeight = 1,127             });    128 129             //保存并打开文档130             doc.SaveToFile("InsertShapegroups.docx", FileFormat.Docx2010);131             System.Diagnostics.Process.Start("InsertShapegroups.docx");132         }133     }134 }

 

以上全部是关于Word中绘制图形形状的内容。如需转载,请注明出处!


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《C# 绘制Word形状——基本形状、组合形状》的版权归原作者「DotNet开发跳槽」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注DotNet开发跳槽微信公众号

DotNet开发跳槽微信公众号:gh_98bfb3afe7eb

DotNet开发跳槽

手机扫描上方二维码即可关注DotNet开发跳槽微信公众号

DotNet开发跳槽最新文章

精品公众号随机推荐