You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:49:37