Замените жирный текст в MS Word 2007 на <b> текст </ b>, используя C # .NET

2

Я хочу найти все жирные текстовые вхождения в документе MS Word 2007 и заменить каждый жирный "текст на <text> "

Подобно следующему псевдокоду

foreach boldText in WordDocument
{
    string replacedText = "< " + boldText + " >";
    WordDocument.replace(boldText ,replacedText );
}

WordDocument.save();
Теги:
ms-word
interop

1 ответ

3

Что вы можете сделать, это примерно так:

private void ReplaceBoldText(Microsoft.Office.Interop.Word.Document doc)
{
    foreach(Microsoft.Office.Interop.Word.Range rng in doc.StoryRanges)
    {
        foreach (Microsoft.Office.Interop.Word.Range rngWord in rng.Words)
        {
            if (rngWord.Bold != 0)
            {
                rngWord.Bold = 0;
                rngWord.Text = "<b>" + rngWord.Text + "</b>";
            }
        }
    }
}

Это изменит каждый ТЕКСТ на <b>TEXT</b>. Если вы хотите проверить каждый символ, чтобы увидеть, выделен ли он, вам нужно выполнить итерацию через rngWord.Characters. Возможно, вам понадобится дополнительная работа для инкапсуляции последовательных жирных символов, но база такова, как указано выше.

Если вы только беспокоитесь о целых словах, то выше будет работать нормально.

Надеюсь, что это поможет.

  • 0
    : как получить доступ к одному конкретному StoryRanges. Например, я хочу отобразить текст одного конкретного StoryRanges типа WdStoryType.wdTextFrameStory.How я получаю? Пожалуйста, помогите мне ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню