Pull to refresh

Comments 8

Когда-то очень давно занимался автоматизацией выпуска одной крупной рекламной газеты. Все начиналось ещё с Aldus Pagemaker'a (автоматизация на DDE), CorelDraw «лохматых» версий, закончилось InDesign (версий уже не помню). Там уже было все прилично, через COM объекты. Использовал Delphi, начиная со второй версии и по шестую. С тех пор прошло много времени, давно уже этим не занимаюсь, но приятно увидеть, что все это движется, развивается и востребованно.

От названия статьи ожидал, что корел будет что-то рендерить внутри контейнеров или что-то в этом роде)

UFO just landed and posted this here
.NET у CorelDraw тоже достаточно медленный. Как я понимаю код выполняется вне приложения и общается с ним посредством COM объектов. В отличии от VBA который выполняется внутри приложения.

У Adobe как я понимаю плагины выполняются тоже внутри приложения. Поэтому можно делать фильтры картинок к примеру.
В CorelDraw такое не получится. Даже обработка текста посимвольно занимает уйму времени.

UFO just landed and posted this here
Я довольно давно работаю с VBA под Corel, и даже получил некоторую известность в определённых кругах пользователей, и по опыту своему не скажу что VBA быстрый. Это же интерпритатор, и работает он в итоге с той же COM моделью, которую предоставляет Corel.
Я пробовал начать работать с .Net, но к сожалению поскольку немного далёк от C#, так и не смог запустить свой тестовый докер на машинах отличных от той, на которой я компилировал. Предполагаю что проблема была в том, что я не сгенерировал GUID, и потому он не прописывался в COM модели в реестре Windows. Кстати, этот момент я так же в статье не заметил, что меня удивило! Как выяснилось, есть некоторые тонкие моменты в программировании на С# под Corel, которые так нигде толком и не расписаны, но которые видимо приводят к такого рода проблемам, как у меня. Но вообще автору — спасибо! Эта тему в русскоязычном интернет можно сказать не представлена никак. ДА и вообще, по API CorelDraw очень мало информации на русском. Хотя, на деле там ничего экстраординарного, но делать можно очень много интересных вещей.
не скажу что VBA быстрый

Я тестировал.
6000 простых векторных объектов на странице. Перебрать все шейпы и дернуть по одному свойству, например количество узлов – Shape.Curve.Nodes.Count
VBA ~ 1 sec
C# ~ 6 sec

Кстати, этот момент я так же в статье не заметил, что меня удивило!

Дополнение для Visual Studio от “bonus360” генерируют GUID. В самом начале при выборе шаблона генерируются два файла – AppUI.xslt и UserUI.xslt в них сгенерированные уникальные GUID. Про эти файлы хочу написать в следующей статье.
А на других машинах не запускается если версия Corel не совпадает. Т.е. даже 20.0 от 20.2 отличается.
Я тестировал.

Если доберусь наконец до C#, то проведу собственное исследование
Дополнение для Visual Studio от “bonus360” генерируют GUID

Наверное в последних версиях. Я пробовал от 2019, и там генерации не было. Но кстати говоря, у меня запустился на 2019 версии Corel аддон который генерировался под х7. Правда он был простейшим, и просто позволял вызывать мои макросы GMS, но тем не менее, работал на том компьютере, где я компилировал.
Спасибо, буду пробовать новое расширение. Давно планировал переходить на что то посовременнее VBA. Буду ждать Ваших дальнейших постов на эту тему!
Sign up to leave a comment.

Articles