DocX ReplaceText с использованием форматированного текста из набора инструментов Xceed WPF Toolkit - PullRequest
0 голосов
/ 06 октября 2018

Невозможно использовать 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, но похоже, что он добавляет абзац к документу (а я до сих пор не решил проблему с форматированием).Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 09 октября 2018

Если вы хотите заменить теги на значения, я рекомендую вам использовать «шаблонизатор» для docx.Я случайно создал его сам: https://github.com/open-xml-templating/docxtemplater

С версией с открытым исходным кодом вам, в основном, будет хорошо, если вы захотите заменить теги простым текстом или выполнить циклы / условия (другие расширенные функции, такие как HTML).вставки платные расширения).

...