Corob - макрос во имя дружбы Corel и Adobe

  • Автор темы Автор темы dizzy
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

dizzy

Участник
Топикстартер
Сообщения
425
Реакции
1
Ага... типа решил я корел с адобом подружить... Уже где-то об этом даже упоминал, и даже последователи объявились. На данный момент тестирование макроса закончено. Терь можно и в сеть его выложить, что и делаю с удовольствием.

1. Установка

Вырубите корел если он открыт. Распакуйте нижепредложенный архив по пути "х:\Program Files\Corel\CorelDRAW Graphics Suite 13\Draw\GMS". Запускаем корел.
Tools > Visual Basic > Play...
Macros in: Corob(Corob.gms)
Macro Name: Main.Options
Run
Ставим галочку: "Вывести кнопки макросов в верхнюю панель инструментов"
Все - терь можно юзать

2. Что делают?

Открытие в шопе выделенных битмапов.
Экспорт выделенных объектов послойно в PSD
Экспорт выделенных объектов из разных слоев в разные форматы (eps, tif, psd) складывая их бутербродом InDesign CS2.

Более подробно расскажу чуть позже...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

RULEZZZZ
вроде все работает? но хотелось бы что бы битмап сам обновлялся бы
thanks a lot
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

Итак продолжаем разговор...

Лично я люблю CorelDRAW. В нем очень удобно работать с вектором, а так же ваять макеты. При открытии ила у мя просто падает настроение, да и в фотошопе макеты делать мало приятно. Однак с растром извольте. Даже при всем уважении к Lena_san ни за что не променяю PhotoShop на CPP. С публикациями мне удобнее работать в индюке. И надо сказать не я один так думаю... Если вы тоже, то пожалуй Corob поднимет вам настроение!

Уже год с лишним в мои обязаности входит допечатка одного журнала. Собственно создают его два мегапупердизайнера. Одна из них с двумя дипломами, вторая через месяц тоже получит один... Истинные креативщицы! А я собственно их высокохудожественные решения разгребаю, не стесняясь восторженных реплик. На потяжении всего сотрудничества я отчаянно пытался внести в их разум хотя бы пару простых правил. Ну там эффектов поменьше, вектор под растр не класть и т.д. Однак походу в учебных заведениях им заложили слишком много информации, и на эти правила в голове места явно не хватает. На помощь пришел VB.

Первую задачу которую я себе поставил была следущая. Нужно было открыть внедренные в корел битмапы в шопе и потом после редактирования вставить обратно. Такое часто попадается в работе, и о чудо - в VB для этого предусмотрена команда Bitmap.SaveAs! Однако как оказалось она работает тока для битмапов лишенных прозрачностей. Плюс ко всему оставалось неясным как ее вставить обратно после редактирования... Но трудности мал по малу решились!

В общем суть работы макроса такая. Выделяете любые объекты и запускаете макрос. Далее выбираете папку, куда будете битмапы выгружать > OK. Макрос ищет среди выделения любые битмапы, затем приводит их к первозданному виду (тому в котором он когда-то был внедрен в корел). Потом экспортирует их в указанную папку под именем [имя кореловского документа]_[ID битмапа].tif, а затем обратно импортирует его в виде линка, к которому применяются все трансформации, местоположение, обтравка и эффекты исходного битмапа. И под конец исходные битмапы убиваются, а созданные тифы открываются в PhotoShop CS2. Далее в шопе можете с этим битмапом делать все что угодно, кроме пожалуй кадрирования. Ибо в кореле полученный битмап растянется по исходному. Собственно для того чтобы вернуть редактированный битмап, достаточно оборвать связь (Bitmaps > Beak LInk)Однак если вас после обрыва связи сам тиф больше не интересует, то можете воспользоваться кнопкой "Вернуть редактированное изображение". Тогда у выделенных прилинкованных битмапов оборвется связь, а сам тиф убьется.

В связи с тем, что в имени тифов фигурируют имя кореловского исходника, работа макроса становится невозможной для новых несохраненных документов (у них нет имени). Макрос писался под тринадцатую версию корела, и надо сказать что лучше его юзать в SP2. Дело в том, что первый ХЗ плохо работал с импортом прозрачных тифов. И вот представьте что вам надо вырезать битмап в шопе. Через макрос вы загоняете его в шоп, там вырезаете и он уже имеет прозрачности. Причем он как бы уже одной ногой вставлен в корел. В общем когда вы обрываете связь - корел получает взрыв мозгов и просто тупо вырубается. Так что не поленитесь его обновить!
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

