Объект Word Paragraph и коллекция Paragraphs — основные параметры абзаца

Объект Word Paragraph и коллекция Paragraphs — основные параметры абзаца Объектная модель Microsoft Word

Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы рассмотрим коллекцию Paragraphs и объект Paragraph – оба элемента позволяют задать основные параметры абзаца в Word документе.

Стоит обратить внимание, что большая часть свойств и методов являются идентичными. Так, если мы используем некоторое свойство, работая с коллекцией, то оно будет влиять на все основные параметры абзаца в Word, если свойство или метод используются только для конкретного объекта Paragraph, то обрабатываться будет параметр конкретного абзаца. В самой статье я приведу примеры программного кода для сценариев сервера Windows Script HostVBScript и JScript.

И так, давайте приступим…

Paragraph и Paragraphs – основные параметры абзаца в Word

Как и большинство коллекций и объектов модели Word, коллекция Paragraphs содержит все объекты Paragraph. Прежде чем приступать к обработке абзацев, нужно сначала получить ссылку на коллекцию Paragraphs, это можно сделать с помощью одноименно свойства классаSelection (смотрите статью «Объект Word Selection — выделить весь текст в ворде, свойства«) или класса Range (статья «Объект Word Range — Выбор текста«). Также стоит учитывать, что коллекция будет содержать те параграфы, которые входят в выделенный или выбранный диапазон текста.

Общие свойства – параметры форматирования абзацев

основные настройки параметров абзацев

Alignment— Позволяет задать или получить значение константы WdParagraphAlignment, которая отвечает за выравнивание текста:

  • wdAlignParagraphLeft — 0 – По левому краю.
  • wdAlignParagraphCenter — 1 – По центру.
  • wdAlignParagraphRight — 2 — По правому краю.
  • wdAlignParagraphJustify — 3 – По ширине.
  • wdAlignParagraphDistribute — 4 – Распределяет символы так, что бы заполнить по ширине все окно.
  • wdAlignParagraphJustifyMed — 5 — По ширине со средней степенью сжатия символов.
  • wdAlignParagraphJustifyHi — 7 — По ширине с высокой степенью сжатия символов.
  • wdAlignParagraphJustifyLow — 8 — По ширине с низкой степенью сжатия символов.

CharacterUnitFirstLineIndent– Задает или возвращает отступ первой строки.

CharacterUnitLeftIndent– Выступ слева

CharacterUnitRightIndent– Отступ справа

FirstLineIndent— Возвращает или устанавливает значение (в пунктах) для первой линии или отступа.

LeftIndent– Отступ слева в пунктах.

RightIndent– Отступ справа в пунктах.

LineSpacing– Междустрочный интервал.

LineSpacingRule— Возвращает или устанавливает междустрочный интервал, который определяет значение константы WdLineSpacing:

  • wdLineSpaceSingle — 0 – одинарный, по умолчанию
  • wdLineSpace1pt5 — 1 – 1,5 строки.
  • wdLineSpaceDouble — 2 – двойной.
  • wdLineSpaceAtLeast — 3 – минимум.
  • wdLineSpaceExactly — 4 – точно.
  • wdLineSpaceMultiple — 5 — междустрочный интервал определяется количеством линий указано.

LineUnitAfter– Интервал после параграфа.

LineUnitBefore– Интервал перед параграфом.

ReadingOrder— Возвращает или устанавливает такие основные параметры форматирования для абзаца, как порядок чтения без изменения их выравнивания. Содержит значение константы WdReadingOrder:

  • wdReadingOrderLtr — 1 – Слева направо
  • wdReadingOrderRtl — 0 – Справа налево

SpaceAfter– Интервал в пунктах после параграфа.

SpaceBefore— Интервал в пунктах перед параграфом.

Style— Возвращает или задает такие настройки параметров абзаца, как стиль. Свойство принимает имя стиля, или значение константы WdBuiltinStyle.

Общие методы – настройка параметров абзаца

задаем параметры абзацев в документе word

Indent() – Позволяет добавить отступ на один пункт.

Outdent() — Позволяет удалить отступ на один пункт.

IndentCharWidth(count) – Добавляет отступ на заданное количество символов.

IndentFirstLineCharWidth(count) — Отступ первой строки на заданное количество символов.

Reset() — Удаляет ручное форматирование – не влияет на форматирование стиля.

TabHangingIndent(count) — Устанавливает висячий отступ на заданное значение.

TabIndent(count) — Устанавливает отступ слева на заданное значение.

OpenOrCloseUp() – Вставляет или удаляет интервал в 12 пунктов перед указанным абзацем.

OpenUP() – Вставляет интервал в 12 пунктов перед указанным параграфом.

CloseUP() – Удаляет интервал в 12 пунктов перед указанным параграфом.

OutlineDemote() и OutlinePromote() – Применяют стиль Заголовок к указанному параграфу.

