Объект Word LineFormat — как сделать линию в ворде

Объект Word LineFormat — как сделать линию в ворде Объектная модель Microsoft Word

Доброго времени суток, с вами автор блога scriptcoding.ru. В этой публикации мы рассмотрим класс LineFormat, который позволяет форматировать линии в ворде для различных графических объектов. Так, мы можем добавить наконечники к концам линии, задать стиль, толщину, цвет и так далее.

Для доступа к объекту LineFormat используется свойство Lineобъекта Shape, который будет представлять графическую фигуру. Важно отметить, что количество доступных свойств объекта LineFormat ограничено типом фигуры – линия в Word, авто-фигура, надпись WordArt и так далее.

LineFormat – сплошная и пунктирная линия в ворде

Свойства — как сделать линию в ворде

сплошная и пунктирная линии в ворд

BeginArrowheadLengthи EndArrowheadLength— Возвращает или устанавливает длину стрелы в начале или в конце линии в ворд. Значения константы MsoArrowheadLength:

  • msoArrowheadShort — 1 — Короткий.
  • msoArrowheadLengthMedium — 2 — Средний.
  • msoArrowheadLong — 3 — Длинный.
  • msoArrowheadLengthMixed — -2 — Комбинированное значение.

BeginArrowheadWidthи EndArrowheadWidth— Возвращает или устанавливает ширину стрелки в начале или в конце ворд линии. Значения константы MsoArrowheadWidth:

  • msoArrowheadNarrow — 1 — Узкий.
  • msoArrowheadWidthMedium — 2 — Средний.
  • msoArrowheadWide — 3 — Широкий.
  • msoArrowheadWidthMixed — -2 – Комбинированное значение.

BeginArrowheadStyleи EndArrowheadStyle— Возвращает или устанавливает стиль стрелки в начале или в конце указанной строки. Значения константы MsoArrowheadStyle:

  • msoArrowheadNone — 1 — Нет стрелки.
  • msoArrowheadTriangle — 2 — Стрелка.
  • msoArrowheadOpen — 3 — Открытая стрелка.
  • msoArrowheadStealth — 4 – Вогнутая стрелка.
  • msoArrowheadDiamond — 5 – Ромбовидная стрелка.
  • msoArrowheadOval — 6 – Шарообразная стрелка.
  • msoArrowheadStyleMixed — 2 – Смешанные значения.

DashStyle— Возвращает или задает стиль тире для указанной линии в ворде. Значение константы MsoLineDashStyle:

  • msoLineSolid — 1 – Сплошная линия в ворде.
  • msoLineSquareDot — 2 – Квадратные точки.
  • msoLineRoundDot — 3 – Круглые точки.
  • msoLineDash — 4 — Штрих.
  • msoLineDashDot — 5 – Штрих-пунктирная линия в ворде.
  • msoLineDashDotDot — 6 – Длинные двойные штрих-пунктирные линии в ворде .
  • msoLineLongDash — 7 – Длинный штрих.
  • msoLineLongDashDot — 8 – Длинный штрих-пунктир.
  • msoLineDashStyleMixed — -2 — Не поддерживается.

InsetPen— True – показывает, как нарисовать линию в ворде внутри заданной фигуры.

Style— Возвращает или задает формат стиля, который будет содержать линия в Word. Значение константы MsoLineStyle:

  • msoLineSingle — 1 — одна сплошная линия в ворд.
  • msoLineThinThin — 2 — Две сплошные тонкие линии в Word.
  • msoLineThinThick — 3 – Толстая (внизу) и тонкая сплошные линии в ворде.
  • msoLineThickThin — 4 — Толстая (вверху) и тонкая сплошные линии ворд.
  • msoLineThickBetweenThin — 5 — Толстые сплошные линии Word с тонкой линией с каждой стороны.
  • msoLineStyleMixed — -2 — Не поддерживается.

Transparency— Возвращает или задает степень прозрачности линии ворд. Значение от 0,0 до 1,0.

