4 Вставка текста в документ и форматирование текста
Для создания абзацев в документе можно использовать коллекцию Paragraphs объекта Document, представляющую собой набор абзацев данного документа. Добавить новый абзац можно с помощью метода Add этой коллекции:
Арр.ActiveDocument.Paragraphs.Add;
Для вставки собственно текста в документ применяется не объект Paragraph, а объект Range, представляющий любую непрерывную часть документа (в том числе и вновь созданный абзац). Этот объект может быть создан разными способами. Например, можно указать начальный и конечный символы диапазона (если таковые имеются в документе):
var
Rng : Variant;
…
Rng := App.ActiveDocument.Range(2, 4);
// со 2-го по 4-й символы
Можно также указать номер абзаца (например, только что созданного):
Rng := Арр.ActiveDocument.Paragraphs.Item(1).Range;
Кроме того, можно указать несколько последовательных абзацев:
Rng := Арр.ActiveDocument.Range
(Арр.ActiveDocument.Paragraphs.Item(3).Range.Start,
App.ActiveDocument.Paragraphs.Item(5).Range.End)
Вставить текст можно с помощью методов InsertBefore (перед диапазоном) или InsertAfter (после диапазона) объекта Range, например:
Rng.InsertAfter('Это вставляемый текст');
Помимо объекта Range текст можно вставлять с помощью объекта Selection, являющегося свойством объекта Word.Application и представляющего собой выделенную часть документа (этот объект создается, если пользователь выделяет часть документа мышью, и может быть создан также с помощью приложения-контроллера). Сам объект Selection можно создать, применив метод Select к объекту Range, например:
var
Sel : Variant;
Арр.ActiveDocument.Paragraphs.Item(3).Range.Select;
В приведенном выше примере в текущем документе выделяется третий абзац.
Если необходимо вставить строку текста в документ либо вместо выделенного фрагмента текста, либо перед ним, это можно сделать с помощью следующего фрагмента кода:
var
Sel: Variant;
Sel := Арр.Selection;
Sel.TypeText('Этo текст, которым мы заменим выделенный фрагмент');
Отметим, что если свойство Options.ReplaceSelection объекта Word.Application равно True, выделенный текст будет заменен новым (этот режим действует по умолчанию); если же нужно, чтобы текст был вставлен перед выделенным фрагментом, а не вместо него, следует установить это свойство равным False:
Арр.Options.ReplaceSelection := False;
Символ конца абзаца при использовании объекта Selection может быть вставлен с помощью следующего фрагмента кода:
Sel.TypeParagraph;
К объекту Selection, так же как и к объекту Range, можно применить методы InsertBefore и InsertAfter. В этом случае, в отличие от предыдущего, вставляемый текст станет частью выделенного фрагмента текста.
С помощью объекта Selection, используя его свойство Font и свойства объекта Font, такие как Bold, Italic, Size и другие, можно отформатировать текст. Например, таким образом можно вставить строку, выделенную полужирным шрифтом:
Sel.Font.Bold := True;
Sel.TypeText('Этo текст, который выделен полужирным шрифтом.');
Sel.Font.Bold := False;
Sel.TypeParagraph;
Для наложения на вставляемый текст определенного заранее стиля можно использовать свойство Style объекта Selection, например:
Sel.Style := 'Heading 1;
Sel.TypeText('Это текст, который станет заголовком');
Sel.TypeParagraph;