? ? ? ? ? ? ? ? ? ? ? ? ? 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.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 的更多內容點擊 這里 。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
