Вставить объект пользовательского интерфейса WPF в документ Word / OpenOffice? - PullRequest
2 голосов
/ 17 февраля 2011

Я работаю над проектом, который должен встраивать пользовательские объекты в документы (Microsoft Word или OpenOffice Writer).По сути, объекты будут похожи на объекты Microsoft Equation или OpenOffice Formula, за исключением того, что они будут визуализировать и позволять редактировать контент, характерный для нашего бизнеса.В конечном итоге документы экспортируются в PDF.

Поскольку все остальное в этом проекте основано на WPF, а наши среды разработки и процессы сборки основаны на .Net, было бы неплохо иметь возможность создавать эти объекты исключительно или почти исключительно из WPF / .Net.

Наиболее очевидный выбор для встраивания объектов в документы - это OLE, но, насколько я могу судить, WPF очень мало поддерживает OLE.

Какие варианты у меня есть?Что лучше (надежнее, эффективнее и проще) сделать это?

(или если кто-то точно знает, что нет другого пути, кроме как перейти на OLE с таким языком, как C ++ или VB6, этобудь хорошим, чтобы знать тоже)

1 Ответ

0 голосов
/ 22 июня 2011

Вы можете сделать это внутри WPF RichTextBox, просто вставив InlineUIContainer (или BlockUIContainer), где можно поместить любой UIElement как кнопку или что-нибудь более сложное.

Затем вы можете преобразовать содержимое RichTextBox, изначально FlowDocument, в RTF, XAML или HTML или в формат Office OpenXML (.docx) с помощью OpenXML SDK.

Возможно, можно заменить RichTexBox реальным окном Microsoft Word, вставить его в ваше приложение WPF и встроить в него элементы управления WPF, как вы это делаете с InlineUIContainer, но я пока не знаю, как это сделать. Я отправлю, если узнаю.

...