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的更多內容點擊這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM