C# 中使用word文档对图像进行操作

C# 中使用Word文档对图像进行操作

Download Files: ImageOperationsInWord.zip

简介

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

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

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

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

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

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

在进行这些操作之前我们要先创建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 使用:

1. using Spire.Doc;

2. using Spire.Doc.Documents;

3. using Spire.Doc.Fields;

4. using System.Drawing;

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

1. private static void InsertImage()

2. {

3.     //Create Document

4.     Document document = new Document();

5.     Section s = document.AddSection();

6.     Paragraph p = s.AddParagraph();

7.

8.     //Insert Image and Set Its Size

9.     DocPicture Pic = p.AppendPicture(Image.FromFile(@"D:\C# Corner.png"));

10.     Pic.Width = 500;

11.     Pic.Height = 500;

12.

13.     //Save and Launch

14.     document.SaveToFile("Image.docx", FileFormat.Docx);

15.     System.Diagnostics.Process.Start("Image.docx");

16. }

结果

从Word文档中提取图片

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

提取Word图片代码:

1. private static void ExtractImages()

2. {

3.     //Load document

4.     Document document = new Document(@"D:\ExtractImages.docx");

5.     int index = 0;

6.

7.     //Get Each Section of Document

8.     foreach (Section section in document.Sections)

9.     {

10.         //Get Each Paragraph of Section

11.         foreach (Paragraph paragraph in section.Paragraphs)

12.         {

13.             //Get Each Document Object of Paragraph Items

14.             foreach (DocumentObject docObject in paragraph.ChildObjects)

15.             {

16.                 //If Type of Document Object is Picture, Extract.

17.                 if (docObject.DocumentObjectType == DocumentObjectType.Picture)

18.                 {

19.                     DocPicture pic = docObject as DocPicture;

20.                     String imgName = String.Format(@"D:\Extracted_Image-{0}.png", index);

21.

22.                     //Save Image

23.                     pic.Image.Save(imgName, System.Drawing.Imaging.ImageFormat.Png);

24.                     index++;

25.                 }

26.             }

27.         }

28.     }

29. }

结果

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

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

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

1. private static void ReplaceImageWithText()

2. {

3.     Document doc = new Document(@"D:\ExtractImages.docx");

4.     int j = 1;

5.     foreach (Section sec in doc.Sections)

6.     {

7.         foreach (Paragraph para in sec.Paragraphs)

8.         {

9.             List<DocumentObject> images = new List<DocumentObject>();

10.             foreach (DocumentObject docObj in para.ChildObjects)

11.

12.             {

13.                 if (docObj.DocumentObjectType == DocumentObjectType.Picture)

14.                 {

15.                     images.Add(docObj);

16.                 }

17.             }

18.             foreach (DocumentObject pic in images)

19.             {

20.                 int index = para.ChildObjects.IndexOf(pic);

21.                 TextRange range = new TextRange(doc);

22.                 range.Text = string.Format("C# Corner Demo Example {0}", j);

23.                 para.ChildObjects.Insert(index, range);

24.                 para.ChildObjects.Remove(pic);

25.                 j++;

26.             }

27.         }

28.     }

29.     doc.SaveToFile(@"D:\result.docx", FileFormat.Docx);

30.     System.Diagnostics.Process.Start(@"D:\result.docx");

31. }

在替换之前

将图片替换为文字后

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

总结

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

关于Spire.Doc的更多内容点击这里(http://www.e-iceblue.com/Introduce/Word-for-net-introduce.html)。

ce/word-for-net-introduce.html)。

时间: 2024-10-07 19:01:22

C# 中使用word文档对图像进行操作的相关文章

在Delphi中处理word文档与数据库的互联 1

在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可避免:即从以Delphi开发的前台界面输入图形,并保存到相应的数据库字段中.在这种形式的图形处理中,BMP文件的处理比较简单,因为Delphi本身有Image和DBImage构件,用这些构件与数据库中可以保存图形的大型字段BLOB比较容易地进行数据交换.以这种方式进行图形处理已应用在许多MIS软件中

在Delphi中处理word文档与数据库的互联

