C# 替换Word文档中的图片

来源:互联网 发布:java技术要学多久 编辑:程序博客网 时间:2024/05/21 08:43

C# 替换Word文档中的图片

图片是Word文档中非常常见的一种元素,我们在处理Word文档时经常会对图片进行如添加,提取,替换和删除等操作。之前我已经介绍过如何提取Word文档中的图片,这篇文章将介绍如何使用C#和免费Word组件Free Spire.Doc来替换Word文档中的图片。

我们知道图片替换可分为两种方式,文字替换图片和图片替换图片,接下来我将分两部分对它们进行介绍。

一、文字替换图片

下面的示例展示了如何使用文字替换Word文档中的所有图片:

//加载文档Document document = new Document(@"模板.docx");int j = 1;//遍历文档的所有sectionforeach (Section sec in document.Sections){    //遍历section中的所有段落   foreach (Paragraph para insec.Paragraphs)    {       List<DocumentObject> pictures = new List<DocumentObject>();        //遍历段落中的所有子元素       foreach (DocumentObject docObj inpara.ChildObjects)        {            //获取段落中的图片           if(docObj.DocumentObjectType == DocumentObjectType.Picture)            {               pictures.Add(docObj);            }        }       foreach (DocumentObject pic inpictures)        {            //获取图片的位置(index)           int index =para.ChildObjects.IndexOf(pic);            //插入文本到图片位置            TextRange range = new TextRange(document);           range.Text = string.Format("图片 {0}", j);           para.ChildObjects.Insert(index, range);            //删除图片           para.ChildObjects.Remove(pic);           j++;        }    }}//保存文档document.SaveToFile(@"文本替换.docx", FileFormat.Docx);

替换前后对比图:

 

二、图片替换图片

下面的示例展示了如何使用图片替换Word文档中指定的某一张图片:

//加载文档Document document = new Document(@"模板.docx"); //遍历文档第一个section的所有段落foreach (Paragraphparagraph in document.Sections[0].Paragraphs){   //遍历段落的所有子元素   foreach (DocumentObject docObj inparagraph.ChildObjects){    //获取段落中的图片       if(docObj.DocumentObjectType == DocumentObjectType.Picture)        {            DocPicture picture = docObj as DocPicture;                 if(picture.Title == "Figure 1")            {                //替换标题为“Figure1”的图片               picture.LoadImage(Image.FromFile("玫瑰.jpg"));            }        }    }} //Saves the Word documentdocument.SaveToFile("图片替换.docx");
替换前后对比图:

感谢阅读,希望本文能给大家带来帮助!