Как из Индизайна вызывать скрипт Иллюстратора?

Статус
Закрыто для дальнейших ответов.

hulk1776

Топикстартер
15 лет на форуме
Сообщения
735
Реакции
21
Есть три слоя и мне надо из каждого слоя выгнать ЕПС и потом открыть его в Илле и пересохранить его в версии 10.

Скриптик для пересохранения в Илле есть. Но приходится каждый полученный из Инди ЕПС открывать иллюстраторе и пускать скрипт. Это не отнимает почти никакого времени, но дело в принципе: надо научиться делать это скриптом - открыть полученный файл в Илле и пересохранить.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
JavaScript Tools Guide CS6.pdf

Cross-DOM API reference
All exported functions, including those of the cross-DOM API, are invoked through the exporting application, identified by its namespace specifier (see “Namespace specifiers” on page 193). For example:

Код:
//execute an Illustrator script in version 12
illustrator12.executeScript(myAIScript);
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
735
Реакции
21
Олег, спасибо. Но задача заставить АИ открыть 3 нужных файла и выполнить над ними манипуляции.
А пока открываю файлы руками и пускаю в каждом такой скрипт:
Код:
#target illustrator
var docRef = activeDocument;
mName = docRef.fullName
var saveOptions = new EPSSaveOptions();
saveOptions.compatibility = Compatibility.ILLUSTRATOR10;
    docRef.saveAs(mName, saveOptions);              
    docRef.close();
Бриджем я вызывал Иллюстратор + передавал ему текст скрипта с названием файла в кач-ве параметра. Но обрабатывался только первый файл. Остальные даже не открывались с Илле. Хотя упрощенная [для тестов] версия скрипта [поочередное отображение трех слоев с выгонкой ЕПСа-открытий его в Илле-пересохранения в 10-й версии] работала правильно. Так пока не могу поймать баг, хотел попробовать просто вызывать готовый скрипт. Но опять же не знаю, как его вызвать и как передать ему путь для открытия очередного файла.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Бриджем я вызывал Иллюстратор + передавал ему текст скрипта с названием файла в кач-ве параметра. Но обрабатывался только первый файл.
Тут непонятно. Вызывал скрипт с именем одного файла или как?
 

andrew.folio

Участник
Сообщения
28
Реакции
40
В таких случаях я использую Applescript (так как работаю на Mac-е). На винде с таким же успехом можно использовать VBS. Applescript или VBS проигрывается в самой OS, а не в конкретном приложении как это происходит с javascript. Поэтому доступ есть почти ко всем установленным приложениям из одного скрипта.
Схема простая. Как видно из приведенного фрагмента applescript, который вынимает некоторую информацию из пдф (theFile), который постранично открывается в Иллюстраторе, и в виде XML-строк (textXML) в качестве параметра эту информацию передаёт в Индизайн. Переменные jsIlly и jsIndy это файлы со скриптами на js для иллюстратора и индизайна соответственно.
Код:
...
repeat with p from 1 to numPages
            -- Work with Illustrator
            tell application "Adobe Illustrator"
                set user interaction level to never interact
                set page of PDF file options of settings to p
                open theFile as alias without dialogs
                tell document (count of document) -- Last opened document
                    set textXML to do javascript jsIlly
                    close without saving
                end tell
            end tell
          
            -- Work with Indisign
            tell application "Adobe InDesign CS6"
                tell doc
                    do script jsIndy language javascript undo mode entire script undo name "Read from PDF" with arguments {p, textXML}
                end tell
            end tell
end repeat
...
 
Статус
Закрыто для дальнейших ответов.