Просматривают:
1 Анонимно
CorelDRAW VBA : Создание текста |
||
|
||
---|---|---|
![]() Пользователь 2 уровня
![]() Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
![]() |
Создать текст- это просто!
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
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Титан - модератор
![]() Присоединился:
2006/4/8 19:42 Сообщений: 152
![]() |
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
![]() |
Пишу такой код
ActiveLayer.CreateParagraphText 0, 50, 60, 0, "Привет пока" Но почему то буквы (РУССКИЕ) не отображаются - шрифты пробовал разные ставить... Английские буквы нормально отображаются... У меня Винда 98, Корел 10.
Опубликовано: 2008/2/20 17:30
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Титан
![]() Присоединился:
2007/2/28 9:18 Откуда Новосибирск
Сообщений: 2863
![]() |
izrukvruki, Винда 98
![]() ![]() ![]() ![]()
Опубликовано: 2008/2/20 17:49
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Пользователь 2 уровня
![]() Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
![]() |
Так еще не пробовал! Но попробую. А есть ли попроще код или метод ?
![]() ![]()
Опубликовано: 2008/2/20 21:02
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Титан - модератор
![]() Присоединился:
2006/4/8 19:42 Сообщений: 152
![]() |
GoodvinVV, зависит от количества цветов... то, что использовал я удобно когда цветов оооочень много
Опубликовано: 2008/2/21 5:38
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Пользователь 2 уровня
![]() Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
![]() |
Спасибо за метод, мне оказалось достаточно вот этого...
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
![]() |
А как можно сделать так чтобы набор букв разного размера (хаотично) заполнял область объекта
вот примерно так ![]()
Опубликовано: 2008/4/21 16:12
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Титан - модератор
![]() Присоединился:
2006/4/8 19:42 Сообщений: 152
![]() |
имхо проще самому накидать штук сто разных, потом из этого набора брать куски, масштабировать их, крутить по разному и складывать в общую кучу
Опубликовано: 2008/4/21 23:18
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Пользователь
![]() Присоединился:
2005/12/2 10:13 Откуда Минск, РБ
Сообщений: 23
![]() |
так то понятно но задача не очень простая - нужно сделать таких объектвов много - и чтобы они были все разные
поэтому хотелось бы как то оптимизировать процесс создания
Опубликовано: 2008/4/22 10:00
|
|
|
Re: CorelDRAW VBA : Создание текста |
|
---|---|---|
![]() Новичок
![]() Присоединился:
2008/1/15 10:05 Откуда Челябинск
Сообщений: 20
![]() |
Цитата:
Можно генерировать буквы произвольно размера (шрифта, цвета и т. п.), а затем их поворачивать на произвольный угол. С этим нет проблем - здесь поможет генератор случайных чисел. Но я пока не могу сходу сообразить, как корректно расположить их (буквы) на произвольной области. При том варианте, о котором я думаю, часть букв будут выходить за границы объекта. А это недопустимо...
Опубликовано: 2008/4/22 11:10
|
|