Word控件Spire.Doc 【图像形状】教程(6): 如何在 C#、VB.NET 的 Word 文档中插入形状和形状组

news2024/11/26 2:24:07

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。在 C#、VB.NET 中从 Word 中提取图像。

Spire.Doc for.NET 最新下载(qun:767755948)icon-default.png?t=M85Bhttps://www.evget.com/product/3368/download

MS Word 允许用户从形状菜单中选择形状,将其拖放到页面上的任何所需位置。从 Spire.Doc 版本 6.0 或更高版本开始,我们添加了一个使用代码处理形状的新功能。以下部分将介绍如何使用 Spire.Doc 在 Word 文档中的指定位置插入形状和形状组。

代码片段:

第 1 步:初始化 Document 类的新实例。

Document doc = new Document();

第 2 步:在 Word 文档中添加一个新部分,并在该部分中添加一个段落。

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

第 3 步:通过调用 AppendShape() 方法将形状添加到段落中。为了定位形状的放置位置,您只需设置 ShapeObject 类的 HorizontalPosition 和 VerticalPosition 属性。我们还可以通过设置 FillColor、StrokeColor 和 LineStyle 属性来格式化形状。

ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Heart);

shape1.FillColor = Color.Red;
shape1.StrokeColor = Color.Red;
shape1.HorizontalPosition = 200;
shape1.VerticalPosition = 100;

ShapeObject shape2 = para1.AppendShape(100, 100, ShapeType.Arrow);

shape2.FillColor = Color.Purple;
shape2.StrokeColor = Color.Black;
shape2.LineStyle = ShapeLineStyle.Double;
shape2.StrokeWeight = 3;
shape2.HorizontalPosition = 200;
shape2.VerticalPosition = 200;

第 4 步:添加一个新段落并通过调用 AppendShapeGroup() 方法将一个形状组插入该段落。

Paragraph para2 = sec.AddParagraph();
ShapeGroup shapegr = para2.AppendShapeGroup(200, 400);

shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
{
Width = 500,
Height = 300,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Blue,

StrokeWeight = 1.5,
});
shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.RightTriangle)
{
Width = 500,
Height = 300,
VerticalPosition = 301,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Green,
StrokeWeight = 1.5,
});
shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.QuadArrow)
{
Width = 500,
Height = 300,
VerticalPosition = 601,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Blue,
StrokeWeight = 1.5,
});

第 5 步:将文档保存到文件中。

doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);

结果

完整代码

[C#]

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
namespace InsertShape
{
class Program
{
static void Main(string[] args)
{
Document doc = new Document();
Section sec = doc.AddSection();
Paragraph para1 = sec.AddParagraph();

ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Heart);

shape1.FillColor = Color.Red;
shape1.StrokeColor = Color.Red;
shape1.HorizontalPosition = 200;
shape1.VerticalPosition = 100;

ShapeObject shape2 = para1.AppendShape(100, 100, ShapeType.Arrow);

shape2.FillColor = Color.Purple;
shape2.StrokeColor = Color.Black;
shape2.LineStyle = ShapeLineStyle.Double;
shape2.StrokeWeight = 3;
shape2.HorizontalPosition = 200;
shape2.VerticalPosition = 200;

Paragraph para2 = sec.AddParagraph();
ShapeGroup shapegr = para2.AppendShapeGroup(200, 400);

shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
{
Width = 500,
Height = 300,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Blue,

StrokeWeight = 1.5,
});
shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.RightTriangle)
{
Width = 500,
Height = 300,
VerticalPosition = 301,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Green,
StrokeWeight = 1.5,
});
shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.QuadArrow)
{
Width = 500,
Height = 300,
VerticalPosition = 601,
LineStyle = ShapeLineStyle.ThickThin,
StrokeColor = System.Drawing.Color.Blue,
StrokeWeight = 1.5,
});

doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);
}
}
}

[VB.NET]

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing
Namespace InsertShape
Class Program
Private Shared Sub Main(args As String())
Dim doc As New Document()
Dim sec As Section = doc.AddSection()
Dim para1 As Paragraph = sec.AddParagraph()

