Коллекция Word PageNumbers и объекты PageNumber — нумерация страниц в ворде

Коллекция Word PageNumbers и объекты PageNumber — нумерация страниц в ворде Объектная модель Microsoft Word

Приветствую всех читателей блога scriptcoding.ru. В данной статье мы рассмотрим коллекцию PageNumbers и объекты PageNumber, входящих в объектную модель Word, которые отвечают за нумерацию страниц в ворде.

При подготовке данного материала я столкнулся с некоторыми нестыковками… Так, в большинстве случаев у коллекции PageNumbers будет только один класс PageNumber, это и логично, так как нельзя сделать несколько «нумераций» страниц для одного раздела. Вторая нестыковка – если нумерация страниц в ворде для верхнего колонтитула начинается с заданного номера, то это автоматически влияет и на нумерацию для нижнего колонтитула. С одной стороны это понятно, какой смысл задавать различную нумерацию для верхнего и нижнего колонтитула, но, непонятно следующее…

Доступ к коллекции PageNumbers осуществляется через одноименное свойство объекта HeaderFooter, а тот в свою очередь, мы получаем через свойства Headers или Footers класса Section. Как видим, мы можем указать, для какого колонтитула (верхнего или нижнего) нужно задавать нумерацию в Word.

Коллекция PageNumbers – нумерация в Word

Свойства – нумерация страниц в Word

ChapterPageSeparator— Возвращает или устанавливает разделитель, используемый между номером главы и страницы. Значение константы WdSeparatorType:

  • wdSeparatorColon — 2 — двоеточие.
  • wdSeparatorEmDash — 3 — подчеркнутое тире.
  • wdSeparatorEnDash — 4 — стандартное тире.
  • wdSeparatorHyphen — 0 — дефис.
  • wdSeparatorPeriod — 1 — период.

HeadingLevelForChapter— Возвращает или задает уровень заголовка (от 0 до 8), который применяется к названиям глав в документе.

IncludeChapterNumber– Значение true, если номер главы входит в номера страниц. Чтение и запись.

NumberStyle— Возвращает или задает значение константы WdPageNumberStyle, которая представляет собой стиль нумерации страниц в Word.

RestartNumberingAtSection– Если значение свойства установлено в true, то при вызове метода Add нумерация в ворде будет начинаться с числа 0. Если значение false – то нумерация будет начинаться с числа одни, а попытка переопределить начальный пункт нумерации ворд страницы с помощью свойства StartingNumber ничего не даст. Чтение и запись.

ShowFirstPageNumber– Значение true – происходит автоматическое добавление пункта для нумерации Word страницы в нижний колонтитул.

StartingNumber— Возвращает или устанавливает значение, которое определяет начало нумерации страниц в ворде. Указанный номер может быть виден или не виден на первой странице в зависимости от установок свойства ShowFirstPageNumber. Если свойство RestartNumberingAtSection установлено в false, то будет происходить переопределение свойства StartingNumber так, чтобы нумерация в Word продолжалась из предыдущего раздела

Application— Возвращает объект Application, представляющий приложение Microsoft Word.

Count— Возвращает число номеров страниц в коллекции. В большинстве случаев, колонтитулы содержат только один номер страницы, который является числом 1.

Методы – как сделать нумерацию в ворде

Add(PageNumberAlignment, FirstPage) — Возвращает класс PageNumber, представляющий номера, добавленные в верхний или нижний колонтитул раздела. Оба параметра являются дополнительными.

PageNumberAlignment – Определяет положение номера, значение константы WdPageNumberAlignment:

  • wdAlignPageNumberLeft — 0 – По левому краю.
  • wdAlignPageNumberCenter — 1 — По центру.
  • wdAlignPageNumberRight — 2 – По правому краю.
  • wdAlignPageNumberInside — 3 – По левому краю.
  • wdAlignPageNumberOutside — 4 – По правому краю.

FirstPage – Если установлено значение false, то номер не добавляется к первой странице. Если этот аргумент опущен, параметры нумерации в ворде определяет свойство DifferentFirstPageHeaderFooter класса PageSetup.

Item(index) – Доступ к объекту PageNumber по его номеру в коллекции PageNumbers. Фактически, количество классов PageNumber ровно 1.

PageNumber – Нумерация в ворде

Свойства – нумерация страниц в ворде

Alignment— Возвращает или задает выравнивание для номера страницы. Значение константы WdPageNumberAlignment (смотрите выше).

Application— Возвращает объект Application, представляющий приложение Microsoft Word.

Index– Позиция элемента в коллекции. Только чтение.

Методы – как в ворде сделать нумерацию страниц

Copy() — Копирует заданный PageNumber в буфер обмена.

Cut()— Вырезает указанный PageNumber из документа и помещает его в буфер обмена.

Delete() — Удаляет указанный PageNumber. Фактически, мы отменяем нумерацию в Word для выбранного колонтитула

