Классы, задающие структуризацию текста документа




Текст — это основа большинства документов. Его можно структурировать, оперируя различными единицами при реше­нии тех или иных задач преобразования. Минимальной едини­цей текста обычно является символ. Кроме этого, существуют следующие единицы: слова, предложения, абзацы, а также бо­лее крупные образования: страницы, параграфы, главы.

Классы Characters, Words, Statements, Paragraphs, Sections позволяют работать с последовательностями (коллекциями) символов, слов, предложений, абзацев и разделов. Самой круп­ной единицей после абзаца выступает раздел. Элементом кол­лекций Characters, Words И Statements является объект класса Range. Объект Range позволяет работать как с одним эле­ментом, так и с произвольной последовательностью элементов. Документы, поддокументы, абзацы, разделы — все они имеют метод или свойство Range, возвращающее интервал, связан­ный с объектом. Поэтому работа с текстом так или иначе ведет­ся через методы и свойства объекта Range.

События объекта Document

Объект Document может реагировать на три события, воз­никающие в результате действий пользователя.

Документ и его части

Рассмотрим основные классы, определяющие структуру документа.

1. Subdocuments (Subdocument) — коллекция И Сам ПОД-документ. Есть некоторый разумный предел размера одного документа. Если в документе больше 10-20 страниц, работать с ним становится неудобно. В этом случае в нем выделяют главный документ и поддокументы. Главный документ в этом случае имеет коллекцию поддоку- ментов, каждый из них является, по сути, документом, с которым можно работать независимо.

Метод AddFromRange класса SubDocuments создает под-документ, выделяя из главного документа область, заданную параметром Range.

2. Tables (Table), TablesOfAuthoritiesCategories (T.О.А.С), TablesOfAuthorities (TableOfAuthorities), TablesOfContents (TablesOfContent), TablesOfFigures (TablesOfFigure). Класс Table определяет «обычные» таблицы с произвольным коли­чеством строк и столбцов и произвольным заполнением полей. Остальные классы задают таблицы специального вида.

3. Shapes (Shape), InlineShapes (InlineShape) — ЭТИ две коллекции с их элементами позволяют добавлять в документ ри­сунки, но не только их. ActiveX- и OLE-объекты также явля­ются элементами этих коллекций. Элементы этих двух коллек­ций отличаются тем, как они привязаны к документу: первые могут свободно перемещаться, вторые жестко привязаны к за­данной области документа.

4. Lists(List), ListParagraphs(ListParagraph), listTemplates (ListTempiate) — списки удобно вводить в документ, когда имеешь дело с перечислением. Списки можно оформлять в соответствии с шаблоном. Существуют две группы шаблонов: нумерованные списки и списки-бюллетени. Коллекция ListTemplates содержит шаблоны оформления списков, а класс List-Template описывает конкретный шаблон. Шаблон применяется к списку абзацев и придает ему структуру, заданную шаблоном. Коллекция Lists содержит те списки документа (списки абзацев), что оформлены как нумерованные списки или спис­ки-бюллетени. Коллекция ListParagraphs представляет список абзацев всех списков документа. Свойством ListParagraphs, ко­торое возвращает объект соответствующего класса, обладает не только документ, но и объекты List и Range. Так что при на­личии списка — объекта List можно выделить список абзацев. Чаще приходится выполнять обратную операцию — приме­нять к списку абзацев один из возможных шаблонов, придав ему «настоящую» структуру списка. Тогда используют объект ListFormat.

5. Comments (Comment), Bookmarks (Bookmark), FootNotes (FootNote), EndNotes (EndNote), Fields (Field) — ЭТИ коллекции и их элементы отражают независимые, но близкие по духу понятия. Это части документа, косвенно связанные с ним. При нормальном просмотре документа они могут быть и не видны.

  • Коллекция Comments и класс Comment задают коммен­тарии. Комментарии, как известно, вводятся для пояснения тех или иных терминов или понятий документа. Формально они приписываются некоторой области — объекту Range.
  • Большой документ, к отдельным частям которого прихо­дится часто обращаться, стоит снабдить закладками. Коллек­ция Bookmarks задает все закладки данного документа.
  • Еще один способ комментирования — сноски. Они могут быть двух видов: подстраничные (внизу страницы) и концевые (в конце документа). Первые собраны в коллекцию FootNotes, вторые — EndNotes.

6. Fields (Field) — эта коллекция позволяет работать с по­лями документа. Одна из особенностей полей состоит в том, что их значения обновляются автоматически в зависимости от из­менившихся внешних условий или контекста.

7. Story Ranges (Range) —эта коллекция представляет со­вокупность частей документа, называемых фрагментами (Story). Количество различных фрагментов документа фикси­ровано. Нельзя добавлять элементы в эту коллекцию обычным способом, используя метод Add. Фрагменты появляются в кол­лекции, когда создается соответствующая часть документа. фрагменты имеют тип, задаваемый константами из перечис­ления wdStoryType. Главный фрагмент — текст документа, тип которого задается константой wdMainTextStory. Коммен­тарии, ссылки, колонтитулы составляют фрагменты других типов, т.е. сам фрагмент является объектом Range. Так что бла­годаря фрагментам можно, например, работать с коллекцией комментариев как с единой областью.

8. Variables (Variable) — С документом МОЖНО связать коллекцию переменных типа Variant. Это важная для програм­мистов коллекция, так как время жизни переменных, в нее входящих, совпадает со временем жизни документа. Тем са­мым появляется возможность сохранять информацию о работе той или иной процедуры между сеансами. Например, можно иметь счетчики, подсчитывающие число вызовов макроса, и в зависимости от этого по-разному определять его дальней­шую работу.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: