Мы разрабатываем приложение .NET WPF, которое используется для рисования фигур, написания текста и вставки изображений.Недавно мы добавили функцию вставки изображений из буфера обмена Windows, используя System.Windows.Forms.Clipboard
и метод getImage()
.
Нам нужно реализовать функцию вставки объектов из Microsoft PowerPoint.При выборе нескольких объектов на странице PowerPoint и копировании - PowerPoint создает изображение, которое содержит все выбранные объекты.Мы хотим реализовать так, чтобы при вставке из PowerPoint мы могли читать список объектов из буфера обмена и вставлять их как отдельные объекты.Это должно быть возможно, поскольку PowerPoint сохраняет объекты в буфере обмена несколькими способами - это можно проверить, скопировав несколько объектов из PowerPoint и вставив в Word, объекты будут вставлены отдельно.Мы хотим сделать то же самое в нашем приложении.
Когда я копирую несколько объектов в powerpoint, тогда делаю Clipboard.GetDataObject().GetFormats();
, я получаю список форматов данных, хранящихся в буфере обмена.Список выглядит следующим образом:
- «Предпочитаемый эффект DropEffect»
- «InShellDragLoop»
- «Дескриптор объекта»
- »Внутренняя тема PowerPoint 12.0"
- " Внутренняя цветовая схема PowerPoint 12.0 "
- " Внутренние формы PowerPoint 12.0 "
- " Art :: GVML ClipFormat "
- " PNG "
- "JFIF"
- "GIF"
- "System.Drawing.Bitmap"
- "Растровое изображение"
- "EnhancedMetafile"
- "MetaFilePict"
- "Preferred DropEffect"
Когда я делаю Clipboard.GetData(string format)
с использованием любого из этих форматов, я получаю System.IO.MemoryStream
.Я не знаю, как прочитать его в объект, или список объектов, или как мне к этому подойти.
Мне не удалось найти какую-либо документацию по «Внутренним формам PowerPoint 12.0» илилюбые другие форматы, которые выглядят интересными, и теперь они знают, как их читать и анализировать в коде нашего приложения.
Кто-нибудь смог добиться вставки из приложения Office в «Office-way», т.е.поддержание отдельных объектов?Какой мой лучший подход, чтобы попытаться прочитать и разобрать объекты в буфере обмена?
С уважением, Div