Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Пример сборки текстового документа с добавлением форматирования, оглавления и нумерацией страниц

Обновлено: 17.12.25

Создаем текстовый документ. Используя метод CreateRun, создаем текстовый блок для вставки в текущий абзац.
Для перехода на новую строку используем метод AddLineBreak. Все сформированные изменения записываем в параграф методом Push.
Для получения большей информации о работе с параграфами изучите страницу — Справочник методов класса ApiParagraph текстового документа ↗.
После формирования главной страницы, добавляем разрыв страницы методом AddPageBreak.
Для построения оглавления используем метод AddTableOfContents и передаём ему свойства, описанные в переменной oTocPr. Более детально про параметры оглавления ознакомьтесь на странице Глобальные определения, раздел  TocPr Свойства оглавления.

builder.CreateFile("docx"); 
var oDocument = Api.GetDocument();
var oNewDocumentStyle = oDocument.GetStyle("Heading 1");
var oParagraph = oDocument.GetElement(0);
var oRun = Api.CreateRun();
var EvenOdd;
oParagraph.SetStyle(oNewDocumentStyle);
oParagraph.SetJc("center");
oParagraph.AddText("Лев Николаевич");
oParagraph.AddLineBreak();
oParagraph.AddText("Толстой");
oParagraph.AddLineBreak();
oParagraph.AddLineBreak();
oParagraph.AddText("Война и мир");
oDocument.Push(oParagraph); 

oParagraph.AddPageBreak();
function MakeoParagraph(runNumber, headerText, textMessage) {
  if (runNumber % 2 == 0) { EvenOdd = " нечётная"; } else { EvenOdd = " чётная"; }
  var oParagraph3 = Api.CreateParagraph();
  var oNewDocumentStyle = oDocument.GetStyle("Heading 2");
  oParagraph3.SetStyle(oNewDocumentStyle);
  oParagraph3.AddText(headerText + " №"+ (runNumber +1) + EvenOdd);
  oDocument.Push(oParagraph3); 
  oParagraph3.AddElement(oRun);  
  oDocument.Push(oParagraph3);
  var oParagraph4 = Api.CreateParagraph(); 
  oParagraph4.AddText(textMessage);
  oParagraph4.AddElement(oRun);  
  oParagraph4.AddPageBreak();
  oDocument.Push(oParagraph4);
}

for (let nRunIncrease = 0; nRunIncrease < 5; ++nRunIncrease) {
  MakeoParagraph (nRunIncrease, "Глава", "Князь Василий говорил всегда лениво, как актер говорит роль старой пиесы. Анна Павловна Шерер, напротив, несмотря на свои сорок лет, была преисполнена оживления и порывов.");
}

var oParagraph2 = Api.CreateParagraph();
oParagraph2.AddText("Последний Абзац. Абзац.");
oDocument.Push(oParagraph2);

var oSection = oDocument.GetFinalSection();
oFooter = oSection.GetFooter("default", true);
oParagraph = oFooter.GetElement(0);
oParagraph.SetJc("center");
oParagraph.AddText("Страница №");
oParagraph.AddPageNumber();

var oTocPr = {"ShowPageNums": true, "RightAlgn": true, "LeaderType": "dot", "FormatAsLinks": true, "BuildFrom": {"OutlineLvls": 9}, "TocStyle": "standard"};
oDocument.AddTableOfContents(oTocPr); 

builder.SaveFile("docx", "docconstructorTextEditor.docx");
builder.CloseFile();