Работа с потоками
В этом разделе рассматривается класс 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