Однако бывают и другие задачи. Скажем мне надо открыть в шопе несколько объектов, причем все сложенные послойно в одном документе. Часто такие задачи нужны когда в макете вектор отделяешь от растра. В растровую часть помимо битмапов часто попадают полупрозрачные вектора, отделенные тени, фон и т.п. Если это все добро вывести епсом, то могут получится еще те чудеса. Если растрировать, то потом их уже не поправить. Вот если б так хитро растрировать, чтобы слои сохранить... VB должен помочь!

Для начала макрос был написан по принципу Copy/Paste. Выделенные объекты по одиночке экспортировались в тиф. Затем тиф открывался в шопе, копировался и вставлялся в другой тиф, имевший параметры выделенных объектов, где благополучно занимал свое место. Однако точного попадания порой не получалось, ибо скажем ширина вертикальной линии в кореле равна нулю, даже если на конце стрелка. А в шопе уже нет. Тогда я стал растрировать объекты перед экспортом. Но и этого оказалось мало! Допустим если растрировать текстовый фрэйм, то в кореле он будет размерами фрэйма, а в шопе размерами содержимого фрэйма. А пустой текстовый фрэйм ваще ни как не перетащится и макрос даст сбой. Короче как ни прискорбно пришлось все разработки убить и искать других решений...

И им стал формат PSD. К собственному стыду, я случайно наткнулся на возможность послойного экспорта в этот формат, поставив всего на всего галочку Maintains Layers. Выходит все оказалось значительно проще. Надо выделенные объекты в кореле разбить по слоям на каждый объект, а потом эту кипу уже экспортировать.

Итак выделяете объекты в кореле, которые хотите экспортировать в PSD, и запускаете макрос. Далее выбираете папку для экспорта и прочие настройки (разрешение, цветовую модель, кадрирование и т.д.) и OK. Макрос загоняет в массив выделенные объекты, а потом предлагает выбрать рамку для выделения. Суть в том что иногда че-то за рамку выпирает (как правило тени), поэтому разумно указать точную рамку, по которой psd будет в последствии кадрироваться (можете ее не только выделить но и нарисовать). Жмите Далее. Макрос считывает параметры рамки и ее смещение относительно выделенного диапазона. Затем разбивает все объекты на слои, выделяет их и экспортирует в psd. Далее все созданные слои убиваются. Затем полученный psd открывается в шопе, где делается Canvas Size с параметрами рамки, а затем каждый слой смещается на полученное смещение рамки. Если в настройках вы поставите галочку Crop, то изображение по рамке откадрируется. Потом psd сохраняется и закрывается, и вам предлагают заменить выделенные объекты на полученный прилинкованный PSD-файл. Если да, то все выделенные объекты убиваются, а на их место ставится линк. На этом работа макроса заканчивается.

Имейте ввиду, что сгруппированные объекты в шоп попадают одним слоем. Потом не рекомендую сохранять PSD в Labе, уж больно криво он получается. И еще большая проблема с оверпринтами по черному. Сложность в том что не все объекты вообще могут иметь заливки или обводки. Потом если заливка черная, а обводка другого цвета или наоборот, в шопе необходимо будет их разделить дабы черному объекту присобачить наложение Multiply. В общем пока эту задачу перекладываю на плечи пользователя. К тому же оверпринты в растровых частях, если не считать теней, попадаются не часто...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

Что-то не работает у меня этот макрос. Корел ХЗ, шоп CS.
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

VATS сказал(а):
Что-то не работает у меня этот макрос. Корел ХЗ, шоп CS.
Нужен шоп СS2... Я под него писал, так что может в CS-е и не работать...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

CS2 у меня.
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

VATS сказал(а):
Что? Уже CS2?.. Ну тогда прошу подробнее.... Правильно ли прошла установка? Все ли блоки не работают? На каком шаге спотыкается? Че выдает?
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

Выдаёт вот такую штукенцию

Compile error
User-defined type not defined
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

Так-с, терь речь пойдет по последнему блоку связанному с InDesign CS2... Так как я работаю на издания, то все равно в итоге все макеты ставятся в публикацию, коя у нас верстается в индюке. Однажды мне поступило предложение из типографии, чтобы я в епсах делал только вектор, а растр соответственно в тифах. В случае если макет имеет и то и другое - выводить вектор и растр в разных форматах, а затем в индюке все стыковать... В принципе такой подход не нов и вполне логичен. Есть даже преимущество при редактировании, однако процесс разделения и стыковки мало приятен... Если конечно на помощь не придет VB!

