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

Примеры работы с Api документ конструктора в Docker

Обновлено: 01.07.24

0. Схема

0.1 Видео с примером работы решения

1. Описание API

  • GET /files/{имя результирующего файла} — результирующий файл
  • POST /run — form multipart @param(filename) — файл с программой для DC
  • POST /upload — form multipart @param(filename) — файл для редактирования

2. Типовые шаблоны

2.1. Создание документа

2.1.1. Загружаем и выполняем программу

curl -sS -D - -F 'filename=@examples/docx.js' http://localhost:8080/run

Листинг файла docx.js для примера

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();

2.1.2. Выгружаем финальный результат

curl -sS -D - 'http://localhost:8080/files/docconstructorTextEditor.docx'

Пример полученного файла

docconstructorTextEditor ↗

2.2. Редактирование документа

2.2.1. Загружаем шаблон для редактирования

curl -sS -D - -F 'filename=@examples/test11.xls' http://localhost:8080/upload

Пример загруженного файла ↗

2.2.2. Загружаем и выполняем программу

curl -sS -D - -F 'filename=@examples/edxls.js' http://localhost:8080/run

Листинг файла edxls.js для примера

builder.OpenFile("test11.xls");
var oWorksheet = Api.GetActiveSheet();
 
oWorksheet.SetName("sheet 1");
oWorksheet.GetRange("B1").SetValue("Row 1");
oWorksheet.GetRange("C1").SetValue("Row 2");
oWorksheet.GetRange("D1").SetValue("Row 3");
oWorksheet.GetRange("A2").SetValue("Category 1");
oWorksheet.GetRange("A3").SetValue("Category 2");
oWorksheet.GetRange("A4").SetValue("Category 3");
oWorksheet.GetRange("A5").SetValue("Category 4");
oWorksheet.GetRange("B2").SetValue("4.3");
oWorksheet.GetRange("B3").SetValue("2.5");
oWorksheet.GetRange("B4").SetValue("3.5");
oWorksheet.GetRange("B5").SetValue("4.5");
oWorksheet.GetRange("C2").SetValue("2.4");
oWorksheet.GetRange("C3").SetValue("4.4");
oWorksheet.GetRange("C4").SetValue("1.8");
oWorksheet.GetRange("C5").SetValue("2.8");
oWorksheet.GetRange("D2").SetValue("2");
oWorksheet.GetRange("D3").SetValue("2");
oWorksheet.GetRange("D4").SetValue("3");
oWorksheet.GetRange("D5").SetValue("5");
var oChart = oWorksheet.AddChart("'sheet 1'!$A$1:$D$5", true, "bar", 2, 100 * 36000, 70 * 36000, 0, 2 * 36000, 9, 3 * 36000);
oChart.SetVerAxisTitle("Vertical Title", 10);
oChart.SetHorAxisTitle("Horizontal Title", 11);
oChart.SetLegendPos("right");
oChart.SetShowDataLabels(false, false, true, false);
oChart.SetTitle("Main Chart Title", 13);
var oFill = Api.CreateSolidFill(Api.CreateRGBColor(51, 51, 51));
oChart.SetSeriesFill(oFill, 0, false);
oFill = Api.CreateSolidFill(Api.CreateRGBColor(255, 111, 61));
oChart.SetSeriesFill(oFill, 1, false);
oFill = Api.CreateSolidFill(Api.CreateRGBColor(128, 128, 128));
oChart.SetSeriesFill(oFill, 2, false);
oFill = Api.CreateSolidFill(Api.CreateRGBColor(255, 213, 191));
oChart.SetSeriesFill(oFill, 3, false);
oWorksheet.AddDefName("chart data", "Sheet1!$A$1:$D$5");
oWorksheet.GetRange("A8").SetValue("We defined a name 'chart data' for a range of cells A1:D5.");
var oGs1 = Api.CreateGradientStop(Api.CreateRGBColor(255, 213, 191), 0);
var oGs2 = Api.CreateGradientStop(Api.CreateRGBColor(255, 111, 61), 100000);
oFill = Api.CreateLinearGradientFill([oGs1, oGs2], 5400000);
var oStroke = Api.CreateStroke(0, Api.CreateNoFill());
oWorksheet.AddShape("flowChartOnlineStorage", 60 * 36000, 35 * 36000, oFill, oStroke, 0, 2 * 36000, 25, 3 * 36000);
oWorksheet.FormatAsTable("A1:D5");
 
builder.SaveFile("xlsx", "example.xls");
builder.CloseFile();

2.2.3. Выгружаем финальный результат

curl -sS -D - 'http://localhost:8080/files/example.xls'

Пример полученного файла ↗