OutlineDemoteToBody() – Применяет нормальный стиль.

Space1() — Одинарный междустрочный интервал.

Space15() – Междустрочный интервал в 1.5 строки.

Space2() – Двойной междустрочный интервал.

Свойство и методы коллекции Paragraps – основные параметры абзаца

параметры форматирования в Word абзаца

Count– Содержит количество параграфов в документе. Только чтение.

Item(count) – Позволяет получить доступ к указанному абзацу в коллекции, вернет объект Paragraph.

Add() — Возвращает объект Paragraph, который представляет параметры форматирования нового абзаца, который является пустым, добавленным в документ.

DecreaseSpacing() — Уменьшает отступ между параграфами на 6 пунктов.

IncreaseSpacing() — Увеличивает отступ между параграфами на 6 пунктов.

Методы объекта Paragraph – параметры форматирования абзацев

настройка в Word параметра абзацов

Next(count) — Возвращает объект Paragraph, представляющий основные параметры следующего абзаца в Word.

Previous(count) — Возвращает объект Paragraph, представляющий основные параметры предыдущего абзаца в Word.

И так, с теоретической частью мы закончили, теперь можно приступить к программированию. Рассмотрим два простых примера на языке VBScript и JScript, я сначала приведу программный код, а уже в конце дам пояснения.

Пример на языке программирования VBScript:

' ----------------------------------------------------------------------------
' Коллекция Paragraph и класс Paragraph
' Выравнивание и изменение междустрочного интервала
' Основные параметры абзацев в Word
' Paragraph.vbs
' ----------------------------------------------------------------------------
Option Explicit
 
dim oWord, oDoc, oSel, i, oPars, MyText, j
 
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
Set oSel = oWord.Selection
Set oPars = oSel.Paragraphs
oWord.Visible = True
 
MyText = "параметры форматирования абзаца. "
 
For i=0 to 10
   oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
   oSel.TypeParagraph
Next
 
oDoc(1).Select
i=1:j=0
' настройка параметров каждого абзаца
Do While i <= oPars.Count
   if j = 2 then     oPars(i).LineSpacing = 3
   if j = 3 then
      j = 0
      ' Меняем выравнивание абзаца
      oPars(i).Alignment=j
      j = j + 1
   else
      oPars(i).Alignment=j
      j = j + 1
   end if
   i = i + 1
Loop

Пример на языке программирования JScript:

// ----------------------------------------------------------------------------
// Коллекция Paragraph и класс Paragraph
// Выравнивание и изменение междустрочного интервала
// Основные параметры абзацев в Word
// Paragraph.js
// ----------------------------------------------------------------------------
 
var oWord1, oDoc1, oSel1, oPars1, MyText1 = "параметры форматирования абзаца. ", oRange1;
 
oWord1 = WScript.CreateObject("Word.Application");
oDoc1 = oWord1.Documents;
oDoc1.Add();
oSel1 = oWord1.Selection;
oWord1.Visible = true;
 
// Вставляем текст
for (i=0; i<=10; i++){
   oSel1.TypeText(MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1);
   oSel1.TypeParagraph();
}
 
// Создаем ссылку для Range Word
// Заодно выбираем весь текст
oRange1 = oDoc1(1).Range();
oPars1 = oRange1.Paragraphs;
 
var i = 1, j = 0;
// настройка параметров каждого абзаца
while (i <= oPars1.Count){
   if (j == 2){ oPars1(i).LineSpacing = 3;}
   if (j == 3){
      j = 0;
      // Меняем выравнивание
      oPars1(i).Alignment=j;
      j ++
   }else{
      oPars1(i).Alignment=j;
      j ++
   }
   i ++
}

Хорошо, теорию разобрали, программированием занялись, теперь надо дать пояснения к сценариям:

Объявление переменных – в самом начале мы объявляем переменные, в языке vbscript это делается в блоке dim, а в языке программирования jscript – в блокеvar. Обратите внимание, что в vbs мы включили проверку переменных с помощью оператора Option Explicit. Сами имена переменных отличаются, так, для JS скрипта я приписал единицу.

Подключение внешних классов – Далее происходит процесс создания ссылок на внешние классы, которые позволяют создать новый документ, задавать параметры форматирования абзацев, управлять вставкой текста и так далее. Обратите внимание, что для vbs мы использовали ключевое слово set.

Вставка содержимого – В цикле for (смотрите синтаксис для vbscript — «Урок 6 по VBScript: Циклы for…next и for each…next» и jscript — «Урок 9 по JScript — оператор цикла for«) происходит вставка несколько раз содержимого переменной MyText параллельно с параграфом.

Настройка параметров абзаца – Тут снова используется цикл for, в котором в заданном порядке происходит форматирование – меняется интервал, выравнивание и так далее. Обратите внимание, что в vbs сценарии мы получили доступ к параграфам через Selection, а в js – через Range.

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