Для начала пришлось определится с процессом разделения. Решил что лучше его совершить еще в кореле, разбив макет по слоям. Далее выделяем макет и запускаем макрос. В левом верхнем углу стрелочками выбираете слой. Далее выбираете в какой формат будете его экспортировать. Таковых три - EPS (для вектора), TIF (для литого растра), и PSD (для растра слоеного, принцип построения взят из предыдущего блока). Если слой экспортировать не нужно выбираете NONE (он стоит по умолчанию). Далее выбираете куда будет идти экспорт, ну и прочие настройки само собой... Если выберете галочку Save copy, то выделенный макет пересохранится в копию. Данный момент имеет пару важных преимуществ. Первое - это если по каким-то причинам макрос даст сбой - ни каким образом на оригинале ничего страшного не отобразится. Второй момент - в копии есть возможность замены растра на прилинкованный битмап и кривления текста...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

У меня запрашивает пароль
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

VATS сказал(а):
Выдаёт вот такую штукенцию

Compile error
User-defined type not defined
Правильно ли прошла установка? Все ли блоки не работают? На каком шаге спотыкается?:)
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

avniv сказал(а):
У меня запрашивает пароль
Дак я ведь макрос выложил для юзанья... На фиг в нутро ему лезть?:)
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

...Однако минус в копии тоже имеется - лишнее время на пересохранение и открытие копии. Далее в случае сохранения копии надо будет указать куда ее сохранять. Ну и галочка Place in Indesign отвечает за то, будет ли экспортированное ставится и собираться в индюке (стоит по умолчанию). После чего выбираете следующий слой и проходите все те же шаги и так далее. В конце жмите ОК.

Первым делом макрос если есть необходимость сохраняет выделенное в копию, и открывает ее. Затем помечает каждый объект в выделении и пользователю предлагается выбрать рамку (процесс аналогичен предыдущему блоку). Далее считываются геометрические параметры рамки а также ее местоположение относительно выделения. Затем если стоит галочка Place in Indesign проверяется на наличие открытых документов в индюке. Если таковые имеются макрос ищет в нем выделенные объекты. Если находит - то вставка макета будет поверх этого выделения, если нет - то создается новый документ форматом считанных геометрических параметров рамки. Далее перебирается каждый слой, считывается его геометрия и смещение относительно рамки, после чего экспортируется в выбранный формат, от куда, если надо, вставляется в индюк, где подгоняется размер и местоположение. Также в метку вставленного епса (тифа, псд) ставится путь кореловского исходника. В последствии с помощью простенького кода можно будет из индюка открывать исходник, что значительно облегчает процесс правки макетов (код нужно сохранить в блокноте с расширением .js в папку х:\Program Files\Adobe\Adobe InDesign CS2\Presets\Scripts). Если сохраняется копия то путь в метке указывает на нее, в противном случае на исходный документ. Далее в копии если необходимо кривится текст (у епсов) либо слой заменяется на прилинкованный битмап (у тифов и псд). В случае экспорта в PSD помимо прочего происходит и уже нам знакомый процесс кадрирования. После экспорта всех слоев, макет группируется, снимаются метки в кореле и удаляются временные объекты. После чего копия сохраняется и ее макрос предлагает закрыть. На этом работа макроса завершается.

Изначально я планировал этот макрос для классических двуслойных макетов (снизу растр и сверху вектор). Однако на практике попадались макеты с пятью и более слоями. И в этом смысле польза макроса бесспорна. Возьмем такой пример. Скажем имеется макет, в котором фоном лежит какой-нить узорчатый вектор с переливами, местами чуть ли не волосяными линиями. Выше несколько вырезаных растровых объектов повернутых на разные углы и наслоенные друг на друга. В верхнем углу логотип тоже узорчатый, состоящий из нескольких радужных кривых наслоенных друг на друга с белой тенью от каждой. Ниже текст с черной тенью, ну и в подвале адресный блок на полупрозрачной плашке. В общем глядя на такое любой предпечатник скажет: "Какая красота!!!" В моей практике такой красоты хватает... Спасибо вам дефчонки!

