c # OpenXML - Как установить строку с форматированным текстом в элементе управления содержимым и сохранить форматирование

Простите меня, я заблудился и сбит с толку!

У меня есть документ с несколькими элементами управления содержимым обычного текста. Пока я могу перечислить SdtElements в документе, найти все интересующие SdtBlocks и при необходимости заменить текст, хорошо.

Затем у меня есть одно поле в формате RichText, которое я могу получить из базы данных в виде строки, и теперь мне нужно вставить его в документ. Я установил в документе элемент управления содержимым расширенного текста, но как мне установить / заменить его строкой расширенного текста и сохранить правильное форматирование?

Чтобы еще больше запутать меня, когда я открываю документ с помощью «Word 2007 Content Control Toolkit», он показывает все элементы управления содержимым, как и ожидалось, и правильно идентифицирует один как тип Rich Text. Однако когда я открываю документ с помощью «Инструмента повышения производительности Open XML SDK 2.0», он показывает элемент управления форматированным текстом как простой простой блок SdtBlock, который кажется совершенно неотличимым от элементов управления содержимым простого текста, а отраженный код кажется идентичным?

Как же тогда установить в документе строку RichText?


person user1460663    schedule 05.07.2012    source источник


Ответы (1)


Элементы управления содержимым с обычным и отформатированным текстом различаются по свойству в свойствах элемента управления содержимым (w: sdt / w: sdtPr).

Элемент управления содержимым с форматированным текстом может содержать абзацы и таблицы WordML, встроенное содержимое и т. Д. В зависимости от того, на каком уровне он находится (блок, встроенный, строка таблицы, ячейка таблицы).

Поэтому вам нужно либо преобразовать содержимое базы данных в соответствующий WordML, либо включить altChunk в элемент управления содержимым и позволить Word сделать это за вас.

person JasonPlutext    schedule 10.07.2012