---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可避免:即从以Delphi开发的前台界面输入图形,并保存到相应的数据库字段中.在这种形式的图形处理中,BMP文件的处理比较简单,因为Delphi本身有Image和DBImage构件,用这些构件与数据库中可以保存图形的大型字段BLOB比较容易地进行数据交换.以这种方式进行图形处理已应用在许多MIS软件中,包括处理人员照片的人事档案系统等. ---- 

手机PDF转换Word文档转换工具的操作步骤

之前PDF转换成Word文档在电脑上才可以操作,但是随着科技的进步现在在手机上也可以实现了,这样会更大程度的节约转换的时间,也方便了我们的工作,那具体要怎样操作呢?请看下面这篇文章. 前期准备:安装运行迅捷PDF转换器.将需要转换的PDF文件保存在手机文件管理中. 操作步骤: 1:运行软件在"PDF转换其他"的页面选择"PDF转换Word" 2:在新出现的添加文件页面找到需要添加的文件,然后点击文件的名称. 3:确定转换的文件是否正确,如果正确就点击确定转换. 4:

ios在项目中打开word文档、ppt等总结

最近在项目开发中遇到下载附件文档预览需求,在这里总结一下我的实现方法,本文最后会附带我写的demo下载地址 这里我总结了三种实现方法(1)用webView预览(2)通过UIDocumentInteractionController实现跳转(3)应用Quick Look系统框架,下面依次介绍各个方法实现 首先来看用webView这个比较常用,不做过多解释,代码如下: _webView = [[UIWebView alloc]initWithFrame:self.view.bounds]; _web

Java环境中,word文档转PDF直接打开浏览而非下载

在平台上,需要把文档直接浏览而非下载,实现方法是先把文档转为PDF文件, 但在linux系统中确实汉字字库,所以转换失败,以下是解决方法 后面正式服务器也要添加字库,不然会转换出乱码文件,处理步骤如下:1.将Windows上字体文件 C:\Windows\Fonts目录,复制到服务器的/usr/share/fonts目录2.运行sudo fc-cache -f -v命令刷新字体缓存3.重启服务器 但正式服务器转换文件出错,tomcat没报错误,显示程序卡住,查错方法写个demo跑, 报“Can'

C#关于word文档的书签替换操作

public void Get_Word(string gjbh) { try { DataSet ds = OperaterBase.GetDsBySql("select diffTableName from public_Data where gjbh='" + gjbh + "'"); string mode_bh = ds.Tables[0].Rows[0]["diffTableName"].ToString(); //模板word路径

Java Web项目中使用Freemarker生成Word文档

Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的内容放上${}占位符,就可以使用像Freemarker这样的模板引擎将出现占位符的地方替换成真实数据,这种方式较之其他的方案要更为简单. 下面举一个简单的例子,比如在Web页面中填写个人简历,然后点击保存下载到本地,效果图如下所示. 打开下

Word文档怎么插入到CAD中

对于CAD行业的小伙伴们来说,CAD编辑器是我们在CAD绘图中不可缺少的一个办公软件,但是很多小伙伴们都知道它可以拿来绘制CAD图纸,却很少人知道Word文档也可以插入到CAD中来.但是Word文档怎么插入到CAD中,小伙伴们都知道吗?下面小编就来教教大家操作方法. 第一步:首先,将电脑打开,在电脑中任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD编辑器(专业版),之后点击进入官网,根据系统提示操作步骤下载最新版本的CAD编辑器到电脑桌面上. 第二步:之后,将电脑桌面上的编辑器进行打开进入

怎样翻译word文档中的英文,仅需三分钟即可搞定

怎样翻译word文档中的英文?在职场办公当中,难免会遇到外国客户.在与外国客户沟通.合作的过程当中,所使用得合作文件.资料的内容几乎都是英文.这也就使得英文不好的职员,除了准备合作资料外还需要花费大量时间去查阅单词,翻译语句,大大降低了工作效率.今天小编就将告诉大家如何快速有效地翻译word文档中的英文. 使用工具:迅捷pdf转换https://www.xunjiepdf.com/converter 1.大部分翻译工具,都只能单个单词或者逐句翻译,就算能翻译整段也是有次数限制.这样就会导致翻译出