将特定部分的range直接替换成一个图片,并删除原内容。打个比方,就像是魔术表演中,魔术师把手中的帽子变成兔子一样。
由于在Word中插入一个图片,必须是本地文件系统中的图片文件,range获取到的图片必须先存储在本地的临时目录,然后再插入到Word的相应位置中。
//处理流程
Range->图片->保存在本地,以png格式->插入到文档中->删除原先range的内容
//伪代码
//range为Word.Range对象
//获取图片
var image = RangeImage.GetRangeRealImage(range);
//保存图片到本地
var FileName = Config.GetInstance().Get("runtimePath") + System.IO.Path.DirectorySeparatorChar + "tmpTable.png";
image.Save(FileName, System.Drawing.Imaging.ImageFormat.Png);
//在原位置插入图片
object SaveWithDocument = true;
object LinkToFile = false;
var wordDoc = range.Document;
object Anchor = wordDoc.Range(range.Start);
var t = wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
//删除原内容
range.Delete();