Регистрация | | запомнить |
 
 
ВК



Просматривают:   1 Анонимно





CorelDRAW VBA : Создание текста
print | #
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
Создать текст- это просто!

CorelScript.CreateArtisticText "C M Y K" ', 10, 20
With ActiveDocument.Selection.Shapes.Item(1).Text.Story
.Font = "Arial"
.Size = 10
End With


Перекрасить целиком можно так:

Dim myText As Shape
For Each myText In ActiveSelection.Shapes
myText.Fill.ApplyUniformFill myColor
Next myText

Вопрос :
Как перекрасить его в разные цвета (каждую букву в свойцвет)? Например: C M Y K

Опубликовано: 2008/2/20 10:18
(1) 2 »


Re: CorelDRAW VBA : Создание текста
Титан - модератор
Присоединился:
2006/4/8 19:42
Сообщений: 152
Offline
1. Лучше обходиться без CorelScript

ActiveDocument.unit = cdrMillimeter
With ActiveLayer.CreateArtisticText(10, 20, "CMYK", cdrRussian, cdrCharSetRussian, _
         "Arial", 12, Bold:=cdrTrue, Italic:=cdrFalse, Underline:=cdrNoFontLine, _
         Alignment:=cdrCenterAlignment)
   .text.Story.CharSpacing = 100
   .Fill.ApplyUniformFill CreateCMYKColor(0, 0, 0, 100)
End With


2. Обрабатывать в выделенном в цикле можно для надежности выбирая только текстовые объекты с помощью .FindShapes, что кстати позволяет обрабатывать внутри групп без разгруппировки

Dim myText As Shape, myColor as color
set myColor=CreateFixedColor(cdrPANTONECoated, _
          Palettes.OpenFixed(cdrPANTONECoated).FindColor("PANTONE 711 C"), 50)
For Each myText In ActiveSelection.Shapes.FindShapes(, cdrTextShape)
   myText.Fill.ApplyUniformFill myColor
Next myText


3. Перекрасить в разные цвета (каждую букву в свой цвет) например так:

dim i&,arrColors$()
arrColors=split("100,0,0,0+0,100,0,0+0,0,100,0+0,0,0,100","+")
for i=0 to ubound(arrColors)
   ActiveShape.Text.Story.Characters(i+1).Fill.ApplyUniformFill _
        CreateColor("CMYK,USER," & arrColors(i) & ",0")
next

Опубликовано: 2008/2/20 10:44


Re: CorelDRAW VBA : Создание текста
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40
Сообщений: 42
Offline
Пишу такой код
ActiveLayer.CreateParagraphText 0, 50, 60, 0, "Привет пока"

Но почему то буквы (РУССКИЕ) не отображаются - шрифты пробовал разные ставить... Английские буквы нормально отображаются... У меня Винда 98, Корел 10.

Опубликовано: 2008/2/20 17:30


Re: CorelDRAW VBA : Создание текста
Титан
Присоединился:
2007/2/28 9:18
Откуда Новосибирск
Сообщений: 2863
Offline
izrukvruki, Винда 98 я уже забыл что это такое

Опубликовано: 2008/2/20 17:49
_________________



мужчина в самом расцвете сил - KarLsoN©


Re: CorelDRAW VBA : Создание текста
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
Так еще не пробовал! Но попробую. А есть ли попроще код или метод ?

Опубликовано: 2008/2/20 21:02


Re: CorelDRAW VBA : Создание текста
Титан - модератор
Присоединился:
2006/4/8 19:42
Сообщений: 152
Offline
GoodvinVV, зависит от количества цветов... то, что использовал я удобно когда цветов оооочень много

Опубликовано: 2008/2/21 5:38


Re: CorelDRAW VBA : Создание текста
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
Спасибо за метод, мне оказалось достаточно вот этого...

ActiveDocument.Unit = cdrMillimeter
With ActiveLayer.CreateArtisticText(10, 20, "CMYK", cdrRussian, cdrCharSetRussian, _
"Arial", 12, Bold:=cdrTrue, Italic:=cdrFalse, Underline:=cdrNoFontLine, _
Alignment:=cdrCenterAlignment)
.Text.Story.CharSpacing = 100
.Fill.ApplyUniformFill CreateCMYKColor(0, 0, 0, 100)
End With

ActiveShape.Text.Story.Characters(1).Fill.ApplyUniformFill CreateCMYKColor(100, 0, 0, 0)
ActiveShape.Text.Story.Characters(2).Fill.ApplyUniformFill CreateCMYKColor(0, 100, 0, 0)
ActiveShape.Text.Story.Characters(3).Fill.ApplyUniformFill CreateCMYKColor(0, 0, 100, 0)
ActiveShape.Text.Story.Characters(4).Fill.ApplyUniformFill CreateCMYKColor(0, 0, 0, 100)

Еще раз спасибо!!!

Опубликовано: 2008/2/21 10:37

Edited by GoodvinVV on 22/02/2008 8:40:00


Re: CorelDRAW VBA : Создание текста
Пользователь
Присоединился:
2005/12/2 10:13
Откуда Минск, РБ
Сообщений: 23
Offline
А как можно сделать так чтобы набор букв разного размера (хаотично) заполнял область объекта

вот примерно так

Опубликовано: 2008/4/21 16:12


Re: CorelDRAW VBA : Создание текста
Титан - модератор
Присоединился:
2006/4/8 19:42
Сообщений: 152
Offline
имхо проще самому накидать штук сто разных, потом из этого набора брать куски, масштабировать их, крутить по разному и складывать в общую кучу

Опубликовано: 2008/4/21 23:18


Re: CorelDRAW VBA : Создание текста
Пользователь
Присоединился:
2005/12/2 10:13
Откуда Минск, РБ
Сообщений: 23
Offline
так то понятно но задача не очень простая - нужно сделать таких объектвов много - и чтобы они были все разные

поэтому хотелось бы как то оптимизировать процесс создания

Опубликовано: 2008/4/22 10:00


Re: CorelDRAW VBA : Создание текста
Новичок
Присоединился:
2008/1/15 10:05
Откуда Челябинск
Сообщений: 20
Offline
Цитата:

Acsidian wrote:
А как можно сделать так чтобы набор букв разного размера (хаотично) заполнял область объекта

вот примерно так


Можно генерировать буквы произвольно размера (шрифта, цвета и т. п.), а затем их поворачивать на произвольный угол. С этим нет проблем - здесь поможет генератор случайных чисел.
Но я пока не могу сходу сообразить, как корректно расположить их (буквы) на произвольной области. При том варианте, о котором я думаю, часть букв будут выходить за границы объекта. А это недопустимо...

Опубликовано: 2008/4/22 11:10



(1) 2 »




Форма быстрого ответа
ЛогинИмя   Пароль   Логин
Сообщение:          

      ПРИМЕР


 [далее...]
Уведомлять о сообщениях в теме.



[Настройки поиска]