DocumentBuilder

DocumentBuilder class

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

Чтобы узнать больше, посетитеОбзор конструктора документов документальная статья.

public class DocumentBuilder

Конструкторы

ИмяОписание
DocumentBuilder()Инициализирует новый экземпляр этого класса.
DocumentBuilder(Document)Инициализирует новый экземпляр этого класса.
DocumentBuilder(DocumentBuilderOptions)Инициализирует новый экземпляр этого класса.
DocumentBuilder(DocumentDocumentBuilderOptions)Инициализирует новый экземпляр этого класса.

Характеристики

ИмяОписание
Bold { get; set; }True, если шрифт отформатирован как жирный.
CellFormat { get; }Возвращает объект, представляющий текущие свойства форматирования ячейки таблицы.
CurrentNode { get; }Получает узел, который в данный момент выбран в этом DocumentBuilder.
CurrentParagraph { get; }Получает абзац, который в данный момент выбран в этомDocumentBuilder .
CurrentSection { get; }Получает раздел, который в данный момент выбран в этомDocumentBuilder .
CurrentStory { get; }Получает историю, которая в данный момент выбрана в этомDocumentBuilder .
CurrentStructuredDocumentTag { get; }Получает структурированный тег документа, который в данный момент выбран в этомDocumentBuilder .
Document { get; set; }Получает или задаетDocument объект, к которому прикреплен этот объект.
Font { get; }Возвращает объект, представляющий текущие свойства форматирования шрифта.
IsAtEndOfParagraph { get; }Возвратистинный если курсор находится в конце текущего абзаца.
IsAtEndOfStructuredDocumentTag { get; }Возвратистинный если курсор находится в конце структурированного документа тег.
IsAtStartOfParagraph { get; }Возвратистинныйесли курсор находится в начале текущего абзаца (перед курсором нет текста).
Italic { get; set; }True, если шрифт отформатирован как курсив.
ListFormat { get; }Возвращает объект, представляющий текущие свойства форматирования списка.
PageSetup { get; }Возвращает объект, представляющий текущие настройки страницы и свойства раздела.
ParagraphFormat { get; }Возвращает объект, представляющий текущие свойства форматирования абзаца.
RowFormat { get; }Возвращает объект, представляющий текущие свойства форматирования строки таблицы.
Underline { get; set; }Получает/устанавливает тип подчеркивания для текущего шрифта.

Методы

ИмяОписание
DeleteRow(int, int)Удаляет строку из таблицы.
EndBookmark(string)Отмечает текущую позицию в документе как конец закладки.
EndColumnBookmark(string)Отмечает текущую позицию в документе как конец закладки столбца. Позиция должна быть в ячейке таблицы.
EndEditableRange()Отмечает текущую позицию в документе как конец редактируемого диапазона.
EndEditableRange(EditableRangeStart)Отмечает текущую позицию в документе как конец редактируемого диапазона.
EndRow()Завершает строку таблицы в документе.
EndTable()Завершает таблицу в документе.
InsertBreak(BreakType)Вставляет разрыв указанного типа в документ.
InsertCell()Вставляет ячейку таблицы в документ.
InsertChart(ChartType, double, double)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(ChartType, double, double, ChartStyle)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapTypeChartStyle)Вставляет объект диаграммы в документ и масштабирует его до указанного размера.
InsertCheckBox(string, bool, int)Вставляет поле формы флажка в текущую позицию.
InsertCheckBox(string, bool, bool, int)Вставляет поле формы флажка в текущую позицию.
InsertComboBox(string, string[], int)Вставляет поле формы со списком в текущую позицию.
InsertDocument(DocumentImportFormatMode)Вставляет документ в позицию курсора.
InsertDocument(DocumentImportFormatModeImportFormatOptions)Вставляет документ в позицию курсора.
InsertDocumentInline(DocumentImportFormatModeImportFormatOptions)Вставляет документ в позицию курсора.
InsertField(string)Вставляет поле Word в документ и обновляет результат поля.
InsertField(FieldType, bool)Вставляет поле Word в документ и при необходимости обновляет результат поля.
InsertField(string, string)Вставляет поле Word в документ без обновления результата поля.
InsertFootnote(FootnoteType, string)Вставляет сноску или концевую сноску в документ.
InsertFootnote(FootnoteType, string, string)Вставляет сноску или концевую сноску в документ.
InsertForms2OleControl(Forms2OleControl)ВставкиForms2OleControl объект в текущую позицию.
InsertGroupShape(params ShapeBase[])Группирует фигуры, переданные в качестве параметра, в новый узел GroupShape, который вставляется в текущую позицию.
InsertGroupShape(double, double, double, double, params ShapeBase[])Группирует фигуры, переданные в качестве параметра, в новый узел GroupShape указанного размера, который вставляется в указанную позицию.
InsertHorizontalRule()Вставляет в документ горизонтальную линейку.
InsertHtml(string)Вставляет HTML-строку в документ.
InsertHtml(string, bool)Вставляет HTML-строку в документ.
InsertHtml(string, HtmlInsertOptions)Вставляет HTML-строку в документ. Позволяет указать дополнительные параметры.
InsertHyperlink(string, string, bool)Вставляет гиперссылку в документ.
InsertImage(byte[])Вставляет изображение из массива байтов в документ. Изображение вставляется в строку и в масштабе 100%.
InsertImage(Image)Вставляет изображение из .NETImage Объект в документ. Изображение вставляется в строку и в масштабе 100%.
InsertImage(Stream)Вставляет изображение из потока в документ. Изображение вставляется в строку и в масштабе 100%.
InsertImage(string)Вставляет изображение из файла или URL в документ. Изображение вставляется в строку и в масштабе 100%.
InsertImage(byte[], double, double)Вставляет встроенное изображение из байтового массива в документ и масштабирует его до указанного размера.
InsertImage(Image, double, double)Вставляет встроенное изображение из .NETImage объект в документ и масштабирует его до указанного размера.
InsertImage(Stream, double, double)Вставляет встроенное изображение из потока в документ и масштабирует его до указанного размера.
InsertImage(string, double, double)Вставляет встроенное изображение из файла или URL в документ и масштабирует его до указанного размера.
InsertImage(byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет изображение из массива байтов в указанную позицию и размер.
InsertImage(Image, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет изображение из .NETImage Объект в указанном положении и размере.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет изображение из потока в указанную позицию и размер.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет изображение из файла или URL в указанное положение и размер.
InsertNode(Node)Вставляет узел перед курсором.
InsertOleObject(Stream, string, bool, Stream)Вставляет внедренный OLE-объект из потока в документ.
InsertOleObject(string, bool, bool, Stream)Вставляет встроенный или связанный объект OLE из файла в документ. Определяет тип объекта OLE по расширению файла.
InsertOleObject(string, string, bool, bool, Stream)Вставляет встроенный или связанный объект OLE из файла в документ. Определяет тип объекта OLE с использованием заданного параметра progID.
InsertOleObjectAsIcon(Stream, string, string, string)Вставляет встроенный объект OLE как значок из потока в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE с использованием заданного параметра progID.
InsertOleObjectAsIcon(string, bool, string, string)Вставляет встроенный или связанный объект OLE как значок в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE по расширению файла.
InsertOleObjectAsIcon(string, string, bool, string, string)Вставляет встроенный или связанный объект OLE как значок в документ. Позволяет указать файл значка и подпись. Определяет тип объекта OLE с использованием заданного параметра progID.
InsertOnlineVideo(string, double, double)Вставляет онлайн-видеообъект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(string, string, byte[], double, double)Вставляет онлайн-видеообъект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет онлайн-видеообъект в документ и масштабирует его до указанного размера.
InsertOnlineVideo(string, string, byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет онлайн-видеообъект в документ и масштабирует его до указанного размера.
InsertParagraph()Вставляет разрыв абзаца в документ.
InsertShape(ShapeType, double, double)Вставляет встроенную фигуру указанного типа и размера.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Вставляет свободно плавающую фигуру с указанным положением, размером и типом обтекания текстом.
InsertSignatureLine(SignatureLineOptions)Вставляет строку подписи в текущую позицию.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType)Вставляет строку подписи в указанную позицию.
InsertStructuredDocumentTag(SdtType)ВставляетStructuredDocumentTag в документ.
InsertStyleSeparator()Вставляет разделитель стилей в документ.
InsertTableOfContents(string)Вставляет поле TOC (оглавление) в документ.
InsertTextInput(string, TextFormFieldType, string, string, int)Вставляет поле текстовой формы в текущую позицию.
MoveTo(Node)Перемещает курсор на встроенный узел или в конец абзаца.
MoveToBookmark(string)Перемещает курсор на закладку.
MoveToBookmark(string, bool, bool)Перемещает курсор на закладку с большей точностью.
MoveToCell(int, int, int, int)Перемещает курсор в ячейку таблицы в текущем разделе.
MoveToDocumentEnd()Перемещает курсор в конец документа.
MoveToDocumentStart()Перемещает курсор в начало документа.
MoveToField(Field, bool)Перемещает курсор в поле в документе.
MoveToHeaderFooter(HeaderFooterType)Перемещает курсор в начало верхнего или нижнего колонтитула в текущем разделе.
MoveToMergeField(string)Перемещает курсор в положение сразу за указанным полем слияния и удаляет поле слияния.
MoveToMergeField(string, bool, bool)Перемещает поле слияния в указанное поле слияния.
MoveToParagraph(int, int)Перемещает курсор на абзац в текущем разделе.
MoveToSection(int)Перемещает курсор в начало тела в указанном разделе.
MoveToStructuredDocumentTag(int, int)Перемещает курсор на структурированный тег документа в текущем разделе.
MoveToStructuredDocumentTag(StructuredDocumentTag, int)Перемещает курсор к тегу структурированного документа.
PopFont()Извлекает форматирование символов, ранее сохраненное в стеке.
PushFont()Сохраняет текущее форматирование символов в стеке.
StartBookmark(string)Отмечает текущую позицию в документе как начало закладки.
StartColumnBookmark(string)Отмечает текущую позицию в документе как начало закладки столбца. Позиция должна быть в ячейке таблицы.
StartEditableRange()Отмечает текущую позицию в документе как начало редактируемого диапазона.
StartTable()Начинает таблицу в документе.
Write(string)Вставляет строку в документ в текущую позицию вставки.
Writeln()Вставляет разрыв абзаца в документ.
Writeln(string)Вставляет строку и разрыв абзаца в документ.

Примечания

DocumentBuilder делает процесс строительстваDocument проще. Document представляет собой составной объект, состоящий из дерева узлов, и хотя вставка узлов content непосредственно в дерево возможна, для этого требуется хорошее понимание структуры дерева. DocumentBuilder является «фасадом» для сложной структурыDocument и позволяет быстро и легко вставлять контент и форматирование.

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

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

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

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

ИспользуйтеPageSetup свойство для указания свойств страницы и раздела для раздела current и всех разделов, которые будут вставлены.

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

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

Примеры

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

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

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

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

doc.Save(ArtifactsDir + "DocumentBuilder.CreateTable.docx");

Показывает, как создавать верхние и нижние колонтитулы в документе с помощью DocumentBuilder.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Укажите, что нам нужны разные верхние и нижние колонтитулы для первой, четной и нечетной страниц.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Создаем заголовки, затем добавляем в документ три страницы для отображения каждого типа заголовков.
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
builder.Write("Header for the first page");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderEven);
builder.Write("Header for even pages");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Write("Header for all other pages");

builder.MoveToSection(0);
builder.Writeln("Page1");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page2");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page3");

doc.Save(ArtifactsDir + "DocumentBuilder.HeadersAndFooters.docx");

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

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.StartTable();

// Настройка параметров форматирования таблиц для конструктора документов
// применит их к каждой строке и ячейке, которые мы добавим вместе с ним.
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

builder.CellFormat.ClearFormatting();
builder.CellFormat.Width = 150;
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.CellFormat.Shading.BackgroundPatternColor = Color.GreenYellow;
builder.CellFormat.WrapText = false;
builder.CellFormat.FitText = true;

builder.RowFormat.ClearFormatting();
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.RowFormat.Height = 50;
builder.RowFormat.Borders.LineStyle = LineStyle.Engrave3D;
builder.RowFormat.Borders.Color = Color.Orange;

builder.InsertCell();
builder.Write("Row 1, Col 1");

builder.InsertCell();
builder.Write("Row 1, Col 2");
builder.EndRow();

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

builder.InsertCell();
builder.Write("Row 2, Col 1");

builder.InsertCell();
builder.Write("Row 2, Col 2");

builder.EndRow();

// Увеличиваем высоту строки, чтобы вместить вертикальный текст.
builder.InsertCell();
builder.RowFormat.Height = 150;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 3, Col 1");

builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 3, Col 2");

builder.EndRow();
builder.EndTable();

doc.Save(ArtifactsDir + "DocumentBuilder.InsertTable.docx");

Смотрите также