Здравствуйте все читатели и подписчики блога scriptcoding.ru. Сегодня мы рассмотрим такую тему, как оформление текста в ворде с помощью класса TextEffectFormat, который, по сути, представляет фигуры WordArt.
Класс TextEffectFormat содержит свойства и методы, которые применяются к элементам WordArtв Word. По сути, тут нет ничего особенного, мы просто может изменить параметры нужного WordArt на собственный вкус – форма фигуры, размер, стиль, положение и так далее. Для доступа к данному классу сначала нужно добавить фигуру WordArt с помощью метода AddTextEffectколлекции Shapes, после чего через свойство TextEffectкласса Shape мы сможем получить доступ к нужной фигуре WordArt для оформления текста в Word, и тем самым получим доступ к TextEffectFormat, также мы сможем изменить направление текста в ворде.
TextEffectFormat – оформление текста в ворде
Свойства и один метод – оформление текста в Word
Alignment— Возвращает или устанавливает выравнивание текста. Значения константы MsoTextEffectAlignment:
- msoTextEffectAlignmentLeft — 1 – По левому краю.
- msoTextEffectAlignmentCentered — 2 — По центру.
- msoTextEffectAlignmentRight — 3 – По правому краю.
- msoTextEffectAlignmentLetterJustify — 4 – Выровнять за счет интервалов.
- msoTextEffectAlignmentWordJustify — 5 – Выровнять по обоим краям.
- msoTextEffectAlignmentStretchJustify — 6 – Выровнять за счет ширины.
- msoTextEffectAlignmentMixed — -2 — Не используется.
FontBold— Устанавливает шрифт полужирным (true) или нет (false).
FontItalic— Устанавливает шрифт курсивом (true) или нет (false).
FontName— Возвращает или задает имя шрифта фигуры WordArt в Word.
FontSize— Возвращает или задает размер шрифта в пунктах.
KernedPairs– Включить (true) или отключить (false) кернинг пар знаков.
NormalizedHeight– Свойство позволяет указать, что бы все символы были одинаковой высоты – значение True. Оформление текста в ворде.
PresetShape— Возвращает или устанавливает фигуру указанного WordArt в Word. Значение константы MsoPresetTextEffectShape.
PresetTextEffect— Возвращает или задает стиль указанного WordArt. Значения константы MsoPresetTextEffect. Изменить направление для текста в ворд.
RotatedChars— True — символы поворачиваются на 90 градусов. False — символы сохраняют свою первоначальную ориентацию.
Text— Возвращает или устанавливает текст в указанном объекте.
Tracking— Возвращает или устанавливает интервал между буквами. Это свойство может принимать значение от 0 до 5. Ниже приведены значения, которые соответствуют настройкам, доступным в пользовательском интерфейсе:
- Очень узкий — 0,8
- Узкий — 0,9
- Нормальный — 1.0
- Широкий — 1.2
- Очень широкий — 1,5
ToggleVerticalText() – Позволяет изменить направление текста в ворде с горизонтального положения в вертикальное и наоборот, действует как переключатель.
И так, с теорией мы закончили, теперь приступим к программированию. Напишем два сценариях – один на языке vbscript, а другой на языке jscript. Помним, что сценарии работают под управлением сервера Windows Script Host.
Пример программного кода на языке VBSCRIPT:
' ******************************************************************** ' Класс TextEffectFormat ' Оформление текста в Word ' TextEffectFormat.vbs ' ******************************************************************** Option Explicit dim oWord, oDoc, shpCanvas, xCount, i, j Set oWord = CreateObject("Word.Application") ' ссылка на Application Set oDoc = oWord.Documents ' ссылка на Documents oDoc.Add() oWord.Visible = true Set shpCanvas = oDoc(1).Shapes ' ссылка на Shapes '-------------------------------------------------------------------------------- dim iCount, jCount iCount = 10 jCount = 10 xCount = 1 for i = 1 to 7 for j = 1 to 4 shpCanvas.AddTextEffect xCount, "Офрмление текста в ворде", "Times New Roman", 15, false, false, iCount, jCount ' направление текста word iCount = iCount + 130 xCount = xCount + 1 next iCount = 10 jCount = jCount + 60 next With shpCanvas(i).TextEffect for i = 1 to 6 .Alignment = i next for i = 7 to 10 .NormalizedHeight = true next for i = 11 to 14 .PresetTextEffect = 28 next for i = 17 to 20 .ToggleVerticalText ' изменить направление текста в ворде next End With '-------------------------------------------------------------------------------- dim iCount1, jCount1 iCount1 = 10 jCount1 = 450 for i = 1 to 5 for j = 1 to 4 shpCanvas.AddTextEffect 28, "оформление в ворде текста", "Times New Roman", 15, false, false, iCount1, jCount1 iCount1 = iCount1 + 130 next iCount1 = 10 jCount1 = jCount1 + 60 next iCount1 = 1 for i = 28 to 48 shpCanvas(i).TextEffect.PresetShape = iCount1 iCount1 = iCount1 + 1 next shpCanvas(48).TextEffect.Tracking = 5 |
Пример программного кода на языке JSCRIPT:
// ******************************************************************** // Класс Word TextEffectFormat // Оформление текста в Word // TextEffectFormat.js // ******************************************************************** var oWord1, oDoc1, shpCanvas1, xCount1, i, j; oWord1 = WScript.CreateObject("Word.Application"); // ссылка на Application oDoc1 = oWord1.Documents; // ссылка на Documents oDoc1.Add(); oWord1.Visible = true; shpCanvas1 = oDoc1(1).Shapes; // ссылка на Shapes //-------------------------------------------------------------------------------- var iCount2, jCount2; iCount2 = 10; jCount2 = 10; xCount1 = 1; for(i = 1; i<=7; i++){ for(j = 1; j<=4; j++){ shpCanvas1.AddTextEffect(xCount1, "Офрмление текста в ворде", "Times New Roman", 15, false, false, iCount2, jCount2); // направление текста word iCount2 += 130; xCount1++; } iCount2 = 10; jCount2 += 60; } with(shpCanvas1(i).TextEffect){ for(i = 1; i<=6; i++){ Alignment = i; } for(i = 7; i<=10; i++){ NormalizedHeight = true; } for(i = 11; i<=14; i++){ PresetTextEffect = 28; } for(i = 17; i<=20; i++){ ToggleVerticalText(); // изменить направление текста в ворде } } //-------------------------------------------------------------------------------- var iCount3, jCount3; iCount3 = 10; jCount3 = 450; for(i = 1; i<=5; i++){ for(j = 1; j<=4; j++){ shpCanvas1.AddTextEffect(28, " оформление в ворде текста ", "Times New Roman", 15, false, false, iCount3, jCount3); iCount3 += 130 } iCount3 = 10; jCount3 += 60; } iCount3 = 1; for(i = 28; i<=48; i++){ shpCanvas1(i).TextEffect.PresetShape = iCount3; iCount3 ++; } shpCanvas1(48).TextEffect.Tracking = 5; |
В данных сценариях, написанных на языке vbscript и jscript происходить добавление в документ Word различных фигур WordArt, точнее, фигура одна, только изменяется ее формат. По ходу кода видно, что происходит выборочное применение свойств и методов класса TextEffectFormat. Так, мы меняем фигуру WordArt, изменяем плотность букв, направление текста в Word и так далее.