为什么我不能使用 C# VSTO(空引用异常)使用 Word 365 从 Word 文档复制图像?
Why can I not copy images from Word document with Word 365 using C# VSTO (null ref exception)?
我有一个我开发的 Word 加载项 VSTO 程序。该程序的功能之一是检查 Word 中的每个段落中的图形/图像,如果找到它们,则从该段落中复制图像,并将其保存到用户 PC 上的文件夹中。
用于执行此操作的代码很简单:
image.Range.Copy();
然后获取我使用的图像:
System.Drawing.Image clipboardImage = Clipboard.GetImage();
然后我使用以下方法保存它:
clipboardImage.Save(pathToDirectory);
这在早期版本的 Word 上可以正常工作,但对于 365(我认为 2013 虽然未确认),它在尝试使用 Clipboard.GetImage();[= 获取图像时抛出空引用异常13=]
有人知道为什么会这样吗?为什么Word 365(不是浏览器版本,而是完全安装在本地)会出现问题。
正如您在评论中提到的,您使用的是 Visual Studio 2015 和 .Net 4.5
如前所述 here,Office 365 仅适用于 Visual Studio 2017 和 .Net 4.6.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
}
我有一个我开发的 Word 加载项 VSTO 程序。该程序的功能之一是检查 Word 中的每个段落中的图形/图像,如果找到它们,则从该段落中复制图像,并将其保存到用户 PC 上的文件夹中。
用于执行此操作的代码很简单:
image.Range.Copy();
然后获取我使用的图像:
System.Drawing.Image clipboardImage = Clipboard.GetImage();
然后我使用以下方法保存它:
clipboardImage.Save(pathToDirectory);
这在早期版本的 Word 上可以正常工作,但对于 365(我认为 2013 虽然未确认),它在尝试使用 Clipboard.GetImage();[= 获取图像时抛出空引用异常13=]
有人知道为什么会这样吗?为什么Word 365(不是浏览器版本,而是完全安装在本地)会出现问题。
正如您在评论中提到的,您使用的是 Visual Studio 2015 和 .Net 4.5
如前所述 here,Office 365 仅适用于 Visual Studio 2017 和 .Net 4.6.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
}