Обзор конструктора документов
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); |
- Font определяет форматирование символов, которое будет применяться ко всему тексту, вставленному начиная с текущей позиции в документе.
- ParagraphFormat определяет форматирование абзаца для текущего и всех остальных абзацев, которые будут вставлены.
- PageSetup задает свойства страницы и раздела для текущего раздела и всего раздела, который будет вставлен.
- CellFormat и RowFormat задают свойства форматирования, которые будут применяться к ячейкам и строкам таблицы, начиная с текущей позиции в документе и далее.
В этой ситуации “текущий” означает позицию, абзац, раздел, ячейку или строку, в которых находится курсор.