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