Dim shape1 As ShapeObject = para1.AppendShape(50, 50, ShapeType.Heart)

shape1.FillColor = Color.Red
shape1.StrokeColor = Color.Red
shape1.HorizontalPosition = 200
shape1.VerticalPosition = 100

Dim shape2 As ShapeObject = para1.AppendShape(100, 100, ShapeType.Arrow)

shape2.FillColor = Color.Purple
shape2.StrokeColor = Color.Black
shape2.LineStyle = ShapeLineStyle.[Double]
shape2.StrokeWeight = 3
shape2.HorizontalPosition = 200
shape2.VerticalPosition = 200

Dim para2 As Paragraph = sec.AddParagraph()
Dim shapegr As ShapeGroup = para2.AppendShapeGroup(200, 400)

shapegr.ChildObjects.Add(New ShapeObject(doc, ShapeType.Rectangle) With { _
Key .Width = 500, _
Key .Height = 300, _
Key .LineStyle = ShapeLineStyle.ThickThin, _
Key .StrokeColor = System.Drawing.Color.Blue, _
Key .StrokeWeight = 1.5 _
})
shapegr.ChildObjects.Add(New ShapeObject(doc, ShapeType.RightTriangle) With { _
Key .Width = 500, _
Key .Height = 300, _
Key .VerticalPosition = 301, _
Key .LineStyle = ShapeLineStyle.ThickThin, _
Key .StrokeColor = System.Drawing.Color.Green, _
Key .StrokeWeight = 1.5 _
})
shapegr.ChildObjects.Add(New ShapeObject(doc, ShapeType.QuadArrow) With { _
Key .Width = 500, _
Key .Height = 300, _
Key .VerticalPosition = 601, _
Key .LineStyle = ShapeLineStyle.ThickThin, _
Key .StrokeColor = System.Drawing.Color.Blue, _
Key .StrokeWeight = 1.5 _
})

doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010)
End Sub
End Class
End Namespace

以上便是如何在 C# 中将文本环绕在图像周围,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天河超算,安装Hypre

1)下载,解压 略 得到目录:hypre-master 源文件在src目录下面 src包含如下目录: 2)cmake编译 版本比较新 HYPRE_RELEASE_NAME hypre HYPRE_RELEASE_VERSION 2.26.0 HYPRE_RELEASE_DATE 2022/10/14 HYPRE_RELEASE_TIM…

CT正投影算法归纳

一、CT重建基本原理 CT 系统成像基本模型可以描述成:   f为待重建图像,P为投影数据,W为系统矩阵,其中,投影矩阵反映探测器上的投影与重建物体的关系,其模型刻画对于重建速度和精度有着重要影响。 二、…

Java:多线程基础(一)-创建线程的两种方式

目录 线程与进程 Thread类 创建线程的两种方式 方式1:继承Thread类 方式2:实现Runnable接口 * 方式2延伸:实现Callable接口 Callable接口 Futuretask类 返回线程计算结果:get() Callable:创建子线程…

Redis实战之共享session + jwt 实现登录拦截、刷新token

共享session问题 每个tomcat中都有一份属于自己的session,假设用户第一次访问第一台tomcat,并且把自己的信息存放到第一台服务器的session中,但是第二次这个用户访问到了第二台tomcat,那么在第二台服务器上,肯定没有第一台服务器…

百度边止血边扩张

