我们正在开发.NET WPF应用程序,该应用程序用于绘制形状,编写文本和粘贴图像。我们最近添加了使用System.Windows.Forms.Clipboard
和getImage()
方法从Windows剪贴板粘贴图像的功能。
我们需要实现从Microsoft PowerPoint中粘贴对象的功能。在PowerPoint页面中选择多个对象并进行复制时-PowerPoint会生成包含所有选定对象的图像。我们想要实现,以便从PowerPoint中粘贴,我们可以从剪贴板中读取对象列表并将其作为单个对象粘贴。这应该是可能的,因为PowerPoint以几种方式将对象存储在剪贴板中-可以通过从PowerPoint复制许多对象并将其粘贴到Word中进行验证,然后将对象分别粘贴。我们想在我们的应用程序中做同样的事情。
当我在Powerpoint中复制许多对象时,然后Clipboard.GetDataObject().GetFormats();
我得到存储在剪贴板中的数据格式列表。该列表如下所示:
当我使用上述任何一种格式进行Clipboard.GetData(string format)
时,我都会得到一个System.IO.MemoryStream
。我不知道如何将其读入一个对象或对象列表中,或者如何处理。
我找不到关于“ PowerPoint 12.0内部形状”的文档,也找不到任何其他有趣的格式,并且现在知道如何阅读它们并在我们的应用程序代码中解析它们。
有没有人设法通过“ Office-way”中的Office应用程序实现粘贴,即维护单个对象?我尝试读取和解析剪贴板中对象的最佳方法是什么?
亲切的问候, div