Взаимодействие InDesign и Photoshop

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

vadim_k

Участник
Топикстартер
Сообщения
28
Реакции
0
Изучая способы организации взаимодействия InDesign и Photoshop (основа - скрипт files2Photoshop Олега Бутрина от 05.02.2006, выложенный на rudtp.ru), попробовал посылать из ID в Photoshop не весь массив найденных в верстке иллюстраций, а делать это пошагово, отдельно для каждой иллюстрации, предварительно анализируя ее на наличие потенциальных проблем (сейчас меня интересует масштаб, отличный от 100%, в дальнейшем - все, что необходимо исправлять в Photoshop'е).
Получилось следующее:

for (var myCounter = 0; myCounter < myFiles.length; myCounter++) {
script_string = Check_problem(myFiles[myCounter]);
if (script_string!=""){
Launch_Photoshop(script_string, myFiles[myCounter]);
}
}
//alert("Пустая строка");
app.activeDocument.links.everyItem().update();
myDialog.destroy();
exit();

При этом после коррекции масштаба в Photoshop'е в теле функции Launch_Photoshop выполняется
cur_object.horizontalScale = 100;
cur_object.verticalScale = 100;
После окончания цикла выполняется
update для всех линков, где и возникает проблема:
никакого обновления линков не происходит.
Однако, если снять комментарий со строки alert("Пустая строка"),
то все становится на место.

Пожалуйста, помогите разобраться.
Заранее спасибо, Вадим Калинин
 
Ответ: Взаимодействие InDesign и Photoshop

проверьте символ перевода строки после закомментированной строки - там CRLF или нет?
 
Ответ: Взаимодействие InDesign и Photoshop

Skvoznyak сказал(а):
проверьте символ перевода строки после закомментированной строки - там CRLF или нет?
Проверил - последний символ - точка с запятой.
 
Ответ: Взаимодействие InDesign и Photoshop

да не, я про EOL... ну в общем удалите целиком эту строчку с алертом и комментарием, тоже ведь будет работать.
 
Ответ: Взаимодействие InDesign и Photoshop

Skvoznyak сказал(а):
да не, я про EOL... ну в общем удалите целиком эту строчку с алертом и комментарием, тоже ведь будет работать.
Спасибо за отклик.
Удалил всю строку.
Проблема по-прежнему существует.
Может, нужно выполнить какую-то процедуру внутри скрипта при возврате от Photoshopa к ID?
Скорее, где-то элементарная ошибка из-за невнимательности и отсутствия опыта.
Буду искать дальше. Большое спасибо за желание помочь.
 
Ответ: Взаимодействие InDesign и Photoshop

Операционная система с вытесняющей многозадачностью штука хитрая. Иными словами, если проверять links на modified сразу по получении управления в ID, то вполне возможно, что файловая система еще не успеет вывести измененные PS файлы и, как следствие, ID изменений попросту не увидит. Когда же мы перед тем как update links вставляем alert, то даем файловой системе прилично времени на вывод измененных данных. Возможно дело в этом.

AirGraph.
 
Ответ: Взаимодействие InDesign и Photoshop

AirGraph сказал(а):
Операционная система с вытесняющей многозадачностью штука хитрая. Иными словами, если проверять links на modified сразу по получении управления в ID, то вполне возможно, что файловая система еще не успеет вывести измененные PS файлы и, как следствие, ID изменений попросту не увидит. Когда же мы перед тем как update links вставляем alert, то даем файловой системе прилично времени на вывод измененных данных. Возможно дело в этом.

AirGraph.
Спасибо за подсказку, скорее всего, именно так дело и обстоит. В таком случае, порекомендуйте, пожалуйста, подходящую замену функции alert(), чтобы для пользователя это обстоятельство было незаметным.
 
Ответ: Взаимодействие InDesign и Photoshop

sleep?
 
Ответ: Взаимодействие InDesign и Photoshop

На мой взгляд, грамотнее всего (правда и хлопотнее всего) это дело можно организовать через EventHandler. Проще - BridgeTalk и соответствующие сообщения. Если и в этом разбираться нет желания, то логика проста: в PS попадает файл, который должен масштабироваться, а значит, сохраняться перед возвращением управления в ID. Так в ID и написать, мол while(!modified) {;} и вся недолга.

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