Работа с абзацами
В этом разделе рассматривается класс Open XML SDK Paragraph и его связь со схемой WordprocessingML в формате файлов Open XML.
Абзацы в WordprocessingML
Следующий фрагмент из спецификации ISO/IEC 29500 познакомит вас с элементом Open XML WordprocessingML, используемом для представления абзаца в документе WordprocessingML.
Самая базовая единица содержимого уровня блока в документе WordprocessingML, абзацы хранятся с помощью <p>
элемента . Абзац определят обособленный раздел содержимого, начинающийся с красной строки. Абзац может содержать три типа данных: необязательные свойства абзаца, внутреннее содержимое (обычно пробеги) и набор необязательных идентификаторов исправлений, используемых для сравнения содержимого двух документов.
Свойства абзаца задаются с помощью <pPr>
элемента . Примеры свойств абзаца: выравнивание, границы, расстановка переносов, отступы, междустрочный интервал, заливка, направление текста и запрет висячих строк.
© ISO/IEC 29500: 2016
В следующей таблице представлены основные классы Open XML SDK для работы с абзацами.
Элемент WordprocessingML | Класс пакета SDK Open XML |
---|---|
p | Paragraph |
pPr | ParagraphProperties |
r | Run |
t | Текст |
Класс Paragraph
Класс Open XML SDK Paragraph представляет элемент абзаца <p>
, определенный в схеме формата файла Open XML для документов WordprocessingML, как описано выше.
Используйте объект Paragraph для управления отдельными <p>
элементами в документе WordprocessingML.
Класс ParagraphProperties
В WordprocessingML свойства абзаца задаются с помощью элемента свойств <pPr>
абзаца.
Примеры свойств абзаца: выравнивание, границы, расстановка переносов, отступы, междустрочный интервал, заливка, направление текста и запрет висячих строк. Класс пакета SDK ParagraphProperties OXML представляет <pPr>
элемент .
Класс Run
Абзацы текстового документа обычно содержат текст. В схеме формата файла OXML для документов WordprocessingML элемент run <r>
предоставляется для демаркации области текста. Класс пакета SDK Run OXML представляет <r>
элемент .
Объект Text
В элементе <r>
текстовый <t>
элемент является контейнером для текста, который составляет содержимое документа. Класс пакета SDK Text OXML представляет <t>
элемент .
Пример кода Open XML SDK
Следующий код создает экземпляр объектаАбзац пакета SDK Open XML, а затем использует его для добавления текста в документ WordprocessingML.
// <Snippet0>
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System;
static void WriteToWordDoc(string filepath, string txt)
{
// Open a WordprocessingDocument for editing using the filepath.
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filepath, true))
{
if (wordprocessingDocument is null)
{
throw new ArgumentNullException(nameof(wordprocessingDocument));
}
// 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 a paragraph with some text.
Paragraph para = body.AppendChild(new Paragraph());
Run run = para.AppendChild(new Run());
run.AppendChild(new Text(txt));
}
}
// </Snippet0>
WriteToWordDoc(args[0], args[1]);
См. также
Сведения о пакете SDK Open XML для Office