Select() – Выбор указанного PageNumber. После использования этого метода, следует использовать свойство Selection для работы с выбранным элементом.

Хорошо, с теоретической частью мы закончили, теперь можно приступить к программированию. Я приведу два примера кода на языке VBScript и JScript сервера сценариев Windows Script Host:

Пример программного кода на языке VBSCRIPT:

' ----------------------------------------------------------------------------' Коллекция PageNumbers и объекты PageNumber' Нумерация в Word' PageNumbers.vbs' ----------------------------------------------------------------------------OptionExplicit dim oWord, oDoc, i, MyText, oRange1, oRange2 Set oWord = CreateObject("Word.Application")Set oDoc = oWord.DocumentsoDoc.Add()oDoc.Add()oWord.Visible = trueSet oRange1 = oDoc(1).Range() Set oRange2 = oDoc(2).Range() MyText = "Нумерация в ворде. " ' Вставляем 6 страниц в первый документFor i=0 to 6 With oRange1 .InsertParagraph() .EndOf .InsertBreak() EndWithNext '-------------------------------------------------------------------------------------------------------------------' Формируем нумерацию страниц в Word вместе с заголовками для первого документа'-------------------------------------------------------------------------------------------------------------------oDoc(1).Content.Style = -2oDoc(1).Content.ListFormat.ApplyListTemplate oWord.ListGalleries(3).ListTemplates(7) With oDoc(1).Sections(1).Headers(1).PageNumbers.Add 1, true.NumberStyle = 1.IncludeChapterNumber = True.HeadingLevelForChapter = 0.ChapterPageSeparator = 4EndWith'------------------------------------------------------------------------------------------------------------------- как сделать нумерацию в ворде ' Вставляем заданный текст во второй документFor i=0 to 40 With oRange2 .Text = MyText & MyText & MyText & MyText & MyText & MyText & MyText .EndOf .InsertParagraph() .EndOf EndWithNext '-------------------------------------------------------------------------------------------------------------------' Формируем нумерацию страниц в ворде вместе с заголовками для первого документа'-------------------------------------------------------------------------------------------------------------------With oDoc(2).Sections(1).Headers(1).PageNumbers.ShowFirstPageNumber = true.RestartNumberingAtSection = true.NumberStyle = 57.Add 0, true.StartingNumber = 5EndWith

Пример программного кода на языке JSCRIPT:

// ----------------------------------------------------------------------------// Коллекция PageNumbers и объекты PageNumber// Нумерация в Word// PageNumbers.js// ----------------------------------------------------------------------------var oWord1, oDoc1, i, MyText1, oRange1, oRange2; oWord1 = WScript.CreateObject("Word.Application");oDoc1 = oWord1.Documents;oDoc1.Add();oDoc1.Add();oWord1.Visible=true;oRange1 = oDoc1(1).Range(); oRange2 = oDoc1(2).Range(); MyText1 ="Нумерация в ворде. "; // Вставляем 6 страниц в первый документfor(i=0; i<=6; i++){ with(oRange1){ InsertParagraph(); EndOf(); InsertBreak();}} //-------------------------------------------------------------------------------------------------------------------// Формируем нумерацию страниц в Word вместе с заголовками для первого документа//-------------------------------------------------------------------------------------------------------------------oDoc1(1).Content.Style=-2;oDoc1(1).Content.ListFormat.ApplyListTemplate(oWord1.ListGalleries(3).ListTemplates(7)); with (oDoc1(1).Sections(1).Headers(1).PageNumbers){Add(1,true);NumberStyle =1;IncludeChapterNumber =true;HeadingLevelForChapter =0;ChapterPageSeparator =4;}//-------------------------------------------------------------------------------------------------------------------как сделать нумерацию в ворде // Вставляем заданный текст во второй документfor(i=0; i<=40; i++){ with(oRange2){ Text = MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1; EndOf(); InsertParagraph(); EndOf();}} //-------------------------------------------------------------------------------------------------------------------// Формируем нумерацию страниц в ворде вместе с заголовками для первого документа//-------------------------------------------------------------------------------------------------------------------with (oDoc1(2).Sections(1).Headers(1).PageNumbers){ShowFirstPageNumber =true;RestartNumberingAtSection =true;NumberStyle =57;Add(0,true);StartingNumber =5;}

В данных примерах происходит создание двух документов, для каждого документа создается ссылка на класс Range (переменные oRange1 и oRange2). Это нужно для того, что бы мы смогли добавить текст или страницы в нужный документ. Далее происходит нумерация страниц в Word для первого и второго документа. В одном случаем мы связываем нумерацию страниц в ворд со стилями и списками (в документ будут добавлены заголовки, а номера страниц будут с ними связаны). В другом случаем мы просто задаем стиль нумерация Word для всех страниц и определяем, что нумерация ворд должна начинаться с цифры 5.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий