Поделиться через


Работа с потоками

В этом разделе рассматривается класс Open XML SDK Run и его связь со схемой WordprocessingML в формате файлов Open XML.


Потоки в WordprocessingML

В следующей выдержке из стандарта ISO/IEC 29500 представлен элемент потока WordprocessingML в формате Open XML.

Следующим уровнем иерархии документа (после абзаца) является поток, который определяет область текста с общим набором свойств. Поток представляется элементом r, который позволяет генератору объединять разрывы, стили или свойства форматирования, используя одинаковые данные для всех частей потока.

У потока, как и у абзацев, могу быть свойства. Свойства всех элементов внутри элемента r управляются соответствующим необязательным элементом свойств потока rPr, который должен быть первым дочерним элементом элемента r. В свою очередь, элемент rPr является контейнером для набора элементов свойств, которые применяются к остальным дочерним элементам элемента r. Элементы внутри элемента контейнера rPr позволяют потребителю задавать, будет ли текст в следующих элементах t, например, полужирным, подчеркнутым или видимым. К свойствам потока, помимо прочего, относятся "полужирный", "граница", "стиль символа", "цвет, "шрифт", "размер шрифта", "курсив", "кернинг", "отключить проверку правописания/грамматики", "тени", "малые прописные", "зачеркнутый", "направление текста" и "подчеркнутый".

© ISO/IEC 29500: 2016

В следующей таблице перечислены самые распространенные классы пакета Open XML SDK для работы с потоками.

Элемент XML Класс пакета SDK Open XML
p Paragraph
rPr RunProperties
t Текст

Класс Run

Класс Open XML SDK Run представляет элемент run <r> , определенный в схеме формата файлов Open XML для документов WordprocessingML, как описано выше. Используйте объект Run для управления отдельным <r> элементом в документе WordprocessingML.

Класс RunProperties

В WordprocessingML свойства элемента run задаются с помощью элемента свойств <rPr> выполнения. Вот некоторые примеры свойств потока: полужирный шрифт, граница, стиль знака, цвет, шрифт, размер шрифта, курсив, кернинг, отключение проверки правописания, тень, малые прописные буквы, зачеркивание, направление текста и подчеркивание. Используйте объект , RunProperties чтобы задать свойства для выполнения в документе WordprocessingML.

Объект Text

В элементе <r> text (<t>) является контейнером для текста, который составляет содержимое документа. Класс пакета SDK Text OXML представляет <t> элемент . Объект Text используется для размещения текста в документе Wordprocessing.


Пример кода Open XML SDK

В следующем коде производится добавление текста в основную часть указанного документа WordprocessingML. Объект Run задает границы области текста внутри абзаца, а с помощью объекта RunProperties потоку присваивается свойство "полужирный".

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

static void WriteToWordDoc(string filepath, string txt)
{
    // Open a WordprocessingDocument for editing using the filepath.
    using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filepath, true))
    {
        // Assign a reference to the existing document body.
        MainDocumentPart mainDocumentPart = wordprocessingDocument.MainDocumentPart ?? wordprocessingDocument.AddMainDocumentPart();
        mainDocumentPart.Document ??= new Document();
        Body body = mainDocumentPart.Document.Body ?? mainDocumentPart.Document.AppendChild(new Body());

        // Add new text.
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());

        // Apply bold formatting to the run.
        RunProperties runProperties = run.AppendChild(new RunProperties(new Bold()));
        run.AppendChild(new Text(txt));
    }
}

После запуска кода в документ WordprocessingML, указанный в этом коде, записывается следующий XML-код.

    <w:p>
      <w:r>
        <w:rPr>
          <w:b />
        </w:rPr>
        <w:t>String from WriteToWordDoc method.</w:t>
      </w:r>
    </w:p>

См. также

Сведения о пакете SDK Open XML для Office

Работа с абзацами

Как применить стиль к абзацу в текстовом документе

Как открыть документ Word и добавить в него текст