Visible– Включить (true) или отключить (false) видимость ворд линии.

Weight— Возвращает или задает толщину указанной линии в ворде в пунктах.

Свойства-объекты и свойства-коллекции – как нарисовать линию в ворде

как в ворде сделать линию

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

BackColor— Возвращает или задает объект ColorFormat, представляющий цвет фона для узорной линии Word.

ForeColor— Возвращает или задает объект ColorFormat, представляющий цвет переднего плана для линии в Word.

Хорошо, с теоретической частью мы закончили, теперь приступим к программированию. Я приведу примеры программного кода на языке vbscript и jscript, которые работают под управлением сервера Windows Script Host.

Пример на VBScript:

' ********************************************************************' Объект LineFormat' сплошная и пунктирная линия в ворде - форматирование' LineFormat.vbs' ******************************************************************** OptionExplicit dim oWord, oDoc, shpCanvas, i Set oWord = CreateObject("Word.Application")' ссылка на ApplicationSet oDoc = oWord.Documents' ссылка на DocumentsoDoc.Add()oWord.Visible = trueSet shpCanvas = oDoc(1).Shapes' ссылка на Shapes '--------------------------------------------------------------------------------как нарисовать линию в вордеdim iCountiCount = 20for i = 1 to 6shpCanvas.AddLine iCount, 30, iCount + 50, 30iCount = iCount + 80next for i = 1 to 6 With shpCanvas(i).Line .BeginArrowheadStyle = i .EndArrowheadStyle = (i-7)*(-1) .ForeColor.RGB = RGB(128,0,0) EndWithnext for i = 1 to 3 With shpCanvas(i).Line .BeginArrowheadLength = i .EndArrowheadLength = (i-4)*(-1) EndWithnext iCount = 1for i = 4 to 6 With shpCanvas(i).Line .BeginArrowheadWidth = iCount .EndArrowheadWidth = (iCount - 4)*(-1) EndWithiCount = iCount + 1next '--------------------------------------------------------------------------------------dim iCount1iCount1 = 20for i = 1 to 4shpCanvas.AddLine iCount1, 60, iCount1 + 100, 60iCount1 = iCount1 + 130nextiCount1 = 20for i = 1 to 4shpCanvas.AddLine iCount1, 80, iCount1 + 100, 80' линии в WordiCount1 = iCount1 + 130next iCount1 = 1for i = 7 to 14 With shpCanvas(i).Line .DashStyle = iCount1 .Weight = 2 EndWithiCount1 = iCount1 + 1next '--------------------------------------------------------------------------------------dim iCount2iCount2 = 20for i = 1 to 5shpCanvas.AddLine iCount2, 100, iCount2 + 70, 100iCount2 = iCount2 + 100next iCount2 = 1for i = 15 to 19 With shpCanvas(i).Line .Style = iCount2 iCount2 = iCount2 + 1 .Weight = 5 .Visible = trueEndWithnext '-----------------------------------------------------------------------dim iCount3iCount3 = 10for i = 1 to 8shpCanvas.AddShape 1, iCount3, 130, 60, 60iCount3 = iCount3 + 70nextiCount3 = 1for i =20 to 27 With shpCanvas(i).Line .ForeColor.RGB = RGB(0,0,255) .DashStyle = iCount3 .Weight = 2 EndWithiCount3 = iCount3 + 1next '-----------------------------------------------------------------------как сделать линию в вордеdim iCount4iCount4 = 10for i = 1 to 5shpCanvas.AddShape 1, iCount4, 200, 60, 60iCount4 = iCount4 + 70nextiCount4 = 1for i =28 to 32 With shpCanvas(i).Line .ForeColor.RGB = RGB(255,168,0) .Style = iCount4 .Weight = 2 EndWithiCount4 = iCount4 + 1next

Пример на JScript:

