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


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

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

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

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

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