Доброго времени суток всем подписчикам и гостям блога scriptcoding.ru. Сегодня мы рассмотрим работу с коллекцией Pages и классами Page, которые позволяют задать параметры страницы в ворде.
Если честно, когда я приступал к рассмотрению данного материала, то ожидал большого от коллекции Pages и ее объектов…. Дело в том, что у объекта Page все рассматриваемые свойства доступны только для чтения и они позволяют получить такие настройки параметров страницы в ворде, как ее ширину и высоту, а также значение левого и правого отступа. Сама коллекция Pages также скудна на методы и свойства, она дает возможность получить общее количество всех страниц в документе Word, а также, получить доступ к определенной странице. Задание параметров страницы в ворде можно также с помощью класса PageSetup — «Word PageSetup — настройка параметра страниц«.
Коллекция Pages – настройка параметров страницы в ворде
Данная коллекция содержит все страницы в документе Word. Доступ осуществляется через свойство Pages объекта Pane. Напомню, что документ Word содержит окна (смотрите статью «Word Windows и объекты Window — работа с окнами MS Word«), каждое окно содержит разделители (смотрите статью «Word Panes и объекты Pane — Разделители текста«), и получается так, что для доступа к конкретной странице нужно сформировать цепочку:документ – окно – разделитель – страница. Немного не практично, странно, что разработчики Microsoft все так запутали, ведь было бы логичней получать доступ к параметрам страницы в ворде через свойства самого объекта Document.
Свойства и методы – задание параметров страницы в ворде
Count– Содержит количество объектов Page
Item(index) – Метод позволяет получить доступ к заданной странице по ее номеру в коллекции.
Класс Page – параметры страницы в ворде
Данный класс содержит только свойства.
Application— Возвращает объект Application, представляющий приложение Microsoft Word.
Breaks— Возвращает коллекцию Breaks.
Rectangles— Возвращает коллекцию Rectangles.
Height— Высота страницы в пикселях.
Width– Ширина страницы в пикселях.
Left— Возвращает значение левого края страницы.
Top— Возвращает значение правого края страницы.
Как видим, теоретический материал довольно маленький, но ничего… Давайте приступим к программированию. Напишем небольшой программный код на языках VBScript и JScript, помним, что сценарии VBS и JS работают под управлением серевра Windows Script Host.
Пример на языке программирования VBScript:
' ---------------------------------------------------------------------------- ' Коллекция Pages и класс Page ' Настройка параметров страницы в ворде ' Pages.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, MyText, Msg Set oWord = CreateObject("Word.Application") ' создаем ссылку на приложение Word Set oDoc = oWord.Documents ' формируем ссылку на коллекцию Documents oDoc.Add() ' добавляем документ в коллекцию Set oSel = oWord.Selection ' ссылка на класс Selection oWord.Visible = True ' делаем документ видимым MyText = "задаем параметры ворд страницы. " ' добавляем текст в документ For i=0 to 50 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph ' вставляем параграф Next ' выводим параметры ворд страницы With oDoc(1).Windows(1).Panes(1) Msg = .Pages.Count & vbCrLf Msg = Msg & .Pages(2).Height & vbCrLf Msg = Msg & .Pages(2).Width End With MsgBox Msg |
Пример на языке программирования JScript:
// ---------------------------------------------------------------------------- // Коллекция Pages и класс Page // Настройка параметров страницы в ворде // Pages.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, i, MyText1, Msg1; oWord1 = WScript.CreateObject("Word.Application"); // создаем ссылку на приложение Word oDoc1 = oWord1.Documents; // формируем ссылку на коллекцию Documents oDoc1.Add(); // добавляем документ в коллекцию oSel1 = oWord1.Selection; // ссылка на класс Selection oWord1.Visible = true; // делаем документ видимым MyText1 = "задаем параметры ворд страницы. " // добавляем текст в документ for(i=0; i<=50; i++){ oSel1.TypeText(MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1); oSel1.TypeParagraph(); // вставляем параграф } // выводим параметры ворд страницы with (oDoc1(1).Windows(1).Panes(1)){ Msg1 = "Количество страниц - " + Pages.Count; Msg1 += "\nВысота - " + Pages(2).Height; Msg1 += "\nШирина - " + Pages(2).Width; } WScript.Echo(Msg1); |
Давайте проанализируем программный код приведенных примеров. Обратите внимание, что имена переменных в сценариях отличаются, так, в скрипте JS к имени переменной я добавил единицу. Вначале происходит создание ссылки на объект Word.Application, которая будет храниться в переменной oWord. Далее мы получаем доступ к коллекции Documents через переменную oDoc. Используя метод Add, мы добавляем в коллекцию Documents новый объект Document, тем самым создаем новый документ Word. Далее мы создаем ссылку на объект Selection (читайте в статье «Объект Word Selection — выделить весь текст в ворде, свойства«), которая будет храниться в переменной oSel, это нужно для того, что бы добавить нужный текст в документ. Используя свойство Visible объекта Word Application, мы делаем созданный документ видимым.
Что бы добавить текст в документ, мы используем цикл for (синтаксис для языка VBScript — «Урок 6 по VBScript: Циклы for…next и for each…next» и для JScript — «Урок 9 по JScript — оператор цикла for«), в котором происходит вставка нужной фразы и абзаца. Весь процесс происходит 50 раз. Тем самым, мы создаем несколько страниц в документе.
В самом конце сценария мы выводим параметры заданной страницы в ворде, а именно: количество всех страниц в документе, ширину и высоту заданной страницы. Стоит учитывать тот факт, что параметры всех страниц в ворд документе одинаковы, то есть, ширина и высота.