Приветствую всех читателей блога scriptcoding.ru. В этой публикации мы рассмотрим объект Font, который позволяет задать основные параметры шрифта в Word.
В прошлых статьях мы научились создавать приложение Word (смотрите "Word.Application"), новый документ (смотрите "Word.Documents") и также рассмотрели процесс добавления заданного текста в созданный документ с помощью объекта Selection (смотрите "Word.Selection"). Теперь настало время познакомиться с объектом Font, доступ к которому можно получить через одноименное свойство. Фактически, объект Font позволяет задать параметры форматирования шрифта.
Объект Font - основные параметры шрифта в Word
Сам по себе класс Font довольно прост, так как все свойства и методы интуитивно понятны. Сами свойства я разбил на несколько категорий в зависимости от их типа. И так, приступим…
Свойства класса Font – параметры форматирования шрифта
Свойства, которые доступны для чтения и для записи, принимают логические значения TRUE или FALSE. При установлении значения TRUE свойства позволяют отформатировать выделенный текст: сделать жирным, курсивом, подчеркнутым и так далее.
AllCaps – Все прописные.
SmallCaps – Малые прописные.
Bold – Жирный шрифт в Word, само свойство возвращает True, False или wdUndefined (смесь True или False)
DoubleStrikeThrough – Двойное зачеркивание.
StrikeThrough – Одинарное зачеркивание.
Emboss – Приподнятый.
Engrave – Утопленный.
Italic – Курсив.
Outline – Контур.
Shadow – С тенью.
Subscript – Подстрочный знак.
Superscript – Надстрочный знак.
Свойства, которые позволяют задать или получить значение, заданное определенной константой (если происходит выполнение кода в редакторе VBA то можно использовать не целое число, и именованное значение).
ColorIndex – Параметры цвета текста шрифта в Word, значения константы WdColorIndex:
- wdAuto - 0 - Автоматический цвет. По умолчанию, обычно черный цвет.
- wdByAuthor - -1 - Цвет определяется автором документа
- wdNoHighlight - 0 - Удаляет подсветку.
- wdBlack - 1 – черный.
- wdBlue - 2 – синий.
- wdTurquoise - 3 – бирюзовый.
- wdBrightGreen - 4 - ярко-зеленый.
- wdPink - 5 – розовый.
- wdRed - 6 – красный.
- wdYellow - 7 – желтый.
- wdWhite - 8 – белый.
- wdDarkBlue - 9 - темно-синий.
- wdTeal - 10 – бирюзовый.
- wdGreen - 11 – зеленый.
- wdViolet - 12 – фиолетовый.
- wdDarkRed - 13 - темно-красный.
- wdDarkYellow - 14 - темно-желтый.
- wdGray50 - 15 - тень 50 серого.
- wdGray25 - 16 - тень 25 серого.
Underline - Тип подчеркивания, заданный значением константы WdUnderline:
- wdUnderlineNone - 0 - нет подчеркивания.
- wdUnderlineSingle - 1 - одна линия, по умолчанию.
- wdUnderlineWords - 2 - подчеркнет только отдельные слова.
- wdUnderlineDouble - 3 - двойная линия.
- wdUnderlineDotted - 4 – точки.
- wdUnderlineThick - 6 - единая жирная линия.
- wdUnderlineDash - 7 – тире.
- wdUnderlineDotDash - 9 - чередующиеся точки и тире.
- wdUnderlineDotDotDash - 10 – чередующиеся две точки и тире.
- wdUnderlineWavy - 11 - одна волнистая линия.
- wdUnderlineDottedHeavy - 20 – жирные точки.
- wdUnderlineDashHeavy - 23 - жирные тире.
- wdUnderlineDotDashHeavy - 25 - чередующиеся жирные точки и жирные тире.
- wdUnderlineDotDotDashHeavy - 26 - чередующиеся жирные две точки и тире.
- wdUnderlineWavyHeavy - 27 - жирная волнистая линия.
- wdUnderlineDashLong - 39 - длинное тире.
- wdUnderlineWavyDouble - 43 - двойная волнистая линия.
- wdUnderlineDashLongHeavy - 55 - длинное жирное тире.
UnderlineColor - Возвращает или устанавливает 24-битный цвет подчеркивания, содержит значение константы WdColor:
- wdColorAqua - 13421619 - аква
- wdColorAutomatic - 16777216 - Автоматическая цвет. По умолчанию, обычно черный цвет.
- wdColorBlack - 0 – черный.
- wdColorBlue - 16711680 – синий.
- wdColorBlueGray - 10053222 - сине-серый.
- wdColorBrightGreen - 65280 - ярко-зеленый.
- wdColorBrown - 13209 – коричневый.
- wdColorDarkBlue - 8388608 - темно-синий.
- wdColorDarkGreen - 13056 - темно-зеленый.
- wdColorDarkRed - 128 - темно-красный.
- wdColorDarkTeal - 6697728 – темно-бирюзовый.
- wdColorDarkYellow - 32896 - темно-желтый.
- wdColorGold - 52479 – золотистый.
- wdColorGray05 - 15987699 - тень05серого.
- wdColorGray10 - 15132390 - тень10серого.
- wdColorGray125 - 14737632 - тень125серого.
- wdColorGray15 - 14277081 - тень15серого.
- wdColorGray20 - 13421772 - тень20серого.
- wdColorGray25 - 12632256 - тень25серого.
- wdColorGray30 - 11776947 - тень30серого.
- wdColorGray35 - 10921638 - тень35 серого.
- wdColorGray375 - 10526880 - тень375серого.
- wdColorGray40 - 10066329 - тень40серого.
- wdColorGray45 - 9211020 - тень45серого.
- wdColorGray50 - 8421504 - тень50серого.
- wdColorGray55 - 7566195 - тень55серого.
- wdColorGray60 - 6710886 - тень60серого.
- wdColorGray625 - 6316128 - тень625серого.
- wdColorGray65 - 5855577 - тень65серого.
- wdColorGray70 - 5000268 - тень70серого.
- wdColorGray75 - 4210752 - тень75серого.
- wdColorGray80 - 3355443 - тень80серого.
- wdColorGray85 - 2500134 - тень85серого.
- wdColorGray875 - 2105376 - тень875серого.
- wdColorGray90 - 1644825 - тень90серого.
- wdColorGray95 - 789516 - тень95серого.
- wdColorGreen - 32768 – зеленый.
- wdColorIndigo - 10040115 – синий.
- wdColorLavender - 16751052 – бледно-лиловый.
- wdColorLightBlue - 16737843 - светло-синий.
- wdColorLightGreen - 13434828 - светло-зеленый.
- wdColorLightOrange - 39423 - светло-оранжевый.
- wdColorLightTurquoise - 16777164 – светло-бирюзовый.
- wdColorLightYellow - 10092543 - светло-желтый.
- wdColorLime - 52377 – липовый.
- wdColorOliveGreen - 13107 – оливково-зеленый.
- wdColorOrange - 26367 – оранжевый.
- wdColorPaleBlue - 16764057 - бледно-голубой.
- wdColorPink - 16711935 – розовый.
- wdColorPlum - 6697881 - темно-фиолетовый.
- wdColorRed - 255 – красный.
- wdColorRose - 13408767 – розовый.
- wdColorSeaGreen - 6723891 – зеленый.
- wdColorSkyBlue - 16763904 - небесно-голубой.
- wdColorTan - 10079487 - желтовато-коричневый.
- wdColorTeal - 8421376 - бирюзовый.
- wdColorTurquoise - 16776960 - Бирюзовый цвет.
- wdColorViolet - 8388736 – фиолетовый.
- wdColorWhite - 16777215 – белый.
- wdColorYellow - 65535 – желтый.
DiacriticColor - Как ColorIndex, позволяет задать параметры цвета текста шрифта в word, принимает значения константы WdColor.
Прочие свойства, которые позволяют получить или задать такие основные параметры шрифта в Word, как размер, имя и так далее.
Position – Позволяет получить или задать смещение текста в пунктах относительно базовой линии.
Scaling - Возвращает или устанавливает процент масштаба, применяемого к шрифтом.
Spacing - Возвращает или задает расстояние в пунктах между символами. Считывание / запись
Size – Позволяет получить или установить параметры форматирования шрифта в Word: размер в пунктах.
Name - Возвращает или задает имя.
Методы объекта Font – параметры форматирования шрифта в Word
Grow() - Увеличивает размер на один пункт.
Shrink() - Уменьшает размер на один пункт.
Reset() – Полностью очищает параметры форматирования текст шрифта в Word.
Хорошо, основные свойства и методы мы рассмотрели, теперь настало время приступить к программированию, я напишу два примера под Wndows Script Host. Логика проста: происходит создание нового документа Word, далее происходит вставка текста с помощью объекта Selection, после происходит выделение различных диапазонов текста и их форматирование – основные параметры шрифта в Word.
Пример на VBScript
' ------------------------------------------------ ' Объект Word Font ' Основные параметры шрифта в Word ' Font.vbs ' ------------------------------------------------ Option Explicit dim oWord, oDoc, oSel, SelText, i, oFon, sel ' ссылка на объект Word Application Set oWord = CreateObject("Word.Application") ' ссылка на колекцию Documents Set oDoc = oWord.Documents ' создаем новый документ основные параметры шрифта в Word oDoc.Add() ' ссылка на объект Selection Set oSel = oWord.Selection ' ссылка на объект Font Set oFon = oSel.Font ' делаем документ видимым oWord.Visible = true With oSel For i = 0 To 100 ' вставляем текст .Text = "параметры форматирования шрифта в Word" ' Перемещаем курсор в конец текста .EndOf ' вставляем параграф .TypeParagraph Next End With '------------------------------------------------------------- ' Форматируем текст в документе Word '------------------------------------------------------------- With oSel .SetRange 0,50 oFon.Bold = true .SetRange 50,100 oFon.DoubleStrikeThrough = true .SetRange 100,150 oFon.Emboss = true .SetRange 150,200 oFon.Engrave=true .SetRange 200,250 oFon.Italic = true .SetRange 250,300 oFon.Outline = true .SetRange 300,350 oFon.Shadow = true .SetRange 350,400 oFon.SmallCaps = true .SetRange 400,450 oFon.Subscript = true .SetRange 450,500 oFon.Superscript = true .SetRange 500,550 oFon.StrikeThrough = true .SetRange 550,600 oFon.Hidden = true .SetRange 600,650 oFon.Name = "Times New Roman" ' основные параметры шрифта Word .SetRange 650,700 oFon.Position = 50 .SetRange 750,800 oFon.Scaling = 120 .SetRange 800,850 oFon.Size = 30 .SetRange 850,900 oFon.Spacing = 20 .SetRange 900,950 oFon.Underline = 10 oFon.UnderlineColor=8421376 End With With oFon sel = 950 ' меняем цвет для разных фрагментов for i=1 to 16 sel = 950+(i*200) oSel.SetRange sel+100, sel + 200 .ColorIndex = i sel = sel + 200 next ' делаем задержку в 3 секунды Wscript.Sleep 3000 ' выделяем весь текст oDoc(1).Select Wscript.Sleep 3000 ' очищаем параметры форматирования текста шрифта в Word .Reset ' устанавливаем верхний регистр .AllCaps = true Wscript.Sleep 3000 ' устанавливаем нижний регистр .SmallCaps = true End With |
Пример на JScript
// ------------------------------------------------ // Объект Word Font // Основные параметры шрифта в Word // Font.js // ------------------------------------------------ var oWord1, oDoc1, oSel1, SelText, i, oFon1, sel1; // ссылка на объект Word Application oWord1 = WScript.CreateObject("Word.Application"); // ссылка на коллекцию Documents oDoc1 = oWord1.Documents; // создаем новый документ параметры форматирования шрифта oDoc1.Add(); // ссылка на объект Selection oSel1 = oWord1.Selection; // ссылка на объект Font oFon1 = oSel1.Font; // делаем документ видимым oWord1.Visible = true; with (oSel1){ for(i = 0; i<=100; i++){ // вставляем текст Text = "параметры форматирования шрифта в Word"; // Перемещаем курсор в конец текста EndOf(); // вставляем параграф TypeParagraph(); } } //-------------------------------------------------------- // Форматируем текст в документе Word //-------------------------------------------------------- with (oSel1){ SetRange(0,50); oFon1.Bold = true; SetRange(50,100); oFon1.DoubleStrikeThrough = true; SetRange(100,150); oFon1.Emboss = true; SetRange(150,200); oFon1.Engrave=true; SetRange(200,250); oFon1.Italic = true; // параметры форматирования шрифта SetRange(250,300); oFon1.Outline = true; SetRange(300,350); oFon1.Shadow = true; SetRange(350,400); oFon1.SmallCaps = true; SetRange(400,450); oFon1.Subscript = true; SetRange(450,500); oFon1.Superscript = true; SetRange(500,550); oFon1.StrikeThrough = true; SetRange(550,600); oFon1.Hidden = true; SetRange(600,650); oFon1.Name = "Times New Roman"; SetRange(650,700); oFon1.Position = 50; SetRange(750,800); oFon1.Scaling = 120; SetRange(800,850); oFon1.Size = 30; SetRange(850,900); oFon1.Spacing = 20; SetRange(900,950); oFon1.Underline = 10; oFon1.UnderlineColor=8421376; } with (oFon1){ sel1 = 950; // меняем цвет для разных фрагментов for(i = 0; i<=16; i++){ sel1 = 950+(i*200); oSel1.SetRange(sel1+100, sel1 + 200); ColorIndex = i; sel1 += 200; } // делаем задержку в 3 секунды WScript.Sleep(3000) // выделяем весь текст oDoc1(1).Select(); WScript.Sleep(3000); // очищаем параметры форматирования текста шрифта в Word Reset(); // устанавливаем верхний регистр AllCaps = true; WScript.Sleep(3000) // устанавливаем нижний регистр SmallCaps = true; } |
Хорошо, теперь давайте разберем данные примеры. Логика работы программного кода одинакова, сразу после создания документа происходит несколько этапов:
Этап первый – в цикле for (смотрите синтаксис для языка vbscript - "Урок 6 по VBScript: Циклы for…next и for each…next" и jscript - "Урок 9 по JScript - оператор цикла for") происходит вставка текста, с учетом параграфа и перевода строки.
Этап второй – Тут в блоке with содержится длинная череда из выделения фрагментов, для которых задаются основные параметры шрифта в Word: размер, отступы, имя и так далее.
Этап третий – Снова следует блок with, в теле которого выборочно происходит смена цвета для выделенных фрагментов. Далее с задержкой в 3 секунды (смотрите статью "Объект WScript - методы sleep, quit и echo и 8 свойств") сбрасываются параметры форматирования шрифта и меняется регистр символов.
Спасибо за внимание. Автор блога Владимир Баталий