Листинг 11.14. Открытие файла с путями

linksFile = File('myFolder/$$links.txt') do{

linksFile.open(1r') myFilePath = linksFile.readln() otherLines = linksFile.read() linksFile.close() app.open(myFilePath)

В случае, если в предыдущей сессии в файле была обнаружена и исправлена ошибка, но по какой-то причине документ не был закрыт (а значит, гарантированно сохранен), возможна коллизия. Чтобы быть уверенным в том, что изменения были сохранены, мы принудительно закрываем файл. Если он сохранен не был, Illustrator предложит сделать это, что нам и нужно, if(app.documents.length>0) app.documents[0].close()

Отключаем отображение диалоговых окон (часто Illustrator выдает предупреждения, которые в нашем случае не принципиальны) и открываем первый файл из списка в файле SSlinks.txt, после чего сразу же выдачу сообщений разрешаем - а как же иначе мы узнаем о ошибках, если их обнаружит скрипт (листинг 11.15)?

Листинг 11.15. Открытие файла из списка в файле $$links.txt

app.userlnteractionLevel^ UserlnteractionLevel.DONTDISPIAYALERTS; app.open(File(myFilePath))

app.userInteractionLevel= UserlnteractionLevel.DISPLAYALERTS; var aD = app.documents[0]; Далее идет собственно проверка текущего документа (листинг 11.16). После успешного ее прохождения иллюстрацией (err==faise) из файла со связями удаляем самую первую строку. Это происходит после успешной проверки каждой иллюстрации. Удаление реализовано как перезапись текущего содержимого файла без первой строки (otherLines). В результате, если ошибок не возникло, в конце проверки содержимое файла станет пустым (File (linksF) . length==0).

Листинг 11И 6. Проверка текущего документа я. j

AI_preflight(); if(!err)( f.open('w') f.write(otherLines) f .close () aD. close () ;

}

} while (File(linksF).length!=0 && !err)

В отсутствие ошибок последний шаг на стороне Illustrator- передача управления Bridge для возврата в InDesign (листинг 11.17).

.......................................-’-7>....................................................................;..............•;...........р

; Листинг11.17-Передача управления Bridge для возврата в InDesign

if (! err) (

f = File ('myFolder/Preflight_Check__ID_final. jsx' ) f.open(1r1)

scriptContent = f.read(); f .close () ;

bt = new BridgeTalk; bt.target = 1 indesign1; bt.body = scriptContent; bt.send();

}

Общая картина достаточно проста, рассмотрим собственно проверку, выполняемую в Illustrator (листинг 11.18).

! Листинг 11.18. Проверка в Illustrator

function AIjpreflight()(

// Если остался редактируемый текст if (aD.textFrames.length>0)(

for (var i=0; i<aD.textFrames.length; i++){ aD.textFrames[i].selected=true; errObj.et = 1;

}

}

for(i=0; i<aD.pathItems.length; i++){ var pgl = aD.pathltems[i];

// Проверяем наличие надпечати у заливки и окантовки if ((pgl.filled && pgl.fillOverprint) II 4?

(pgl.stroked && pgl.strokeOverprint)) {

errObj.op = 1; pgl.selected = true;

}

// Проверяем режимы наложения - возможно, понадобится // сведение (flattening) if(pgl.blendingMode!=BlendModes.NORMAL){ errObj.bm=l; pgl.selected = true;


⇐ вернуться назад | | далее ⇒