Невозможно использовать Microsoft.Office.Interop.Word
, я использую Xceed DocX , чтобы взять данные из полей WPF и записать их в файл Word.Мне нужно заменить «field»
в файле Word текстом и форматированием из RTB .Если я использую что-то простое, как это:
/// <summary>
/// Replaces field location with given formatted text
/// </summary>
/// <param name="mergeField">Target location</param>
/// <param name="textToWrite">Rich, formatted text to process and insert</param>
public static void FindReplaceRich(string mergeField, string textToWrite)
{
while (document.FindAll(mergeField).Count > 0)
{
document.ReplaceText("«" + mergeField + "»", textToWrite);
}
}
Приведенный выше код используется для неформатированного текста, и поэтому в этом случае мой файл Word получает глупую, RTF-пометку, добавленную прямо в документ, например: {\ rtf1 \ ansi \ ansicpg1252 \ uc1 \ htmautsp \ deff0 {\ fonttbl {\ f0 \ fcharset0 Times New Roman;}} {\ colortbl \ red0 \ green0 \ blue0; \ red255 \ green255 \ blue255; \ red124 \ green252 \ blue0;} \ loch \ hich \ dbch \ pard \ plain \ ltrpar \ itap0 {\ lang1033 \ fs18 \ f0 \ cf0 \ cf0 \ ql {\ f0 {\ ltrch Это} {\ highlight2 \ ltrch Действительно} {\ ltrch тупой.} \ li0 \ ri0 \ sa0 \ sb0 \ fi0 \ ql \ par}}}
Итак, как мне обработать этот форматированный текст, чтобы я мог вставить его в свой файл Word с помощью Xceed's DocXбиблиотека?
До сих пор я пытался использовать Clibboard , как описано здесь , но я не уверен, правильно ли я копирую текст или как я применяю применениевставленный контент.Я также пытаюсь использовать DocX InsertParagraph
, но похоже, что он добавляет абзац к документу (а я до сих пор не решил проблему с форматированием).Любая помощь будет высоко ценится.