// ********************************************************************// Объект LineFormat// пунктирная и сплошная линия в ворде - форматирование// LineFormat.js// ******************************************************************** var oWord1, oDoc1, shpCanvas1, i; oWord1 = WScript.CreateObject("Word.Application");// ссылка на ApplicationoDoc1 = oWord1.Documents;// ссылка на DocumentsoDoc1.Add();oWord1.Visible=true;shpCanvas1 = oDoc1(1).Shapes;// ссылка на Shapes //--------------------------------------------------------------------------------как нарисовать линию в вордеvar iCount5;iCount5 =20;for(i =1; i<=6; i++){shpCanvas1.AddLine(iCount5,30, iCount5 +50,30);iCount5 +=80;} for(i =1; i<=6; i++){ with(shpCanvas1(i).Line){ BeginArrowheadStyle = i; EndArrowheadStyle =(i-7)*(-1); ForeColor.RGB= rgbToHex(128,0,0);}} for(i =1; i<=3; i++){ with(shpCanvas1(i).Line){BeginArrowheadLength = i; EndArrowheadLength =(i-4)*(-1);}} iCount5 =1;for(i =4; i<=6; i++){ with(shpCanvas1(i).Line){BeginArrowheadWidth = iCount5; EndArrowheadWidth =(iCount5 -4)*(-1);}iCount5 ++;} //--------------------------------------------------------------------------------------var iCount6;iCount6 =20;for(i =1; i<=4; i++){shpCanvas1.AddLine(iCount6,60, iCount6 +100,60);iCount6 +=130;}iCount6 =20;for(i =1; i<=4; i++){shpCanvas1.AddLine(iCount6,80, iCount6 +100,80);// линии в WordiCount6 +=130;} iCount6 =1;for(i =7; i<=14; i++){shpCanvas1(i).Line.DashStyle= iCount6;shpCanvas1(i).Line.Weight=2;iCount6 ++;} //--------------------------------------------------------------------------------------var iCount7;iCount7 =20;for(i =1; i<=5; i++){shpCanvas1.AddLine(iCount7,100, iCount7 +70,100);iCount7 +=100;} iCount7 =1;for(i =15; i<=19; i++){ with(shpCanvas1(i).Line){ Style = iCount7; iCount7 ++; Weight =5; Visible =true;}} //-----------------------------------------------------------------------как сделать линию в вордеvar iCount8;iCount8 =10;for(i =1; i<=8; i++){shpCanvas1.AddShape(1, iCount8,130,60,60);iCount8 +=70;}iCount8 =1for(i =20; i<=27; i++){ with(shpCanvas1(i).Line){ ForeColor.RGB= rgbToHex(0,0,255); DashStyle = iCount8; Weight =2;}iCount8 ++;} //-----------------------------------------------------------------------var iCount9;iCount9 =10;for(i =1; i<=5; i++){shpCanvas1.AddShape(1, iCount9,200,60,60);iCount9 +=70;}iCount9 =1;for(i =28; i<=32; i++){ with(shpCanvas1(i).Line){ ForeColor.RGB= rgbToHex(255,168,0); Style = iCount9; Weight =2;}iCount9 ++;} //*****************************************************// Функция преобразования RGB цвета в// десятичное значение//*****************************************************function rgbToHex (r, g, b){r = r.toString(16);g = g.toString(16);b = b.toString(16);if(r.length==1) r ='0'+ r;if(g.length==1) g ='0'+ g;if(b.length==1) b ='0'+ b;myStr =(b + g + r).toUpperCase()return parseInt("0x".concat(myStr))}

В приведенных выше примерах сценариев, которые содержат программный код на языке vbscript и jscript, происходит создание нового документа Word, в который добавляются различные объекты Shape – линии и фигуры. Далее происходит форматирование данных графических объектов, а именно – применяются различные стили, меняется толщина и цвет, и так далее. Во втором сценарии на языке jscript, для того, что бы задать цвет линии в Word, пришлось написать дополнительную функцию rgbToHex, так как у языка jscript нет встроенной функции RGB, которая позволила бы задать цвет.

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