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

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

Обновлено: 29.05.26

Создаем текстовый документ. Используя метод 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();

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое