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

系统 2587 0

                          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 " );  
 }  

 

 

结果

 

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

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++;  
                 }  
             }  
         }  
     }  
 }  

   

    结果

 

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

 

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 " );  
 }   

       

      在替换前

 

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

 

     将图片替换为文字后

 

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

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

 

总结

 

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

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

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论