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.Documents;
using Spire.Doc.Fields;
using System.Drawing;
在Word文檔中創建並插入圖像:
// 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圖片代碼:
{
// 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的更多內容點擊這里。