Итак начинаем разгребать... Ясно-понятно что фоновый вектор уже не спасти. Можно конечно его слить со всем последующим добром, однак тогда потеряем волосяные линии. Итак самым разумным на мой взгляд было выделение фона на нижний слой, для последующего экспорта в растр с большим расширением (600 dpi к примеру). Сохранять слои в нем смысла нету поэтому будем экспортировать в тифе. Далее растр наслоенный и повернутый на углы - есть риск что всплывут контурные линии, которые потом будет тяжело выводить штампом. Поэтому это добро выводим на слой для экспорта в PSD, в RGB (так как он так внедрен) с разрешением в 300 dpi. Далее разбираемся с лого. Конечно тенька по радужному вектору - еще та тема! Можно конечно их всех поотделять и перемесить вниз, однако разумнее ваще убить и вывести без теней на новый слой, для последующего экспорта в епс. В последствии уже в индюке эту тень и замутим уже от полученного епса. Тоже самое делаем относительно текста с черной тенью (была б она белая - вывели б вместе с лого, а так - лучше отдельно на новый слой). У адресного блока теней нет, поэтому и его выводим отдельно на слой. И что же делать с полупрозрачной плашкой? Можно было ее отнести в слой с фоном. Можно вывести отдельным епсом, без прозрачностей, а потом ее наложить в индюке. А можно и нарисовать в индюке - что я и сделал. Все - запускаем макрос и у нас шестислойный макет!

Как ни странно но работа с корелом на этом заканчивается. Далее редактирование происходит уже в индюке либо в шопе (если конечно в три ночи не проснется корректор с правками по тексту). Разгруппировываем макет, затем каждому епсу применяем Fit frame to content. Накладываем тени (Alt+Ctrl+M) где необходимо, выделяем PSD и через Edit original (либо через Alt+даблклик) загоняем в шоп где приспокойненько правим, после чего сгруппировываем обратно.

Данный подход мноослойности полезен не только для таких высокохудожественных случаев. К примеру такой макет: фоном идет растровое изображение, в левом верхнем углу простенький логотип (без теней), и снизу по центру адресный блок. В принципе это не зазорно вывести одним епсом. Однако лучше растр вывести в тифе, а вектор сверху в епсе. А еще лучше вектор в двух епсах, ибо на полосе всегда лучше видно не ушел ли логотип под рез, или с учетом реза строго ли поцентру находится адресный блок. В противном случае эти епсы всегда можно подвигать куда угодно, что значительно сокращает время. Да и время на вывод PS у многослойных макетов значительно быстрее проходит чем у одного епса, и вес публикации тоже в итоге меньше.

Еще раз оговорюсь что юзать макрос лучше в SP2, ибо в более ранних версиях епсы тянут шрифты, на что индюк при вставке епса на полосу постоянно ругается. Будьте осторожнее с черными тенями. Скажем нельзя пустить в шопе тень от растовых объектов на пустоту. В индюке она ляжет уже с наложением Normal (либо придется всему слою задавать наложение Multiply). В этом случае пускайте тень либо в индюке либо делайте отдельным слоем...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

У меня тоже не работает. Выдает сообщение: "Compile error in hidden module: Main"
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

feanors сказал(а):
У меня тоже не работает. Выдает сообщение: "Compile error in hidden module: Main"
Это при запуске какого блока?.. Весь ли архив распоковали в папку GMS? Корел ХЗ SP2? Adobe CS2? Господа, давайте как можно подробнее, ей богу по таким одиночным предложением трудно понять че к чему!
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

...После Macro Name: Main.Options. Run
У меня Корел X3 без Сервис Паков. После установки SP1 Корелы на всех машинах в студии просто перестали запускаться, потому работаем без них. Пакет Adobe CS2. В папке GMS присутствует файл Corob.gms и соответственно папка Corob с иконками.
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

feanors сказал(а):
...После Macro Name: Main.Options. Run
У меня Корел X3 без Сервис Паков. После установки SP1 Корелы на всех машинах в студии просто перестали запускаться, потому работаем без них. Пакет Adobe CS2. В папке GMS присутствует файл Corob.gms и соответственно папка Corob с иконками.
Ок... Давайте попытаемся разобраться. Замените Corod.gms на ниже предложенный, перезапустите корел и вновь попробуйте запустить Main.Options. Посмотрим на чем споткнется...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

dizzy сказал(а):
Ок... Давайте попытаемся разобраться. Замените Corod.gms на ниже предложенный, перезапустите корел и вновь попробуйте запустить Main.Options. Посмотрим на чем споткнется...
К сожалению... то же самое что и в первом моем сообщении. Без изменений. Жаль, очень нужный в работе макрос...
 
Ответ: Corob - макрос во имя дружбы Corel и Adobe

feanors сказал(а):
К сожалению... то же самое что и в первом моем сообщении. Без изменений. Жаль, очень нужный в работе макрос...
Бррр... Фигня какая-то... А вы ничего не путаете? Ибо в том макросе что я выложил 0 просмотров, а следовательно никто его не скачивал (или форум тормозит:))
 
Статус
Закрыто для дальнейших ответов.