首页 > 代码库 > C# 中使用word文档对图像进行操作

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)。

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