[CDR 2017-2021] Создание текстового объекта в определённом месте

scitex

Участник
Топикстартер
Сообщения
11
Реакции
0
Доброго времени всем!
собственно вопрос в теме.
имеется множество файлов, у всех разные размеры страниц. нужно разместить текст к примеру над страницей (не на печатном поле)
пробовал записать макрос, посмотрел на код, потыкался, потестил разные варианты... не получается
хотя головой понимаю, что нужно посмотреть размер страницы и уже исходя из этого размещать текст, но как это вопротить в код - не разберусь
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844
пробовал записать макрос, посмотрел на код, потыкался, потестил разные варианты... не получается
Что именно пробовали и что именно не получается? (Когда код сюда постить будете, не забудьте заключать его в соответствующие тэги)
 

scitex

Участник
Топикстартер
Сообщения
11
Реакции
0
сорян, про свой код забыл)
Код:
Sub Macro2()
    
    Dim s1 As Shape
   ' Dim right As PageSize
   ' Dim left As PageSize
    ActiveDocument.ReferencePoint = cdrTopMiddle
    ActiveDocument.Unit = cdrMillimeter
    Set s1 = ActiveLayer.CreateArtistic(LeftX, TopY, "ТЕКСТ")
    s1.Fill.UniformColor.CMYKAssign 0, 0, 0, 100
    s1.Outline.SetNoOutline

 
 End Sub

текст вставляется в левый нижний угол страницы
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844
Ну понятное дело - у вас координаты LeftX и TopY не определены а значит нули
А вам надо какие?
 

scitex

Участник
Топикстартер
Сообщения
11
Реакции
0
Ну понятное дело - у вас координаты LeftX и TopY не определены а значит нули
А вам надо какие?
мне нужно чтобы вверху страниц по середине, с отступом к примеру 5мм. но не на самой странице
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    11.9 КБ · Просм.: 303

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
Код:
Sub Macro2()
    
    Dim s1 As Shape, pX As Double, pY As Double
    ActiveDocument.ReferencePoint = cdrTopMiddle
    ActiveDocument.Unit = cdrMillimeter
    ActiveDocument.ActivePage.GetSize pX, pY
    Set s1 = ActiveLayer.CreateArtisticText(pX / 2, pY + 10, "TEXT", , , , , , , , cdrCenterAlignment)
    s1.Fill.UniformColor.CMYKAssign 0, 0, 0, 100
    s1.Outline.SetNoOutline

 
 End Sub
как-то так ... к координатам можно добавлять убавлять поправки
текст будет создаваться с параметрами по дефолту
или разбирайтесь с кучкой запятых :)
 
  • Спасибо
Реакции: scitex

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
+ 5 все таки, наверное?
да это по вкусу ... другое хочется сказатьь - если сраниц будет несколько, а текст будет создаваться за пределеами страниц, по факту на десктопе - в результате получится каша из надписей непонятно к чему относящихся
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844

scitex

Участник
Топикстартер
Сообщения
11
Реакции
0
будет всего одна страница, счас опробую)
отлично, работает) и сразу же вопрос! откуда столько запятых? и между какими нужно\можно указать размер шрифта?
 
Последнее редактирование:

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
По факту на активном слое - то есть, на странице, хоть и за ее пределами
при добавлении страницы - текст улетает на десктоп
1577268360074.png


хотя в 2019 - это как раз можно настроить
чтобы оставалось на слое
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
  • Спасибо
Реакции: scitex

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 189
Реакции
10 844
1577265929462.png
 
  • Спасибо
Реакции: scitex

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
Function CreateArtisticText(Left As Double, Bottom As Double, Text As String, [LanguageID As cdrTextLanguage = cdrLanguageNone], [CharSet As cdrTextCharSet = cdrCharSetMixed], [Font As String], [Size As Single], [Bold As cdrTriState = cdrUndefined], [Italic As cdrTriState = cdrUndefined], [Underline As cdrFontLine = cdrMixedFontLine], [Alignment As cdrAlignment = cdrMixedAlignment]) As Shape
 
  • Спасибо
Реакции: scitex