加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# Word文档中插入、提取图片,文字替换图片

发布时间:2020-12-16 01:06:55 所属栏目:百科 来源:网络整理
导读:Download Files: ImageOperationsInWord.zip ? 简介 在这篇文章中我们可以学到在 C# 程序中使用一个 Word 文档对图像的各种操作。图像会比阅读文字更有吸引力,而且图像是与内容紧密相关的。有时图像可以将内容描述的更为清晰,就像使用图表显示某一周期内的

Download Files:ImageOperationsInWord.zip

?

简介

在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作。图像会比阅读文字更有吸引力,而且图像是与内容紧密相关的。有时图像可以将内容描述的更为清晰,就像使用图表显示某一周期内的数据变化。

?

Spire.Doc for .NET是一个的基于.NET 专业Word组件,它不仅可以在脱离微软office自动化的情况下快速地生成、打开、修改、保存Word文档 ,还支持用户使用C#将图像插入Word并根据页面设置它的大小。这篇就是介绍给大家一个简单的方法来插入图像----使用Spire.Doc for .NET。

?

以下就是我们要学习的操作步骤:

1、Word文档中插入一张图片。

2、Word文档中提取一张图片。

3、文档中将图片替换成文字。

?

在进行这些操作之前我们要先创建Word文档。在这里我使用Spire.Doc for .NET来创建文档并完成后续的操作。

? ?

创建一个控制台程序来做演示。根据以下步骤:????????

1、打开Visual Studio????????

2、"File" -> "New" -> "Project..."????????

3、选择C#语言然后选择控制台程序并命名为“ImageOperationInWord”????????

4、单击OK

?

Word中插入图片

首先,创建新的Word文档并为之添加章节和段。然后,使用p.AppendPicture(Image)方法将图像插入到新段中。设置图像的高度和宽度属性来规定图片大小。使用以下代码来用C#把图片插入到Word中。

?

Namespace 使用:

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

?

?

Word文档中创建并插入图像:

?

?private?static?void?InsertImage() ?
{??
?//Create?Document??
? Document?document?=?new?Document();??
? Section?s?=?document.AddSection();??
??Paragraph?p?=?s.AddParagraph();??
?
? //Insert?Image?and?Set?Its?Size??
? DocPicture?Pic?=?p.AppendPicture(Image.FromFile(@"D:C#?Corner.png"));??
? Pic.Width?=?500;??
? Pic.Height?=?500;??

Save?and?Launch??
? document.SaveToFile("Image.docx",?FileFormat.Docx);??
? System.Diagnostics.Process.Start(");??
?} ?

?

?

结果

?

?

Word文档中提取图片

?在这里我们学习下如何在C#中从已存在的Word文档中提取图片并将图片保存到指定的路径。图片是一种属于段落项目的文档对象。Spire.Doc for .NET?提供了一个DocumentObject类来存储文档中的图像,并且还提供DocPicture类来获得和设置文档中的图像。在这里我使用了ExtractImages.docx并在其中保存了两幅图。在输出图像文件夹中我们可以看到红色框中的来自Word文档的两幅图像。

?

?提取Word图片代码:

?

?void?ExtractImages()??
?{??
?????//Load?document??
?????Document?document?=?new?Document(D:ExtractImages.docx");??
?????int?index?=?0;??
???
?????Get?Each?Section?of?Document??
?????foreach?(Section?section?in?document.Sections)??
?????{??
?????????Get?Each?Paragraph?of?Section??
?????????foreach?(Paragraph?paragraph?in?section.Paragraphs)??
?????????{??
? ? ? ? ? ??Get?Each?Document?Object?of?Paragraph?Items??
?????????????foreach?(DocumentObject?docObject?in?paragraph.ChildObjects)??
?????????????{??
?????????????????If?Type?of?Document?Object?is?Picture,?Extract.??
?????????????????if?(docObject.DocumentObjectType?==?DocumentObjectType.Picture)??
?????????????????{??
?????????????????????DocPicture?pic?=?docObject?as?DocPicture;??
?????????????????????String?imgName?=?String.Format(D:Extracted_Image-{}.pngSave?Image??
?????????????????????pic.Image.Save(imgName,?System.Drawing.Imaging.ImageFormat.Png);??
?????????????????????index++;??
?????????????????}??
?????????????}??
?????????}??
?????}??
?}??

??

? ?结果

?

? ??

?

?

Word文档中将图片替换为文字

? ? 我们来看下?Spire.Doc是如何帮助开发者们解决他们关于office技术的程序问题的。观察以上问题的描述,我们最终是想使用相应的“C# Corner Demo Example - {image index}”?来将Word文件中的每幅图都替换掉。我们还是用下面的演示代码来解决吧。

?

? ?Word文档中的图片替换为文字的代码:

?

?
?void?ReplaceImageWithText()??
?{??
?????Document?doc?=?int?j?=?1;??
?????foreach?(Section?sec?in?doc.Sections)??
????{??
?????????foreach?(Paragraph?para?in?sec.Paragraphs)??
?????????{??
?????????????List<DocumentObject>?images?=?new?List<DocumentObject>();??
?????????????foreach?(DocumentObject?docObj?in?para.ChildObjects)??
???
????????????{??
?????????????????if?(docObj.DocumentObjectType?==?DocumentObjectType.Picture)??
?????????????????{??
?????????????????????images.Add(docObj);??
????????????????}??
?????????????}??
?????????????foreach?(DocumentObject?pic?in?images)??
?????????????{??
?????????????????int?index?=?para.ChildObjects.IndexOf(pic);??
?????????????????TextRange?range?=?new?TextRange(doc);??
?????????????????range.Text?=?string.Format(C#?Corner?Demo?Example?{}D:result.docx");??
?}???

? ? ??

? ? ? 在替换前

?

? ? ??

?

? ? ?将图片替换为文字后

?

? ? ??

? ?注意:更详细的代码请下载最上面的附加的压缩包。

?

总结

?

? ?希望大家看完后都理解了如何以编程方式在Word文档中对图像进行操作。如果大家有其他的关于图像操作的好建议,欢迎讨论哦。

关于Spire.Doc的更多内容点击这里

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读