Всем привет, с вами автор блога scriptcoding.ru. В данной статье мы рассмотрим коллекцию HeadersFooters и ее объекты HeaderFooter, которые отвечают за редактирование или создание колонтитулов в Word документе.
Важной особенностью при работе с коллекцией HeadersFooters является то, что она содержит в себе не количество классов HeadersFooter для каждой страниц (то есть, если у нас 30 статей в разделе, то это не означает, что у нас 30 колонтитулов в ворде), а количество возможных параметров при работе с колонтитулами в Word, поясню….
В самом документе мы можем вставить верхний колонтитул в ворде или нижний колонтитул в ворде, которые будет отображаться на всех страницах, это понятно. Далее, мы можем указать, что бы для четных и нечетных отображались разные колонтитулы. И, мы можем указать индивидуальный колонтитул для первой страницы Word.
Для доступа к коллекции HeadersFooters используются свойства Headers или Footers, которые указывают: с верхним или с нижним колонтитулом в ворде мы хотим работать. Данные свойства есть у объекта Section, который позволяет обрабатывать нужный раздел. Напомню, что в документ можно вставить несколько разделов, которые будут содержать статьи, обрабатываемые в индивидуальном порядке.
- Если мы хотим указать, что нужно создавать разные колонтитулы в Word для четных и нечетных, то свойству OddAndEvenPagesHeaderFooter объекта PageSetup нужно присвоить значение true.
- Если надо создать колонтитул в ворде, который будет уникальным для первой статьи, то свойству DifferentFirstPageHeaderFooter объекта PageSetup присваивается значение true.
Сам процесс создания верхних и нижних колонтитулов в документе Word я рассмотрю в конце статьи, а пока, рассмотрим методы и свойства коллекции HeadersFooters и класса HeaderFooter.
Коллекция HeadersFooters — колонтитулы в ворде
Свойства – верхний колонтитул в ворде
Application— Возвращает объект Application, представляющий приложение Microsoft Word.
Count– Возвращает количество объектов HeaderFooter, данное значение фиксировано и равно 3, так как можно задать три параметры при добавлении колонтитулов в ворд.
Методы – нижний колонтитул в ворде
Item(index) – Позволяет получить доступ к объекту HeaderFooter по его номеру в коллекции.
Index – Данный параметр содержит значения константы WdHeaderFooterIndex:
- wdHeaderFooterEvenPages — 3 — Все к-тулы, даже на пронумерованных статьях.
- wdHeaderFooterFirstPage — 2 — Первый к-тул в документе или разделе.
- wdHeaderFooterPrimary — 1 — Возвращает к-тулы на всех, кроме первой страницы документа или раздела.
Тут стоит дать некоторое пояснение…. Если вы хотите добавить колонтитулы в Word на все страницы, то для параметра index указывайте значение 3. Если вы хотите создать колонтитулы в ворд индивидуально для четных и нечетных, то указывайте значение 1 для нечетных и 3 для четных, предварительно, нужно использовать свойство OddAndEvenPagesHeaderFooter объекта PageSetup. Если вы хотите указать Word колонтитул только для первой страницы раздела, то используйте значение 2, прописав перед этим свойство DifferentFirstPageHeaderFooter объекта PageSetup.
Класс HeaderFooter – колонтитулы в Word
Объект HeaderFooter содержит в своем арсенале только свойства.
Свойства – работа с колонтитулами в Word
Application— Возвращает объект Application, представляющий приложение Microsoft Word.
Exists– Значение true, если указанный объект HeaderFooter существует. Чтение и запись.
Index– Свойство возвращает значение константы WdHeaderFooterIndex(смотрите выше), которая представляет указанный Word колонтитул в документе или разделе. Только чтение.
IsHeader– Значение true, если указанный HeaderFooter является верхним колонтитулом в ворде и значение false – если нижним колонтитулом в ворде. Только чтение.
LinkToPrevious— Значение true, если указанный колонтитул в Word связан с соответствующим к-тулом в предыдущем разделе. Чтение и запись.
PageNumbers— Возвращает коллекцию PageNumbers, которая представляет все номера страницы, входящие в указанный верхний или нижний колонтитул в ворд.
Range— Возвращает объект Range, представляющий часть документа, которая содержится в указанных колонтитулах Word.
Shapes— Возвращает коллекцию Shapes, представляющую все объекты Shape в нижнем или верхнем колонтитуле в ворд.
Хорошо, теперь, как я и обещал, мы рассмотрим два сценария на языке VBScript и JScript сервера сценариев Windows Script Host, а после, я дам пояснения того, как они работают.
Пример на языке VBSCRIPT:
' ---------------------------------------------------------------------------- ' Коллекция HeadersFooters и классы HeaderFooter ' Колонтитулы в Word ' HeadersFooters.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, MyText Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() oWord.Visible = true Set oSel = oWord.Selection MyText = "Колонтитулы в ворде. " For i=0 to 40 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph Next With oDoc(1).Sections(1) .PageSetup.OddAndEvenPagesHeaderFooter = true ' Различные колонтитулы в Word для четных и нечетных .PageSetup.DifferentFirstPageHeaderFooter = true ' Уникальный колонтитул в Word для первой страницы '------------------------------------------------------------------------------------------- ' верхний и нижний колонтитулы в ворде для четных '------------------------------------------------------------------------------------------- .Headers(3).Range.Text = "Заголовок – четные1, 2,4,6....." .Footers(3).Range.Text = "Футер – четные1, 2,4,6....." '------------------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------- ' нижний и верхний колонтитулы в ворде для нечетных '------------------------------------------------------------------------------------------- .Headers(1).Range.Text = "Заголовок – нечетные1, 1,3,5....." .Footers(1).Range.Text = "Футер – нечетные1, 1,3,5....." '------------------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------- ' Верхний и нижний колонтитулы в Word для первой страницы '------------------------------------------------------------------------------------------- .Headers(2).Range.Text = "Заголовок" .Footers(2).Range.Text = "Футер" '------------------------------------------------------------------------------------------- End With |
Пример на языке JSCRIPT:
// ---------------------------------------------------------------------------- // Коллекция HeadersFooters и классы HeaderFooter // Колонтитулы в Word // HeadersFooters.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, i, MyText1; oWord1 = WScript.CreateObject("Word.Application"); oDoc1 = oWord1.Documents; oDoc1.Add(); oWord1.Visible = true; oSel1 = oWord1.Selection; MyText1 = "Колонтитулы в ворде. "; for(i=0; i<=40; i++){ oSel1.TypeText(MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1); oSel1.TypeParagraph(); } with(oDoc1(1).Sections(1)){ PageSetup.OddAndEvenPagesHeaderFooter = true // Различные колонтитулы в Word для четных и нечетных PageSetup.DifferentFirstPageHeaderFooter = true // Уникальный колонтитул в Word для первой страницы //------------------------------------------------------------------------------------------- // верхний и нижний колонтитулы в ворде для четных //------------------------------------------------------------------------------------------- Headers(3).Range.Text = "Заголовок – четные1, 2,4,6....." Footers(3).Range.Text = "Футер – четные1, 2,4,6....." //------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------- // нижний и верхний колонтитулы в ворде для нечетных //------------------------------------------------------------------------------------------- Headers(1).Range.Text = "Заголовок – нечетные1, 1,3,5....." Footers(1).Range.Text = "Футер – нечетные1, 1,3,5....." //------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------- // Верхний и нижний колонтитулы в Word для первой страницы //------------------------------------------------------------------------------------------- Headers(2).Range.Text = "Заголовок" Footers(2).Range.Text = "Футер" //------------------------------------------------------------------------------------------- } |
В данных примерах все довольно просто, мы создаем новый документ, добавляем в него текст и создаем колонтитулы в Word для четных, нечетных страниц и для первой страницы. Обратите внимание, что через свойство Range мы получаем доступ к остальным классам, которые позволяют вставить текст. При желании, вы можете усложнить программный код, добавив выравнивание текста и прочие параметры форматирования.