Структура текстового документа API

Хотя текстовый документ состоит из различных элементов, большинство из них вложены друг в друга, и можно выделить три основных элемента: абзац, таблица и блок управления содержимым. Все остальные элементы являются частью этих трех больших элементов.

Сам текст может быть добавлен непосредственно в абзац, блочный элемент управления содержимым, встроенный элемент управления содержимым текста, диапазон или ячейку таблицы, которая является частью структуры таблицы. Но для удобства (поскольку с маленькими блоками всегда проще работать, чем с большими) текст обычно делится на небольшие порции текста, называемые прогонами. Каждый абзац может состоять как из одного прогона, так и из десятков, в зависимости от сложности абзаца.

В свою очередь, текстовые прогоны содержат сам текст и другие элементы, которые могут быть частью текста: изображения, фигуры, графики.

Кроме текстовых строк, абзацы могут содержать встроенные элементы управления текстовым содержимым и гиперссылки.

Таблица имеет немного более сложную структуру, поскольку она состоит из строк таблицы, которые, в свою очередь, включают в свою структуру ячейки таблицы. Ячейки таблицы могут содержать внутри себя всю структуру управления содержимым абзаца, таблицы или блока.

Блок управления содержимым также может содержать внутри себя абзац, таблицу или другой блок управления содержимым.

Создание нового текстового документа

Простейший пример текстового документа с одним абзацем, содержащим текст по центру, может быть создан с помощью Документ Конструктора, используя следующий код:

builder.CreateFile("docx");                 // create a text document file in the .docx format
var oDocument = Api.GetDocument();          // create a new 'oDocument' variable and get the created text document contents
var oParagraph;                             // create the 'oParagraph' variable
oParagraph = Api.CreateParagraph();         // create a new paragraph
oParagraph.SetJc("center");                 // set the paragraph justification to center the text
oParagraph.AddText("Center");               // add a text containing a single 'Center' word to the paragraph
oDocument.Push(oParagraph);                 // push the created paragraph contents with the 'Center' word to the document
builder.SaveFile("docx", "example.docx");   // save the resulting text document as a file in the .docx format with the 'example.docx' name
builder.CloseFile();                        // close the text document file and finish work

На самом деле в приведенном примере созданный текстовый документ будет содержать два абзаца, так как первый абзац создается по умолчанию для пустого текстового документа, т.е. новый пустой текстовый документ всегда содержит хотя бы один абзац. Вы можете обратиться к первому абзацу, чтобы изменить его с помощью метода Api.GetElement(0), чтобы строка 4 приведенного выше кода выглядела следующим образом:

oParagraph = oDocument.GetElement(0);

и строка 7 (oDocument.Push(oParagraph);) не нужна.

Открытие существующего текстового документа

Если вы хотите отредактировать уже существующий текстовый документ, вы можете открыть его с помощью Документ Конструктора, получить его элементы и изменить их так, как вам нужно. Единственным отличием от редактора документов в этом случае будет то, что вам не понадобится этот редактор текстовых документов. Документ открывается следующим образом:

builder.OpenFile("https://example.com/mydocument.docx");        // use a path to an existing 'mydocument.docx' text document file to open it
var oDocument = Api.GetDocument();          // create a new 'oDocument' variable and get the created text document contents
var oParagraph;                             // create the 'oParagraph' variable
oParagraph = oDocument.GetElement(0);       // get the contents of the document first paragraph
oParagraph.SetJc("center");                 // set the paragraph justification to center the text
oParagraph.AddText("Center");               // add a text containing a single 'Center' word to the paragraph
builder.SaveFile("docx", "example.docx");   // save the resulting text document as a file in the .docx format with a new 'example.docx' name
builder.CloseFile();                        // close the text document file and finish work 

Как видите, для его открытия достаточно использовать метод builder.OpenFile(); класса CDocBuilder с указанием в качестве аргумента пути к нужному текстовому документу. В приведенном примере мы открываем документ mydocument.docx, получаем его первый абзац и изменяем в нем текст на центрированный текст «Center». Таким же образом можно изменить любой другой элемент текстового документа.

Используйте соответствующие разделы документации API, чтобы узнать, какие методы позволяют изменять определенные свойства форматирования элементов документов и электронных таблиц.