Встраивание объектов в Microsoft Word и OpenOffice Writer - PullRequest
4 голосов
/ 07 января 2010

Я ищу ссылки на то, как реализовать следующую функцию:

способность встраивать объекты (например, диаграммы) в текстовые процессоры и редактировать их в соответствующих «материнских» приложениях

Например, MS Word и Visio работают вместе, что позволяет пользователю легко редактировать / настраивать диаграммы после добавления их в текстовый процессор.

Меня интересует, как это сделать на следующих платформах:

  • Microsoft Word
  • OpenOffice

Пока я знаю, что:

  • Microsoft Word - использует OLE / COM
  • Open Office - использует UNO

Можете ли вы указать мне какие-либо ссылки, примеры, книги о том, как подойти к этому?

PS: Каждый раз, когда я пытаюсь найти MSDN для этого, у меня складывается впечатление, что я не в том месте. = (* 1 029 *

Ответы [ 2 ]

4 голосов
/ 07 января 2010

Поскольку OLE - это почти доисторическая технология (все еще используемая), вам нужно немного углубиться в MSDN. В приведенной ниже статье описывается пример приложения, которое может быть встроено в контейнерные приложения, такие как IE, Word или OpenOffice. Образец основан на VC6, поэтому я не знаю, сколько вам повезет, чтобы запустить его с текущими версиями Visual Studio.

Создание сервера OLE

Вероятно, наиболее простым вариантом создания элемента управления OLE (.ocx) является использование старого Visual Basic 6. Это описано здесь:

Как создать и использовать минимальный компонент ActiveX в VB

Можно также написать элемент управления в управляемом коде, например C #, но я предполагаю, что это не рекомендуется 1 , поскольку это может привести к конфликтам, если текущий процесс уже выполняет другую версию CLR До сих пор в процессе может существовать только одна версия CLR, в .NET 4.0 будет введено параллельное выполнение CLR). Я нашел следующий учебник:

Создание ActiveX в .NET Шаг за шагом

1 См. Предупреждение внизу этой статьи от Эндрю Уайтчепела.

1 голос
/ 24 января 2010

Это все еще довольно легко сделать в Word, используя COM (или OLE, но это то же самое, что и с новым именем). В зависимости от того, на каком языке вы собираетесь это делать, вы будете действовать по-разному. По сути, вам нужно создать особый вид элемента управления ActiveX.

В Delphi (самый простой язык для этого) вы создадите ActiveXForm в COM-DLL, а затем сможете внедрить это в ваш текстовый документ. Вы можете заставить свое приложение делать все, что угодно, внутри Word (общение с Word немного сложнее, но возможно).

Боюсь, я понятия не имею, что делать в OpenOffice.

Я думаю, вам нужно вернуться с более конкретными вопросами.

...