C# 替换Word中的图片
我们在替换Word中的图片时,可以用图片或者文本来替换,下面的经验内容将分享通过C#代码来Word图片替换的方法。
工具/原料
Free Spire.Doc for .NET(免费版)
Visual Studio
dll文件下载及引用:
1、获取方法1:通过e-iceblue官网下载。下载后,解压文件,安装程序。安装完成后,将安装路径下Bin文件夹下的Spire.Doc.dll添加引用至VS程序。如下图:
2、获取方法2:可通过Nuget网站搜索下载。
【示例1】用文本替换图片
1、using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Collections.Generic;using System.Drawing;namespace ReplaceImgWithText{ class Program { static void Main(string[] args) { //加载测试文档 Document doc = new Document(); doc.LoadFromFile("test.docx"); //获取指定段落 Paragraph para = doc.Sections[0].Paragraphs[4]; List<object> pictures = new List<object>(); //获取段落中的图片 foreach (DocumentObject docObj in para.ChildObjects) { if (docObj.DocumentObjectType == DocumentObjectType.Picture) { pictures.Add(docObj); } } //用文本替换图片 foreach (DocumentObject pic in pictures) { int index = para.ChildObjects.IndexOf(pic); TextRange range = new TextRange(doc); range.Text = string.Format("图片1"); para.ChildObjects.Insert(index, range); para.ChildObjects.Remove(pic); } //保存文档 doc.SaveToFile("ReplaceImgWithText.docx", FileFormat.Docx); System.Diagnostics.Process.Start("ReplaceImgWithText.docx"); } }}
2、替换效果:
【示例2】图片替换图片
1、using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawin爿讥旌护g;namespace ReplaceImgWithImg{ class Program { static void Main(string[] args) { //加载测试文档 Document doc = new Document(); doc.LoadFromFile("test.docx"); //获取指定段落 Paragraph para = doc.Sections[0].Paragraphs[4]; //遍历段落中的所有子对象 foreach (DocumentObject docObj in para.ChildObjects) { //加载图片替换子对象为图片的对象 if (docObj.DocumentObjectType == DocumentObjectType.Picture) { DocPicture picture = docObj as DocPicture; picture.LoadImage(Image.FromFile("tp.png")); } } //保存文档 doc.SaveToFile("ReplaceImgWithImg.docx"); System.Diagnostics.Process.Start("ReplaceImgWithImg.docx"); } }}
2、替换效果: