为什么我不能使用C#VSTO从Word文档中复制带有365的图像(空引用异常)?

时间:2019-05-17 13:09:22

标签: c# ms-word vsto

我有一个已开发的Word加载项VSTO程序。该程序执行的功能之一是检查Word中的每个段落中的图形/图像,如果找到它们,则从该段落中复制图像,并将其保存到用户PC上的文件夹中。

用于执行此操作的代码很简单:

image.Range.Copy();

然后获取我使用的图像:

System.Drawing.Image clipboardImage = Clipboard.GetImage(); 

然后我使用以下命令保存它:

clipboardImage.Save(pathToDirectory);

这在Word的早期版本上可以正常运行,但是使用365(我认为2013,尽管未确认)会在尝试使用Clipboard.GetImage()获取图像时引发空引用异常。

有人知道为什么会这样吗?为什么Word 365可能有问题(不是浏览器版本,而是在本地完全安装)。

2 个答案:

答案 0 :(得分:1)

最后,这是适用于365的东西:

image.Range.Select();
image.Application.Selection.Copy();

System.Drawing.Image clipboardImage = null;
if (Clipboard.ContainsImage())
{
     clipboardImage = Clipboard.GetImage();

     //do something with the image on the clipboard
}

答案 1 :(得分:0)

如评论中所述,您正在将Visual Studio 2015与.Net 4.5一起使用

here所述,Office 365 仅适用于Visual Studio 2017和.Net 4.6.1 (及更高版本)。