[AI CC2024] Скрипт, реагирующий на открытие файла в Иллюстраторе

keretozor

Участник
Топикстартер
Сообщения
6
Реакции
0
Друже!
Такая проблема (у меня почему-то не работает автоматическое включение линейки в люстре) - решил написать скрипт, который бы запускался из папки иллюстратора Startup Scripts и по событию afterOpen включал бы линейки (show rulers), чтобы открыл документ и линейки бы включились ибо надоело каждый раз жать ctrl + R.

Однако, оказалось, что все сложно.
Ни один из методов eventListeners не работает, пишет undefined или подобное.
Как включить линейки то найду, а вот как сделать реагирование на событие открытия файла - вот это вопрос.
Adobe Illustrator 24.0.1 - windows 10 - 64bit

//var myEventListener = app.eventListeners.add("afterOpen", excuteScriptLabel);
//var myEventListener = app.addEventListener("afterOpen", excuteScriptLabel);
В скрипте эти две строки - игрался ими, и кавычки на одинарные менял и тд. Такое ощущение, что в объекте app нет этого метода, проверил через скрипт, выводящий свойства, действительно нет, как быть.


JavaScript:
//startup script
//https://community.adobe.com/t5/indesign-discussions/run-script-on-document-open-event/m-p/4825547

//#target illustrator
//#targetengine "session"
//#target "session"
#target illustrator
//#targetengine 'onOpen'
//#targetengine "session"


main();

function excuteScriptLabel(myEvent){

          //The parent of the event is the document.

          var myDocument = myEvent.parent;

    if (myDocument.constructor.name == "Document") {

        // if (myDocument.label != "")
//            app.doScript(myDocument.label, ScriptLanguage.javascript);

alert("it's work, buddy - function excuteScriptLabel");
    }

}

function main(){
alert("it's work, buddy - function main1");

//app.notifiers.add("Opn", excuteScriptLabel);

    //var myEventListener = app.eventListeners.add("afterOpen", excuteScriptLabel);
    //var myEventListener = app.addEventListener("afterOpen", excuteScriptLabel);
    //alert (app.activeDocument);
    //var s = "";
    //for(var key in app.activeDocument){
      //s = s + key + ", ";
   //}
   
    //alert (s);
   
}
 

Chiga

20 лет на форуме
Сообщения
847
Реакции
537
Нет у иллюстратора событий для jsx. Вам нужен CEP.
не работает автоматическое включение линейки в люстре
Состояние линеек сохраняются в файл .ai, если при сохранении они были выключены, соответственно и при открытии этого файла их не будет.
 
  • Спасибо
Реакции: keretozor

keretozor

Участник
Топикстартер
Сообщения
6
Реакции
0
Нет у иллюстратора событий для jsx. Вам нужен CEP.

Состояние линеек сохраняются в файл .ai, если при сохранении они были выключены, соответственно и при открытии этого файла их не будет.
Chiga, спасибо - буду изучать этот CEP - Common Extensibility Platform.

А на счет сохранения линеек в файл, не поверите. Открыл дизайн афишы, включил линейки, сохранил, закрыл документ, закрыл иллюстратор. Теперь открытваю люстру и эту афишу - нет линеек.
 

Jeine

Да здравствует разум! Да сгинет маразм!
15 лет на форуме
Сообщения
7 398
Реакции
6 372
А на счет сохранения линеек в файл, не поверите. Открыл дизайн афишы, включил линейки, сохранил, закрыл документ, закрыл иллюстратор. Теперь открытваю люстру и эту афишу - нет линеек.
Надо не просто открыть, включить линейки и закрыть.
А открыть, включить линейки, что-то там сделать, например, нарисовать прямоугольник, сохранить. Потому удалить прямоугольник и снова сохранить.
Но за
атдельнае спасиба! 'cooll)'
 
Последнее редактирование:
  • Спасибо
Реакции: Drawer

keretozor

Участник
Топикстартер
Сообщения
6
Реакции
0
а вот в этом CEP есть возможность включать линейки?
начал тут разбираться, но пока до этого не дошёл
 

Chiga

20 лет на форуме
Сообщения
847
Реакции
537
а вот в этом CEP есть возможность включать линейки?
начал тут разбираться, но пока до этого не дошёл
Есть возможность запустить jsx.
И лучше разобраться с линейками без костылей.
 
Последнее редактирование:

Drawer

Участник
Сообщения
1 951
Реакции
875
Последнее редактирование:

Chiga

20 лет на форуме
Сообщения
847
Реакции
537
Настройки - Показывать линейки по всех документах.
Эта настройка позволяет включать/выключать линейки во всех открытых документах, а не в каждом индивидуально. В данном случае она только мешает.
 
  • Спасибо
Реакции: keretozor

Drawer

Участник
Сообщения
1 951
Реакции
875
При создании нового документа так понимаю линеек нет?:)
 

keretozor

Участник
Топикстартер
Сообщения
6
Реакции
0
При создании нового документа так понимаю линеек нет?:)
нет, при создании нового линеек нет.
Это наверно намекаете на то, что нужно редактировать Шаблонный файл ?
 

keretozor

Участник
Топикстартер
Сообщения
6
Реакции
0
Эта настройка позволяет включать/выключать линейки во всех открытых документах, а не в каждом индивидуально. В данном случае она только мешает.
урааа! спасибо! помогло!

Нашёл способ.

1. Включаем линейки;
2. Сохраняем своё рабочее пространство (которое уже с линейками);
3. В настройках отключаем Показывать линейки во всех документах (в ней была проблема);
4. Закрываем люстру для чистоты эксперимента.
5. Открывает люстру и любой файл, линейки есть!
 
Последнее редактирование: