Используйте `DocumentBuilder` для вставки элементов документа
DocumentBuilder
используется для изменения документов. В этой статье объясняется и описывается, как выполнять ряд задач:
Вставка текстовой строки
Просто передайте строку текста, которую вам нужно вставить в документ, методу DocumentBuilder.Write
. Форматирование текста определяется свойством Font
. Этот объект содержит различные атрибуты шрифта (название шрифта, размер шрифта, цвет и т.д.). Некоторые важные атрибуты шрифта также представлены свойствами DocumentBuilder, что позволяет получить к ним прямой доступ. Это логические свойства Font.Bold
, Font.Italic
и Font.Underline
.
Обратите внимание, что заданное вами форматирование символов будет применяться ко всему тексту, вставленному начиная с текущей позиции в документе.
Приведенный ниже пример вставляет форматированный текст с помощью DocumentBuilder.
Вставка абзаца
DocumentBuilder.Writeln
также вставляет строку текста в документ, но, кроме того, добавляет разрыв абзаца. Текущее форматирование шрифта также определяется свойством DocumentBuilder.Font
, а текущее форматирование абзаца определяется свойством DocumentBuilder.ParagraphFormat
. В приведенном ниже примере показано, как вставить абзац в документ.
Вставка таблицы
Базовый алгоритм создания таблицы с помощью DocumentBuilder прост:
- Запустите таблицу с помощью
DocumentBuilder.StartTable
. - Вставьте ячейку, используя
DocumentBuilder.InsertCell
. При этом автоматически начнется новая строка. При необходимости используйте свойствоDocumentBuilder.CellFormat
, чтобы задать форматирование ячейки. - Вставьте содержимое ячейки, используя методы
DocumentBuilder
. - Повторяйте шаги 2 и 3, пока строка не будет завершена.
- Вызовите
DocumentBuilder.EndRow
, чтобы завершить текущую строку. При необходимости используйте свойствоDocumentBuilder.RowFormat
, чтобы задать форматирование строки. - Повторяйте шаги 2-5, пока таблица не будет заполнена полностью.
- Вызовите
DocumentBuilder.EndTable
, чтобы завершить создание таблицы. Ниже описаны соответствующие методы создания таблиц в DocumentBuilder.
Запуск таблицы
Вызов DocumentBuilder.StartTable
является первым шагом в построении таблицы. Он также может быть вызван внутри ячейки, и в этом случае запускается вложенная таблица. Следующий вызываемый метод - DocumentBuilder.InsertCell
.
Вставка ячейки
После вызова DocumentBuilder->InsertCell
будет создана новая ячейка, и любое содержимое, добавленное с помощью других методов класса DocumentBuilder
, будет добавлено в текущую ячейку. Чтобы создать новую ячейку в той же строке, снова вызовите DocumentBuilder->InsertCell
. Используйте свойство DocumentBuilder.CellFormat
, чтобы задать форматирование ячейки. Оно возвращает объект CellFormat
, который представляет все форматирование ячейки таблицы.
Завершение строки
Вызовите DocumentBuilder.EndRow
, чтобы завершить текущую строку. Если вы вызовете DocumentBuilder->InsertCell
сразу после этого, таблица будет продолжена с новой строки.
Используйте свойство DocumentBuilder.RowFormat
, чтобы указать форматирование строк. Оно возвращает объект RowFormat
, который представляет все форматирование для строки таблицы.
Завершение таблицы
Вызовите DocumentBuilder.EndTable
, чтобы завершить работу с текущей таблицей. Этот метод следует вызывать только один раз после вызова DocumentBuilder->EndRow
. При вызове DocumentBuilder.EndTable
курсор перемещается из текущей ячейки в позицию сразу за таблицей. В следующем примере показано, как создать отформатированную таблицу, содержащую 2 строки и 2 столбца.
Вставка разрыва
Если вы хотите явно начать новую строку, абзац, столбец, раздел или страницу, вызовите DocumentBuilder.InsertBreak
. Передайте этому методу тип разрыва, который вам нужно вставить, который представлен перечислением BreakType
. В приведенном ниже примере показано, как вставлять разрывы страниц в документ.
Вставка изображения
DocumentBuilder предоставляет несколько дополнений к методу DocumentBuilder->InsertImage
, который позволяет вставлять встроенное или плавающее изображение. Если изображение представляет собой метафайл EMF или WMF, оно будет вставлено в документ в формате метафайла. Все остальные изображения будут сохранены в формате PNG. Метод DocumentBuilder->InsertImage
позволяет использовать изображения из разных источников:
- Из файла или
URL
, передав строковый параметрDocumentBuilder->InsertImage
. - Из потока путем передачи параметра
Stream
DocumentBuilder->InsertImage
. - Из объекта Image путем передачи параметра Image
DocumentBuilder->InsertImage
. - Из массива байтов путем передачи параметра массива байтов
DocumentBuilder.InsertImage
.Для каждого из методовDocumentBuilder->InsertImage
существуют дополнительные перегрузки, которые позволяют вставлять изображение со следующими параметрами: - Встроенный или плавающий в определенном положении, например,
DocumentBuilder->InsertImage
. - Процентный масштаб или пользовательский размер, например,
DocumentBuilder.InsertImage
. Кроме того, методDocumentBuilder->InsertImage
возвращает объектShape
, который был только что создан и вставлен, чтобы вы могли дополнительно изменять свойства фигуры.
Вставка встроенного изображения
Передайте одну строку, представляющую файл, содержащий изображение, в DocumentBuilder->InsertImage
, чтобы вставить изображение в документ в качестве встроенной графики. В приведенном ниже примере показано, как вставить встроенное изображение в положение курсора в документе.
Вставка плавающего (абсолютно расположенного) Изображение
В этом примере вставляется плавающее изображение из файла или URL
в указанном положении и размере.
Вставка закладки
Чтобы вставить закладку в документ, вам необходимо выполнить следующие действия:
- Вызовите
DocumentBuilder->StartBookmark
, передав ему желаемое название закладки. - Вставьте текст закладки, используя методы DocumentBuilder.
- Вызовите
DocumentBuilder.EndBookmark
, передав ему то же имя, которое вы использовали в DocumentBuilder->StartBookmark. - Закладки могут перекрываться и охватывать любой диапазон. Чтобы создать действительную закладку, вам нужно вызвать как
DocumentBuilder->StartBookmark
, так иDocumentBuilder->EndBookmark
с одинаковым именем закладки.
В приведенном ниже примере показано, как вставить закладку в документ с помощью конструктора документов.
Вставка поля Form
Поля формы - это частный случай полей Word, которые позволяют “взаимодействовать” с пользователем. Поля формы в Microsoft Word включают текстовое поле, поле со списком и флажок.DocumentBuilder предоставляет специальные методы для вставки каждого типа полей формы в документ: DocumentBuilder.InsertTextInput
, DocumentBuilder->InsertCheckBox
и DocumentBuilder.InsertComboBox
. Обратите внимание, что если вы укажете имя для поля формы, то автоматически будет создана закладка с таким же именем.
Вставка текста для ввода
DocumentBuilder.InsertTextInput
чтобы вставить текстовое поле в документ. В приведенном ниже примере показано, как вставить поле формы ввода текста в документ.
Установка флажка
Вызовите DocumentBuilder.InsertCheckBox
, чтобы вставить флажок в документ. В приведенном ниже примере показано, как вставить поле формы с флажком в документ.
Вставка поля со списком
Вызовите DocumentBuilder.InsertComboBox
, чтобы вставить поле со списком в документ. В приведенном ниже примере показано, как вставить поле формы со списком в документ.
Вставка языкового стандарта на уровне поля
Теперь пользователи могут указывать языковой стандарт на уровне поля и могут лучше контролировать его. С каждым полем в DocumentBuilder можно связать идентификаторы языкового стандарта. Приведенные ниже примеры иллюстрируют, как использовать эту опцию.
Вставка гиперссылки
Используйте DocumentBuilder.InsertHyperlink
, чтобы вставить гиперссылку в документ. Этот метод принимает три параметра: текст ссылки, которая будет отображаться в документе, адрес назначения ссылки (URL или название закладки внутри документа) и логический параметр, который должен иметь значение true, если URL
является именем закладки внутри документа.DocumentBuilder.InsertHyperlink выполняет внутренний вызов DocumentBuilder.InsertField
.Этот метод всегда добавляет апострофы в начале и конце URL-адреса. Обратите внимание, что вам необходимо явно указать форматирование шрифта для отображаемого текста гиперссылки, используя свойство Font
. Приведенный ниже пример вставляет гиперссылку в документ с помощью DocumentBuilder.
Вставка Ole-объекта
Если вам нужен Ole-объект, вызовите DocumentBuilder.InsertOleObject
. Передайте этому методу значение ProgId
явно с другими параметрами. В приведенном ниже примере показано, как вставить Ole-объект в документ.
Задайте имя и расширение файла при вставке Ole-объекта
OLE-пакет - это устаревший и “недокументированный” способ хранения внедренного объекта, если обработчик OLE неизвестен. В ранних версиях Windows, таких как Windows 3.1, 95 и 98, было Packager.exe приложение, которое можно было использовать для встраивания данных любого типа в документ. Теперь это приложение исключено из Windows, но MS Word и другие приложения по-прежнему используют его для встраивания данных, если обработчик OLE отсутствует или неизвестен. Класс OlePackage позволяет получить доступ к свойствам пакета OLE. В приведенном ниже примере показано, как задать имя файла, расширение и отображаемое имя для OLE-пакета.
Вставка HTML-кода
Вы можете легко вставить HTML-строку, содержащую HTML-фрагмент или весь HTML-документ целиком, в документ Word. Просто передайте эту строку методу DocumentBuilder->InsertHtml
. Одной из полезных реализаций метода является сохранение HTML-строки в базе данных и вставка ее в документ во время mail merge для добавления отформатированного содержимого вместо его создания с помощью различных методов конструктора документов. В приведенном ниже примере показано, как HTML-строка вставляется в документ с помощью DocumentBuilder.
Вставить горизонтальную линейку в документ
В примере low code показано, как вставить форму горизонтальной линейки в документ, используя метод DocumentBuilder->InsertHorizontalRule
.