在经过一系列的“内部调整”之后,百度交出了一份超预期的财报。北京时间11月22日,百度发布了截至2022年9月30日的第三季度财务报告。第三季度,百度实现营收325.4亿元,同比增长2%;归属百度的净利润(non-GAAP…

在线杂志小程序开发,开启在线阅读时代

互联网技术的快速发展,让人们越来越依赖从网络上查看各种新闻资讯。传统的纸质杂志已经很难顺应时代的发展脚步,但是人们对于杂志的需求并没有减少。因此为了更好的满足众多读者对于杂志的需求,开发在线杂志小程序是十分必要的。在线杂志阅读…

时光倒流-第12届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第88讲。 蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选…

医院预约小程序源码,挂号陪护就医功能,提供全方位服务

随着人口老龄化形式加剧,年轻人工作压力大,没有闲余时间陪伴父母老人,因此针对解决独自去医院排队以及现代化设备需要等要求,而衍生出来的一个新型行业-挂号陪护。医院预约小程序源码开发的出现无非就是解决了这一难题&#xff0c…

教培行业迎来重大变局,三大方向或成新机遇

“双减”政策落地,教培行业迎来重大变局。校内教育深化改革正在路上,而学科类机构或将踏上转型之路,结合政策和市场来看,素质教育类、职业教育类、教育数字化3大方向或成新机遇。 “双减”的总体思路是什么呢? 教育部有…

[附源码]计算机毕业设计SpringbootON-FIT

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

QGIS下载在线地图(Google 卫星、esri 卫星)

前言 国内外有很多在线地图下载软件,但功能单一,基本上只能下载数据,无法做GIS分析,且多为收费,即便是免费,也多少有所限制。 在QGIS中,可以完全免费且迅速下载在线地图,首先请看阅…

Kafka集群环境的部署

Kafka集群环境的搭建一、Kafka集群二、搭建两台服务器2.1、 zookeeper部署2.2、 启动1号机器的broker2.3、 启动2号机器的broker2.4、查看kafka集群2.5、测试集群总结后言一、Kafka集群 二、搭建两台服务器 笔者的两台服务器IP: 服务器IP1号192.168.11.592号192.1…

matplotlib你真的明白plt,fig和ax吗

你真的明白plt,fig和ax吗? plt系列接口是用来模仿MATLAB的风格的。如果用户熟悉MATLAB,还是建议以plt为主的。对于基本的画图,plt系列足够了。 个人觉得,真正不合适的用法,反而是各种混淆plt接口和其它更细…

单目相机模型

针孔相机模型 针孔相机模型是实际研究中最常用的模型。针孔是一个中间有一个小孔的假想墙壁,光只能从小孔通过。 fff是摄像机焦距,ZZZ是摄像机到物体的距离,XXX是物体长度,是图像平面上的物体长度。由相似三角形可得&#xff1a…

护眼灯真的可以保护眼睛吗?市面上的护眼台灯到底是不是智商税

护眼灯能不能保护眼睛,护眼灯是不是智商税,这是很多人一直以来都有的疑惑,其实啊,这并不难判断,直接入手体验一下就知道了,有没有护眼效果,照明体验是否舒适,一试便知。 护眼灯怎样…

Java解决鸡兔同笼问题

1 问题 利用java程序:输入鸡和兔的总数和总腿数,来计算兔子和鸡的各个数量。 2 方法 import java.util.Scanner; /** * 已知鸡和兔的总数量为n,总腿数为m。 * 输入n和m,依次输出鸡和兔的数目, * 如果无解,则输出“No answer” */ …

[漏洞复现]Text4shell(CVE-2022-42889)

文章目录简介影响版本环境搭建漏洞复现漏洞修复参考简介 Apache Commons Text 项目实现了一系列关于文本字符串的算法,专注于处理字符串和文本块。10月13日,Apache发布安全公告,修复了Apache Commons Text中的一个远程代码执行漏洞&#xff…

GJB 5000B简介

“软件定义装备”是武器装备信息化职能化发展的比如趋势,J用软件在信息化战争和J事智能化进程中起着基础性决定性作用。 1、GJB 5000由来 1991年 推出CMM 目的:用来衡量组织软件综合能力 2000年,SEI发布CMMIV1.0(Capability Maturity Model Integration)能力成熟度模型集…

「低碳」不是特步的解药

(图片来源于网络,侵删) 文|螳螂观察 作者|叶小安 一双跑鞋就能减少碳排放424克,相当于回收16个饮料瓶。 这样一双低碳跑鞋,你会购买吗? 今年进博会上,特步带来了首款Mass Balance低碳环保概…

资本赋能,跨境电商Starday逐鹿年终场

国内巨头很早就看到跨境电商行业的发展前景了,最有代表性的就是阿里巴巴旗下的全球速卖,其在2012年就开始布局并开展跨境电商业务了,这些年来,诸如字节跳动、京东、拼多多等国内电商巨头纷纷跟上阿里巴巴步伐,进军跨境…