C#基于Microsoft.Office.Interop.Word插入图片位置异常问题求助
C#基于Microsoft.Office.Interop.Word插入图片位置异常问题求助
嘿Kev,我看了你的代码,问题出在AddPicture方法的调用上——你没指定要插入图片的目标范围,它默认就会插到文档最开头啦!
你在WriteBookImage里新建了段落paraTop,但调用doc.InlineShapes.AddPicture时没有关联这个段落的Range,所以Word就默认把图片放到文档起始位置了。只需要给AddPicture方法指定插入的目标Range,就能让图片出现在你预期的段落位置。
修改后的WriteBookImage方法代码如下:
private void WriteBookImage(int im) { paraTop = doc.Content.Paragraphs.Add(ref oMissing); if (im == 0) { // 指定插入到新建段落的Range中 doc.InlineShapes.AddPicture(@"C:\Users\fred\source\repos\xxx\wwwroot\images\yyy.png", ref oMissing, ref oMissing, paraTop.Range); } paraTop.Range.InsertParagraphAfter(); }
解释下:AddPicture方法的第四个参数就是用来指定插入位置的Range对象,把它设为你刚创建的paraTop.Range,图片就会插入到这个新建的段落里,自然就是紧跟在之前内容的后面了。另外要注意,这里需要传入ref oMissing作为前两个可选参数(链接到文件、随文档保存),保持和你现有代码的参数风格一致。
备注:内容来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

