首页 > 解决方案 > 将 PowerPoint 中的对象粘贴到 C# 应用程序中

问题描述

我们正在开发一个用于绘制形状、写入文本和粘贴图像的 .NET WPF 应用程序。我们最近添加了使用System.Windows.Forms.ClipboardgetImage()方法从 Windows 剪贴板粘贴图像的功能。

我们需要实现从 Microsoft PowerPoint 粘贴对象的功能。在 PowerPoint 页面中选择多个对象并进行复制时 - PowerPoint 会生成一个包含所有选定对象的图像。我们想要实现,以便从 PowerPoint 粘贴,我们可以从剪贴板中读取对象列表并将它们作为单独的对象粘贴。这应该是可能的,因为 PowerPoint 以多种方式将对象存储在剪贴板中 - 可以通过从 PowerPoint 复制多个对象并粘贴到 Word 中来验证,对象将单独粘贴。我们想在我们的应用程序中做同样的事情。

当我在 powerpoint 中复制一些对象时,Clipboard.GetDataObject().GetFormats();我会得到一个存储在剪贴板中的数据格式列表。该列表如下所示:

当我Clipboard.GetData(string format)使用这些格式中的任何一种时,我会返回一个System.IO.MemoryStream. 我不知道如何将它读入一个对象或对象列表,或者我应该如何处理它。

我还没有找到关于“PowerPoint 12.0 Internal Shapes”或任何其他看起来很有趣的格式的文档,现在知道如何在我们的应用程序代码中阅读和解析它们。

有没有人设法以“Office 方式”从 Office 应用程序中实现粘贴,即维护单个对象?尝试读取和解析剪贴板中的对象的最佳方法是什么?

亲切的问候, 迪夫

标签: c#.netms-officepowerpointclipboard

解决方案


推荐阅读