Доброго времени суток уважаемые читатели блога scriptcoding.ru. В этой статье мы рассмотрим объект PageSetup, который позволяет получить или задать основные параметры страницы в текстовом редакторе Word.
Класс PageSetup содержит множество полезных свойств, хотя у него только два метода. В плане установки параметров страницы в Word мы можем задать или получить размеры, отступы для колонтитулов, ориентацию, количество строк на странице и количество символов в строке, и многое другое. Параллельно советую почитать публикацию «Коллекция Word Pages и объекты Page«.
Для начала рассмотрим теоретическую часть публикации, а далее займемся программированием. Программный код будет на языке VBSCRIPT и JSCRIPT, которые работают под управлением сервера Windows Script Host.
Объект PageSetup – Основные параметры страницы в Word
Доступ к объекту можно получить через одноименное свойство таких классов как:
- Section – В данном случае мы можем обработать параметры для всех страниц в текстовом редакторе Word заданного раздела.
- Document – В данном случае мы обрабатываем установки параметров для всех страниц в Word и для всех разделов заданного документа.
Свойства – установка параметров страницы в текстовом редакторе Word
BottomMargin, TopMargin, LeftMarginи RightMargin– Свойства позволяют установить или получить значение отступа в пунктах от нижнего, верхнего, левого или правого края страницы в текстовом редакторе Word.
CharsLineи LinesPage– Установка параметров страницы в текстовом редакторе Word: количество символов в строке или количество строк на странице.
FirstPageTrayи OtherPagesTray– Свойства возвращают или устанавливают лоток для бумаги, который будет использоваться для первой страницы раздела или для всех страниц в разделе, кроме первой. Значения константы WdPaperTray:
- wdPrinterAutomaticSheetFeed — 7 — Автоматическая подача листов.
- wdPrinterDefaultBin — 0 – Лоток по умолчанию.
- wdPrinterEnvelopeFeed — 5 – Подача конвертов.
- wdPrinterFormSource — 15 — Формуляр.
- wdPrinterLargeCapacityBin — 11 – Лоток большой емкости.
- wdPrinterLargeFormatBin — 10 – Лоток большого формата.
- wdPrinterLowerBin — 2 — Нижний лоток.
- wdPrinterManualEnvelopeFeed — 6 – Ручная подача конвертов.
- wdPrinterManualFeed — 4 – Ручная подача.
- wdPrinterMiddleBin — 3 — Ближний лоток.
- wdPrinterOnlyBin — 1 – Только лоток принтера.
- wdPrinterPaperCassette — 14 — Кассета для бумаги.
- wdPrinterSmallFormatBin — 9 – Лоток маленького формата.
- wdPrinterTractorFeed — 8 — Автоматическая подача.
- wdPrinterUpperBin — 1 — Верхний лоток.
PageHeightи PageWidth– Возвращают или задают такие установки параметров страницы в текстовом редакторе Word как высоту и ширину в пунктах.
PaperSize— Возвращает или устанавливает размер бумаги. Значение константы WdPaperSize.
FooterDistanceи HeaderDistance– Свойства задают или возвращают расстояние в пунктах для нижнего или верхнего колонтитула Word.
Orientation— Возвращает или устанавливает такие основные параметры страницы в текстовом редакторе Word, как ориентацию. Значение константы WdOrientation:
- wdOrientLandscape — 1 — альбомная ориентация.
- wdOrientPortrait — 0 — книжная ориентация
ShowGrid– Свойство позволяет показать (true) или скрыть (false) сетку. Начиная с версии Word 2010.
TwoPagesOnOne– Значение true – отображаются две страницы на одном листе. Чтение и запись.
VerticalAlignment— Возвращает или задает такие установки параметров страницы в Word, как вертикальное выравнивание текста на каждой странице в текстовом редакторе или разделе. Значение константы WdVerticalAlignment:
- wdAlignVerticalTop — 0 – По верху
- wdAlignVerticalCenter — 1 – По центру
- wdAlignVerticalJustify — 2 — По ширине
- wdAlignVerticalBottom — 3 – По низу.
BookFoldPrinting– Значение true – печать документа Word в виде книги. Чтение и запись.
BookFoldPrintingSheets— Возвращает или устанавливает количество страниц для каждой книги.
BookFoldRevPrinting– Значение true — чтобы изменить порядок печати для книги. Чтение и запись.
LayoutMode— Возвращает или устанавливает параметры размещения для текущего документа. Значение константы WdLayoutMode:
- wdLayoutModeDefault — 0 — Сетка не используется чтобы выложить текст.
- wdLayoutModeGenko — 3 — Текст выложен на сетке; пользователь указывает количество строк и количество символов в строке. При печати, Microsoft Word автоматически выравнивает символы по сетке.
- wdLayoutModeGrid — 1 — Текст выложен на сетке; пользователь указывает количество строк и количество символов в строке. При печати, Microsoft Word автоматически не выровнять символы по сетке.
- wdLayoutModeLineGrid — 2 — Текст выложен на сетке; пользователь указывает количество строк, но не количество символов в строке.
MirrorMargins– Значение true, если внутренние и внешние края соседних страниц имеют одинаковую ширину. Чтение и запись.
OddAndEvenPagesHeaderFooter— Значение true, если указанный объект PageSetup имеет различные верхние и нижние колонтитулы для нечетных пронумерованных и четных пронумерованных страниц. Чтение и запись.
DifferentFirstPageHeaderFooter— Значение true, если указанный класс PageSetup имеет уникальные верхние и нижние колонтитулы для первой страницы раздела. Чтение и запись.
SectionDirection— Возвращает или устанавливает такой параметр страницы в текстовом редакторе Word, как порядок чтения и выравнивание для указанных разделов. Значение константы WdSectionDirection:
- wdSectionDirectionLtr — 1 — Отображает раздел с выравниванием по левому краю и порядок чтения влево.
- wdSectionDirectionRtl — 0 — Отображает раздел с выравниванием по правому краю и порядок чтения справа.
SectionStart— Возвращает или устанавливает такой основной параметр страницы в Word, как тип разрыва раздела для указанного класса. Значение константы WdSectionStart:
- wdSectionContinuous — 0 — Непрерывный.
- wdSectionEvenPage — 3 — Четные страницы.
- wdSectionNewColumn — 1 – Новый разрыв раздела колонки.
- wdSectionNewPage — 2 – Новый разрыв раздела страницы.
- wdSectionOddPage — 4 — Нечетные страницы.
LineNumbering— Возвращает или задает класс LineNumbering.
TextColumns— Возвращает коллекцию TextColumns.
Application — Возвращает объект Application, представляющий приложение Microsoft Word.
Методы – основные параметры страницы в Word
SetAsTemplateDefault() — Установка параметра страниц в Word по умолчанию для активного документа и всех новых документов, основанных на активном шаблоне.
With ActiveDocument.PageSetup .LeftMargin = InchesToPoints(1) .RightMargin = InchesToPoints(1) .SetAsTemplateDefault End With |
TogglePortrait() — Переключение между портретной и альбомной ориентацией страницы Word для документа или раздела.
Хорошо, с теоретической частью мы закончили, теперь приступим к программированию.
Пример на языке программирования VBScript:
' ---------------------------------------------------------------------------- ' Класс PageSetup ' Основные параметры страницы в Word ' PageSetup.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, MyText Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() oDoc.Add() oWord.Visible = True Set oSel = oWord.Selection MyText = "Установка параметров страницы в Word. " For i=0 to 40 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph Next With oDoc(1).Sections(1).PageSetup .BottomMargin = 80 .TopMargin = 80 .LeftMargin = 80 .RightMargin = 80 .CharsLine = 40 .LinesPage = 20 .FirstPageTray = 10 .PageHeight = 700 .PageWidth = 700 .FooterDistance = 150 ' параметры страницы в текстовом редакторе .HeaderDistance = 150 .VerticalAlignment = 2 .DifferentFirstPageHeaderFooter = true End With oDoc(2).Sections(1).PageSetup.Orientation = 1 MsgBox "Изменение ориентации страницы документа " & oDoc(2).Name oDoc(2).Sections(1).PageSetup.TogglePortrait |
Пример на языке программирования JScript:
// ---------------------------------------------------------------------------- // Класс PageSetup // Основные параметры страницы в Word // PageSetup.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, i, MyText1; oWord1 = WScript.CreateObject("Word.Application"); oDoc1 = oWord1.Documents; oDoc1.Add(); oDoc1.Add(); oWord1.Visible = true; oSel1 = oWord1.Selection; MyText1 = "Установка параметров страницы в Word. "; for (i=0; i<=40; i++){ oSel1.TypeText (MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1); oSel1.TypeParagraph(); } with(oDoc1(1).Sections(1).PageSetup){ BottomMargin = 80; TopMargin = 80; LeftMargin = 80; RightMargin = 80; CharsLine = 40; LinesPage = 20; FirstPageTray = 10; // параметры страницы в текстовом редакторе PageHeight = 700; PageWidth = 700; FooterDistance = 150; HeaderDistance = 150; VerticalAlignment = 2; DifferentFirstPageHeaderFooter = true; } oDoc1(2).Sections(1).PageSetup.Orientation = 1; WScript.Echo("Изменение ориентации страницы документа " + oDoc1(2).Name); oDoc1(2).Sections(1).PageSetup.TogglePortrait(); |
Хорошо, с теорией и программированием закончили, теперь стоит дать некоторые пояснения к программному коду. После того как мы запустим сценарий, будет создан новый текстовый документ, в цикле for (смотрите «Урок 9 по JScript — оператор цикла for» и «Урок 6 по VBScript: Циклы for…next и for each…next«) происходит вставка текста несколько раз, в том числе и вставка абзаца. Далее в блоке with происходит изменение параметров страницы в текстовом редакторе Word. Ну и все, в остальном вы и сами разберетесь.