Отредактируйте размер текста / шрифт, используя c # Interop для текста, только что добавленного с помощью "oDoc.Content.Text + = reportText.Heading" - PullRequest
0 голосов
/ 31 октября 2018
        foreach (ReportItem reportItem in reportItems)
        {
            if (reportItem is ReportText reportText)
            {
                oDoc.Content.Text += reportText.Heading;
                oDoc.Content.Text += reportText.Text;
            }

        }
        oDoc.Save();
        oDoc.Close();
        word.Quit();

Каждый элемент отчета имеет текст и заголовок. Я хочу, чтобы заголовок был больше, чем текст, и, возможно, жирным шрифтом. Однако я не знаю, как выбрать тот текст, который только что был введен. Я пытался выбрать абзацы, но это кажется странным, и я не могу понять, что это правильно.

1 Ответ

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

Вместо того, чтобы пытаться присвоить контент всего документа, используйте Range объекты в качестве «целей» данных. Каждый раздел текста, который должен быть отформатирован по-разному, должен быть вставлен отдельно (поэтому вы не можете использовать += для всего содержимого).

Исходя из примера в вопросе, это может выглядеть примерно так:

Word.Range rngTarget = oDoc.Content;
object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;
    foreach (ReportItem reportItem in reportItems)
    {
        if (reportItem is ReportText reportText)
        {
            rngTarget.Text = reportText.Heading;
            rngTarget.Font.Size = 12;
            rngTarget.Bold = -1;
            rngTarget.Collapse(ref oCollapseEnd);
            rngTarget.Text += reportText.Text;
            rngTarget.Font.Size = 10;
            rngTarget.Bold = 0;
            rngTarget.Collapse(ref oCollapseEnd);
        }
    }
    oDoc.Save();
    oDoc.Close();
    word.Quit();

Если вы абсолютно уверены, что должны использовать +=, вам нужно включить «маркеры» в текст, чтобы указать начальную и конечную точки «Заголовок» и «Текст». После того, как содержимое будет вставлено, вам нужно будет использовать функциональность Word Find, чтобы найти их и применить форматирование.

...