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

简介: C# 中使用Word文档对图像进行操作Download Files: ImageOperationsInWord.zip简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作。

                          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文档中将图片替换成文字。

 

在进行这些操作之前我们要先创建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( " Image.docx ");  
 }  

 

 

结果

 

 

Word文档中提取图片

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

 

 提取Word图片代码:

 

  private  static  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-{}.png ", index);  
  
                      // Save Image  
                     pic.Image.Save(imgName, System.Drawing.Imaging.ImageFormat.Png);  
                     index++;  
                 }  
             }  
         }  
     }  
 }  

  

   结果

 

     

 

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

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

 

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

 

 
  private  static  void ReplaceImageWithText()  
 {  
     Document doc =  new Document( @" D:\ExtractImages.docx ");  
      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 {} ", j);  
                para.ChildObjects.Insert(index, range);  
                 para.ChildObjects.Remove(pic);  
                 j++;  
     }
     }  
     doc.SaveToFile( @" D:\result.docx ", FileFormat.Docx);  
     System.Diagnostics.Process.Start( @" D:\result.docx ");  
 }   

      

      在替换前

 

      

 

     将图片替换为文字后

 

      

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

 

总结

 

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

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

目录
相关文章
|
6月前
|
C# 开发工具 数据安全/隐私保护
C# 实现 Word 加盖骑缝章效果
C# 实现 Word 加盖骑缝章效果
|
2月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
24天前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
3月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
184 2
|
5月前
|
并行计算 算法 C#
C# Mandelbrot和Julia分形图像生成程序更新到2010-9-14版 支持多线程计算 多核处理器
此文档是一个关于分形图像生成器的介绍,作者分享了个人开发的M-J算法集成及色彩创新,包括源代码和历史版本。作者欢迎有兴趣的读者留言交流,并提供了邮箱(delacroix_xu@sina.com)以分享资源。文中还展示了程序的发展历程,如增加了真彩色效果、圈选放大、历史记录等功能,并分享了几幅精美的分形图像。此外,还提到了程序的新特性,如导入ini文件批量输出图像和更新一批图片的功能。文档末尾附有多张程序生成的高分辨率分形图像示例。
|
5月前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
6月前
|
XML 存储 C#
C# xml文档反序列化记事
本文介绍了使用XmlSerializer进行XML序列化和反序列化的关键点。包括:1) 以独占方式读取XML文件以避免并发问题;2) 当元素名与类型名不一致时,可通过`[XmlArrayItem]`指定元素名,或创建继承自原始类型的子类;3) 处理DateTime反序列化错误,通过中间字符串属性转换;4) 提到了常用C#特性如`[XmlRoot]`, `[XmlElement]`, `[XmlAttribute]`, `[XmlIgnore]`和`[XmlArrayItem]`的作用。
|
6月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
131 2
|
6月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理