Обзор конструктора документов

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

Конструктор документов

Конструктор документов или Aspose.Words DOM

Конструктор документов

Операции, которые возможны с DocumentBuilder, также возможны при непосредственном использовании классов из Aspose.Words DOM. Однако прямое использование Aspose.Words DOM-классов обычно требует большего количества строк кода, чем использование DocumentBuilder.

Навигация по документам

Навигация по документу основана на концепции виртуального курсора, с помощью которого вы можете перемещаться в другое место документа, используя различные методы DocumentBuilder.MoveToXXX, такие как MoveToDocumentStart и MoveToField. Этот виртуальный курсор указывает, куда будет вставлен текст при вызове методов Write, Writeln, InsertBreak, и других.

В следующем примере кода показано, как перейти к закладке:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->MoveToBookmark(u"CoolBookmark", false, true);
builder->Writeln(u"This is a very cool bookmark.");

Создание и модификация документов

Aspose.Words API предоставляет несколько классов, которые отвечают за форматирование различных элементов документа. Каждый из классов инкапсулирует свойства форматирования, относящиеся к определенному элементу документа, такому как текст, абзац, раздел и другие. Например, класс Font представляет свойства форматирования символов, класс ParagraphFormat представляет свойства форматирования абзацев и т.д. Объекты этих классов возвращаются соответствующими свойствами DocumentBuilder, которые имеют те же имена, что и классы. Таким образом, вы можете получить к ним доступ и задать желаемое форматирование во время создания документа.

Вы также можете вставить текст, флажок, ole-объект, изображения, закладки, поля формы и другие элементы документа в положение курсора, используя метод Write или любой из методов DocumentBuilder.InsertXXX, таких как InsertField, InsertHtml и аналогичные методы.

Давайте посмотрим, как создать простой документ, используя DocumentBuilder.

Создайте документ с помощью DocumentBuilder

Для начала вам нужно создать DocumentBuilder и связать его с объектом Document. Вы создаете новый экземпляр DocumentBuilder, вызывая его конструктор, и передаете его объекту Document для присоединения к конструктору.

Чтобы вставить текст, передайте строку текста, которую вам нужно вставить в документ, методу Write.

В следующем примере кода показано, как создать простой документ с помощью конструктора документов.

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Create a blank document.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// DocumentBuilder provides members to easily add content to a document.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Write a new paragraph in the document with the text "Hello World!"
builder->Writeln(u"Hello World!");

Укажите форматирование документа

Свойство Font определяет форматирование текста. Этот объект содержит различные атрибуты шрифта (название шрифта, размер шрифта, цвет и т.д.). Некоторые важные атрибуты шрифта также представлены свойствами DocumentBuilder, что позволяет получить к ним прямой доступ. Это логические свойства Font.Bold, Font.Italic и Font.Underline.

В следующем примере кода показано, как вставить форматированный текст с помощью DocumentBuilder:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::String outputDataDir = GetOutputDataDir_WorkingWithDocument();
// Initialize document.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Specify font formatting
System::SharedPtr<Font> font = builder->get_Font();
font->set_Size(16);
font->set_Bold(true);
font->set_Color(System::Drawing::Color::get_Blue());
font->set_Name(u"Arial");
font->set_Underline(Underline::Dash);
// Specify paragraph formatting
System::SharedPtr<ParagraphFormat> paragraphFormat = builder->get_ParagraphFormat();
paragraphFormat->set_FirstLineIndent(8);
paragraphFormat->set_Alignment(ParagraphAlignment::Justify);
paragraphFormat->set_KeepTogether(true);
builder->Writeln(u"A whole paragraph.");
System::String outputPath = outputDataDir + u"DocumentBuilderInsertParagraph.doc";
doc->Save(outputPath);