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

VSTO技术咨询:如何从嵌入资源向Word文档添加图片?

从嵌入资源向Word文档添加图片的解决方案

你原来的代码无效是因为Resources1.ImageLogo.ToString()返回的是图片对象的类型字符串(比如System.Drawing.Bitmap),而AddPicture方法需要的是实际的文件路径。下面提供两种可行的实现方法:

方法一:通过临时文件加载

将嵌入资源的图片先保存到临时文件,再用AddPicture加载,最后删除临时文件:

using System.IO;
using System.Drawing.Imaging;

// 从嵌入资源获取图片对象
Image logoImage = Resources1.ImageLogo;
// 生成临时文件路径(扩展名需匹配图片格式,此处以PNG为例)
string tempFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".png");

// 将图片保存到临时文件
logoImage.Save(tempFilePath, ImageFormat.Png);

// 定义AddPicture所需的参数
object linkToFile = false;
object saveWithDocument = true;
object missing = Type.Missing;

// 向Word文档添加图片
Globals.ThisDocument.InlineShapes.AddPicture(tempFilePath, ref linkToFile, ref saveWithDocument, ref missing);

// 删除临时文件
File.Delete(tempFilePath);

方法二:通过剪贴板粘贴

把嵌入资源的图片放入剪贴板,再粘贴到Word文档中:

using System.Windows.Forms; // 需引用System.Windows.Forms程序集

// 从嵌入资源获取图片对象
Image logoImage = Resources1.ImageLogo;
// 将图片复制到剪贴板
Clipboard.SetImage(logoImage);

// 粘贴到当前光标位置
Globals.ThisDocument.Application.Selection.Paste();

// 如需指定粘贴位置,可先定位Range再粘贴:
// var targetRange = Globals.ThisDocument.Content;
// targetRange.Paste();

注意:使用剪贴板方法时,确保项目引用了System.Windows.Forms程序集。

内容的提问来源于stack exchange,提问作者Schumacher57

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:30:56