Вставка объектов из PowerPoint в приложение C # - PullRequest
0 голосов
/ 14 декабря 2018

Мы разрабатываем приложение .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

...