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

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

У Adobe как я понимаю плагины выполняются тоже внутри приложения. Поэтому можно делать фильтры картинок к примеру.
В CorelDraw такое не получится. Даже обработка текста посимвольно занимает уйму времени.
Я довольно давно работаю с VBA под Corel, и даже получил некоторую известность в определённых кругах пользователей, и по опыту своему не скажу что VBA быстрый. Это же интерпритатор, и работает он в итоге с той же COM моделью, которую предоставляет Corel.
Я пробовал начать работать с .Net, но к сожалению поскольку немного далёк от C#, так и не смог запустить свой тестовый докер на машинах отличных от той, на которой я компилировал. Предполагаю что проблема была в том, что я не сгенерировал GUID, и потому он не прописывался в COM модели в реестре Windows. Кстати, этот момент я так же в статье не заметил, что меня удивило! Как выяснилось, есть некоторые тонкие моменты в программировании на С# под Corel, которые так нигде толком и не расписаны, но которые видимо приводят к такого рода проблемам, как у меня. Но вообще автору — спасибо! Эта тему в русскоязычном интернет можно сказать не представлена никак. ДА и вообще, по API CorelDraw очень мало информации на русском. Хотя, на деле там ничего экстраординарного, но делать можно очень много интересных вещей.
Я пробовал начать работать с .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. Буду ждать Ваших дальнейших постов на эту тему!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Создание Addon (Docker) для Corel Draw