Класс Aspose::Words::DocumentBuilder

DocumentBuilder class

Предоставляет методы для вставки текста, изображений и другого содержимого, указания шрифта, форматирования абзацев и разделов. Чтобы узнать больше, посетите статью документации Document Builder Overview.

class DocumentBuilder : public Aspose::Words::IRunAttrSource,
                        public Aspose::Words::IParaAttrSource,
                        public Aspose::Words::IRowAttrSource,
                        public Aspose::Words::ICellAttrSource

Методы

МетодОписание
DeleteRow(int32_t, int32_t)Удаляет строку из таблицы.
DocumentBuilder()Инициализирует новый экземпляр этого класса.
DocumentBuilder(const System::SharedPtr<Aspose::Words::DocumentBuilderOptions>&)Инициализирует новый экземпляр этого класса.
DocumentBuilder(const System::SharedPtr<Aspose::Words::Document>&)Инициализирует новый экземпляр этого класса.
DocumentBuilder(const System::SharedPtr<Aspose::Words::Document>&, const System::SharedPtr<Aspose::Words::DocumentBuilderOptions>&)Инициализирует новый экземпляр этого класса.
EndBookmark(const System::String&)Помечает текущую позицию в документе как конец закладки.
EndColumnBookmark(const System::String&)Помечает текущую позицию в документе как конец закладки столбца. Позиция должна находиться в ячейке таблицы.
EndEditableRange()Помечает текущую позицию в документе как конец редактируемого диапазона.
EndEditableRange(const System::SharedPtr<Aspose::Words::EditableRangeStart>&)Помечает текущую позицию в документе как конец редактируемого диапазона.
EndRow()Завершает строку таблицы в документе.
EndTable()Завершает таблицу в документе.
get_Bold()True, если шрифт оформлен как полужирный.
get_CellFormat()Возвращает объект, представляющий текущие свойства форматирования ячейки таблицы.
get_CurrentNode()Получает узел, который в данный момент выбран в этом DocumentBuilder.
get_CurrentParagraph()Получает абзац, который в данный момент выбран в этом DocumentBuilder.
get_CurrentSection()Получает раздел, который в данный момент выбран в этом DocumentBuilder.
get_CurrentStory()Получает историю, которая в данный момент выбрана в этом DocumentBuilder.
get_CurrentStructuredDocumentTag()Получает структурированный тег документа, который в данный момент выбран в этом DocumentBuilder.
get_Document() constПолучает или задает объект Document, к которому прикреплен данный объект.
get_Font()Возвращает объект, представляющий текущие свойства форматирования шрифта.
get_IsAtEndOfParagraph()Возвращает true, если курсор находится в конце текущего абзаца.
get_IsAtEndOfStructuredDocumentTag()Возвращает true, если курсор находится в конце структурированного тега документа.
get_IsAtStartOfParagraph()Возвращает true, если курсор находится в начале текущего абзаца (текст перед курсором отсутствует).
get_Italic()True, если шрифт оформлен курсивом.
get_ListFormat()Возвращает объект, представляющий текущие свойства форматирования списка.
get_PageSetup()Возвращает объект, представляющий текущие настройки страницы и свойства раздела.
get_ParagraphFormat()Возвращает объект, представляющий текущие свойства форматирования абзаца.
get_RowFormat()Возвращает объект, представляющий текущие свойства форматирования строки таблицы.
get_Underline()Получает/устанавливает тип подчеркивания для текущего шрифта.
GetType() const override
InsertBreak(Aspose::Words::BreakType)Вставляет разрыв указанного типа в документ.
InsertCell()Вставляет ячейку таблицы в документ.
InsertChart(Aspose::Words::Drawing::Charts::ChartType, double, double)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(Aspose::Words::Drawing::Charts::ChartType, double, double, Aspose::Words::Drawing::Charts::ChartStyle)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(Aspose::Words::Drawing::Charts::ChartType, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(Aspose::Words::Drawing::Charts::ChartType, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType, Aspose::Words::Drawing::Charts::ChartStyle)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertCheckBox(const System::String&, bool, int32_t)Вставляет поле формы с флажком в текущую позицию.
InsertCheckBox(const System::String&, bool, bool, int32_t)Вставляет поле формы с флажком в текущую позицию.
InsertComboBox(const System::String&, const System::ArrayPtr<System::String>&, int32_t)Вставляет поле формы с выпадающим списком в текущую позицию.
InsertDocument(const System::SharedPtr<Aspose::Words::Document>&, Aspose::Words::ImportFormatMode)Вставляет документ в позицию курсора.
InsertDocument(const System::SharedPtr<Aspose::Words::Document>&, Aspose::Words::ImportFormatMode, const System::SharedPtr<Aspose::Words::ImportFormatOptions>&)Вставляет документ в позицию курсора.
InsertDocumentInline(const System::SharedPtr<Aspose::Words::Document>&, Aspose::Words::ImportFormatMode, const System::SharedPtr<Aspose::Words::ImportFormatOptions>&)Вставляет документ встроенно в позицию курсора.
InsertField(Aspose::Words::Fields::FieldType, bool)Вставляет поле Word в документ и при необходимости обновляет результат поля.
InsertField(const System::String&)Вставляет поле Word в документ и обновляет результат поля.
InsertField(const System::String&, const System::String&)Вставляет поле Word в документ без обновления результата поля.
InsertFootnote(Aspose::Words::Notes::FootnoteType, const System::String&)Вставляет сноску или концевую сноску в документ.
InsertFootnote(Aspose::Words::Notes::FootnoteType, const System::String&, const System::String&)Вставляет сноску или концевую сноску в документ.
InsertForms2OleControl(const System::SharedPtr<Aspose::Words::Drawing::Ole::Forms2OleControl>&)Вставляет объект Forms2OleControl в текущую позицию.
InsertGroupShape(const System::ArrayPtr<System::SharedPtr<Aspose::Words::Drawing::ShapeBase>>&)Группирует переданные в параметре фигуры в новый узел GroupShape, который вставляется в текущую позицию.
InsertGroupShape(double, double, double, double, const System::ArrayPtr<System::SharedPtr<Aspose::Words::Drawing::ShapeBase>>&)Группирует переданные в параметре фигуры в новый узел GroupShape указанного размера, который вставляется в указанную позицию.
InsertHorizontalRule()Вставляет форму горизонтальной линии в документ.
InsertHtml(const System::String&)Вставляет строку HTML в документ.
InsertHtml(const System::String&, bool)Вставляет строку HTML в документ.
InsertHtml(const System::String&, Aspose::Words::HtmlInsertOptions)Вставляет строку HTML в документ. Позволяет указать дополнительные параметры.
InsertHyperlink(const System::String&, const System::String&, bool)Вставляет гиперссылку в документ.
InsertImage(const System::SharedPtr<System::Drawing::Image>&)Вставляет изображение из объекта Image в документ. Изображение вставляется встроенно и с масштабом 100%.
InsertImage(const System::String&)Вставляет изображение из файла или URL в документ. Изображение вставляется встроенно и с масштабом 100%.
InsertImage(const System::SharedPtr<System::IO::Stream>&)Вставляет изображение из потока в документ. Изображение вставляется встроенно и с масштабом 100%.
InsertImage(const System::ArrayPtr<uint8_t>&)Вставляет изображение из массива байтов в документ. Изображение вставляется встроенно и с масштабом 100%.
InsertImage(const System::SharedPtr<System::Drawing::Image>&, double, double)Вставляет встроенное изображение из объекта Image в документ и масштабирует его до указанного размера.
InsertImage(const System::String&, double, double)Вставляет встроенное изображение из файла или URL в документ и масштабирует его до указанного размера.
InsertImage(const System::SharedPtr<System::IO::Stream>&, double, double)Вставляет встроенное изображение из потока в документ и масштабирует его до указанного размера.
InsertImage(const System::ArrayPtr<uint8_t>&, double, double)Вставляет встроенное изображение из массива байтов в документ и масштабирует его до указанного размера.
InsertImage(const System::SharedPtr<System::Drawing::Image>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет изображение из объекта Image в указанную позицию и размер.
InsertImage(const System::String&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет изображение из файла или URL в указанную позицию и размер.
InsertImage(const System::SharedPtr<System::IO::Stream>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет изображение из потока в указанную позицию и размер.
InsertImage(const System::ArrayPtr<uint8_t>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет изображение из массива байтов в указанную позицию и размер.
InsertImage(std::basic_istream<CharType, Traits>&)
InsertImage(std::basic_istream<CharType, Traits>&, double, double)
InsertImage(std::basic_istream<CharType, Traits>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)
InsertNode(const System::SharedPtr<Aspose::Words::Node>&)Вставляет узел перед курсором.
InsertOleObject(const System::SharedPtr<System::IO::Stream>&, const System::String&, bool, const System::SharedPtr<System::IO::Stream>&)Вставляет встроенный объект OLE из потока в документ.
InsertOleObject(const System::String&, bool, bool, const System::SharedPtr<System::IO::Stream>&)Вставляет встроенный или связанный объект OLE из файла в документ. Определяет тип объекта OLE с помощью расширения файла.
InsertOleObject(const System::String&, const System::String&, bool, bool, const System::SharedPtr<System::IO::Stream>&)Вставляет встроенный или связанный объект OLE из файла в документ. Определяет тип объекта OLE с помощью указанного параметра progID.
InsertOleObject(std::basic_istream<CharType, Traits>&, System::String, bool, std::basic_istream<CharType, Traits>&)
InsertOleObject(System::String, bool, bool, std::basic_istream<CharType, Traits>&)
InsertOleObject(System::String, System::String, bool, bool, std::basic_istream<CharType, Traits>&)
InsertOleObjectAsIcon(const System::String&, bool, const System::String&, const System::String&)Вставляет встроенный или связанный объект OLE в виде значка в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE с помощью расширения файла.
InsertOleObjectAsIcon(const System::String&, const System::String&, bool, const System::String&, const System::String&)Вставляет встроенный или связанный объект OLE в виде значка в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE с помощью указанного параметра progID.
InsertOleObjectAsIcon(const System::SharedPtr<System::IO::Stream>&, const System::String&, const System::String&, const System::String&)Вставляет встроенный объект OLE в виде значка из потока в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE с помощью указанного параметра progID.
InsertOleObjectAsIcon(std::basic_istream<CharType, Traits>&, System::String, System::String, System::String)
InsertOnlineVideo(const System::String&, double, double)Вставляет онлайн‑видео объект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(const System::String&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет онлайн‑видео объект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(const System::String&, const System::String&, const System::ArrayPtr<uint8_t>&, double, double)Вставляет онлайн‑видео объект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(const System::String&, const System::String&, const System::ArrayPtr<uint8_t>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет онлайн‑видео объект в документ и масштабирует его до указанного размера.
InsertParagraph()Вставляет разрыв абзаца в документ.
InsertShape(Aspose::Words::Drawing::ShapeType, double, double)Вставляет встроенную форму с указанным типом и размером.
InsertShape(Aspose::Words::Drawing::ShapeType, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, double, double, Aspose::Words::Drawing::WrapType)Вставляет плавающую форму с указанным положением, размером и типом обтекания текста.
InsertSignatureLine(const System::SharedPtr<Aspose::Words::SignatureLineOptions>&)Вставляет строку подписи в текущую позицию.
InsertSignatureLine(const System::SharedPtr<Aspose::Words::SignatureLineOptions>&, Aspose::Words::Drawing::RelativeHorizontalPosition, double, Aspose::Words::Drawing::RelativeVerticalPosition, double, Aspose::Words::Drawing::WrapType)Вставляет строку подписи в указанную позицию.
InsertStructuredDocumentTag(Aspose::Words::Markup::SdtType)Вставляет StructuredDocumentTag в документ.
InsertStyleSeparator()Вставляет разделитель стилей в документ.
InsertTableOfContents(const System::String&)Вставляет поле TOC (оглавление) в документ.
InsertTextInput(const System::String&, Aspose::Words::Fields::TextFormFieldType, const System::String&, const System::String&, int32_t)Вставляет текстовое поле формы в текущую позицию.
Is(const System::TypeInfo&) const override
MoveTo(const System::SharedPtr<Aspose::Words::Node>&)Перемещает курсор к встроенному узлу или в конец абзаца.
MoveToBookmark(const System::String&)Перемещает курсор к закладке.
MoveToBookmark(const System::String&, bool, bool)Перемещает курсор к закладке с большей точностью.
MoveToCell(int32_t, int32_t, int32_t, int32_t)Перемещает курсор к ячейке таблицы в текущем разделе.
MoveToDocumentEnd()Перемещает курсор в конец документа.
MoveToDocumentStart()Перемещает курсор в начало документа.
MoveToField(const System::SharedPtr<Aspose::Words::Fields::Field>&, bool)Перемещает курсор к полю в документе.
MoveToHeaderFooter(Aspose::Words::HeaderFooterType)Перемещает курсор в начало колонтитула или нижнего колонтитула в текущем разделе.
MoveToMergeField(const System::String&)Перемещает курсор в позицию сразу после указанного поля слияния и удаляет поле слияния.
MoveToMergeField(const System::String&, bool, bool)Перемещает поле слияния в указанное поле слияния.
MoveToParagraph(int32_t, int32_t)Перемещает курсор к абзацу в текущем разделе.
MoveToSection(int32_t)Перемещает курсор в начало тела в указанном разделе.
MoveToStructuredDocumentTag(int32_t, int32_t)Перемещает курсор к структурному тегу документа в текущем разделе.
MoveToStructuredDocumentTag(const System::SharedPtr<Aspose::Words::Markup::StructuredDocumentTag>&, int32_t)Перемещает курсор к структурному тегу документа.
PopFont()Получает форматирование символов, ранее сохранённое в стеке.
PushFont()Сохраняет текущее форматирование символов в стек.
set_Bold(bool)Сеттер для Aspose::Words::DocumentBuilder::get_Bold.
set_Document(const System::SharedPtr<Aspose::Words::Document>&)Сеттер для Aspose::Words::DocumentBuilder::get_Document.
set_Italic(bool)Сеттер для Aspose::Words::DocumentBuilder::get_Italic.
set_Underline(Aspose::Words::Underline)Сеттер для Aspose::Words::DocumentBuilder::get_Underline.
StartBookmark(const System::String&)Помечает текущую позицию в документе как начало закладки.
StartColumnBookmark(const System::String&)Помечает текущую позицию в документе как начало столбцовой закладки. Позиция должна находиться в ячейке таблицы.
StartEditableRange()Помечает текущую позицию в документе как начало редактируемого диапазона.
StartTable()Начинает таблицу в документе.
static Type()
Write(const System::String&)Вставляет строку в документ в текущую позицию вставки.
Writeln(const System::String&)Вставляет строку и разрыв абзаца в документ.
Writeln()Вставляет разрыв абзаца в документ.

Примечания

DocumentBuilder makes the process of building a Document easier. Document is a composite object consisting of a tree of nodes and while inserting content nodes directly into the tree is possible, it requires good understanding of the tree structure. DocumentBuilder is a “facade” for the complex structure of Document and allows to insert content and formatting quickly and easily.

Создайте DocumentBuilder и свяжите его с Document.

У DocumentBuilder есть внутренний курсор, в который будет вставляться текст при вызове Write(), Writeln(), InsertBreak() и других методов. Вы можете перемещать курсор DocumentBuilder в другое место документа, используя различные методы MoveToXXX.

Используйте свойство Font для указания форматирования символов, которое будет применяться ко всему тексту, вставляемому с текущей позиции в документе и далее.

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

Используйте свойство PageSetup для указания параметров страницы и раздела для текущего раздела и всех последующих вставляемых разделов.

Используйте свойства CellFormat и RowFormat для указания параметров форматирования ячеек таблицы и строк. Используйте методы InsertCell и EndRow для построения таблицы.

Обратите внимание, что свойства Font, ParagraphFormat и PageSetup обновляются каждый раз, когда вы перемещаетесь в другое место документа, чтобы отразить доступные в новой позиции параметры форматирования.

Примеры

Показывает, как построить таблицу с пользовательскими границами.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

builder->StartTable();

// Установка параметров форматирования таблицы для DocumentBuilder
// будет применять их к каждой строке и ячейке, которые мы добавляем с его помощью.
builder->get_ParagraphFormat()->set_Alignment(Aspose::Words::ParagraphAlignment::Center);

builder->get_CellFormat()->ClearFormatting();
builder->get_CellFormat()->set_Width(150);
builder->get_CellFormat()->set_VerticalAlignment(Aspose::Words::Tables::CellVerticalAlignment::Center);
builder->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_GreenYellow());
builder->get_CellFormat()->set_WrapText(false);
builder->get_CellFormat()->set_FitText(true);

builder->get_RowFormat()->ClearFormatting();
builder->get_RowFormat()->set_HeightRule(Aspose::Words::HeightRule::Exactly);
builder->get_RowFormat()->set_Height(50);
builder->get_RowFormat()->get_Borders()->set_LineStyle(Aspose::Words::LineStyle::Engrave3D);
builder->get_RowFormat()->get_Borders()->set_Color(System::Drawing::Color::get_Orange());

builder->InsertCell();
builder->Write(u"Row 1, Col 1");

builder->InsertCell();
builder->Write(u"Row 1, Col 2");
builder->EndRow();

// Изменение форматирования будет применено к текущей ячейке,
// и к любым новым ячейкам, которые мы создаём с помощью билдера позже.
// Это не повлияет на ячейки, которые мы добавили ранее.
builder->get_CellFormat()->get_Shading()->ClearFormatting();

builder->InsertCell();
builder->Write(u"Row 2, Col 1");

builder->InsertCell();
builder->Write(u"Row 2, Col 2");

builder->EndRow();

// Увеличьте высоту строки, чтобы разместить вертикальный текст.
builder->InsertCell();
builder->get_RowFormat()->set_Height(150);
builder->get_CellFormat()->set_Orientation(Aspose::Words::TextOrientation::Upward);
builder->Write(u"Row 3, Col 1");

builder->InsertCell();
builder->get_CellFormat()->set_Orientation(Aspose::Words::TextOrientation::Downward);
builder->Write(u"Row 3, Col 2");

builder->EndRow();
builder->EndTable();

doc->Save(get_ArtifactsDir() + u"DocumentBuilder.InsertTable.docx");

Показывает, как использовать DocumentBuilder для создания таблицы.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Начните таблицу, затем заполните первую строку двумя ячейками.
builder->StartTable();
builder->InsertCell();
builder->Write(u"Row 1, Cell 1.");
builder->InsertCell();
builder->Write(u"Row 1, Cell 2.");

// Вызовите метод билдера "EndRow", чтобы начать новую строку.
builder->EndRow();
builder->InsertCell();
builder->Write(u"Row 2, Cell 1.");
builder->InsertCell();
builder->Write(u"Row 2, Cell 2.");
builder->EndTable();

doc->Save(get_ArtifactsDir() + u"DocumentBuilder.CreateTable.docx");

См. также