Шаг второй

' Листинг 11.3. Предпечатная проверка публикации и, при отсутствии ошибок j и наличии ссылок на векторные изображения, переход в Illustrator

if(aD.selection.length>0)

alert("Make sure there aren't selected objects in the document!"); else {

err = false; preflightIDD() ;

if (err) {

alert("Due to potential problems in IDD file all other operations terminated!");

alert("There are some issues:\r" + errArray.join('\r'));

}else{

if(File(linksEPSFile).length>0)(

- switchTo('AI', 'illustrator')

}else if(File(linksPSDFile).length>0){ switchTo('PSD', 'photoshop');

}else

returnToIDD()}

С

Собственно проверка публикации выполняется так. Сначала займемся текстом (листинг 11.4).

; Листинг 11.4. Начинаем просматривать текст

tF = aD.textFrames; if (tF.characters.length>0)( for (i=0; i<tF.length; i++){ currTF = tF[i]; Просматриваем по очереди все символы и определяем цвет их заполнения. Если кегль небольшой, а содержимое красок более 250, высока вероятность несовмещения при печати. Значение цвета объекта (coiorVaiue) хранится в виде массива с 4 значениями - для cyan, magnta, yellow и black соответственно (листинг 11.5).

Листинг 11.5. Проверка текста

for (var j=0; j<currTF.characters.length; j++){ z = currTF.characters[j].fillColor.colorValue; if (currTF.characters[j].pointSize<9 && ^

(z [0] +z[1]+z[2]+z[3] > 250))

LatchObj ("Rich color of small-size text", currTF); Функция LatchObj о выполняет вспомогательную роль и отвечает за информирование о подозрительных свойствах, которые выдают в конце работы скрипта. Первый ее параметр - содержимое сообщения, например, "С над-печатью!". Оно же дублируется в ярлык объекта (в InDesign- Window | Automation | Script Label), помогая определить, какая же именно проблема у объекта ("С надпечатью"). Ярлык представляет собой свойство объекта (label), куда можно записывать все, что угодно, в нашем случае мы используем его для хранения типа ошибки объекта.

Второй параметр функции - объект, который нужно выделить. Делается это с той единственной целью, что выделение проблематичных объектов очень помогает при локализации ошибки, особенно когда в публикации много объектов. Если параметр равен false, выделение не выполняется- например, если речь идет об отдельных символах текста или образцах цвета палитры Swatches. Наконец, сообщение об ошибке сохраняется в массиве ErrArray, чтобы по окончании проверки выдать консолидированный отчет (листинг 11.6).

Листинг 11.6. Функция обработки проблемного объекта

function LatchObj(label_msg, Obj){ if(Obj!=false) (

Obj.label = label_msg;

Obj.select(SelectionOptions.addTo);

}

ErrArray.push(label_msg)

}

Кстати говоря, можно ярлыки использовать и более широко. Как вы помните, вначале скрипта мы записывали установки пользователя в файл, чтобы финальный скрипт их смог прочитать, но можно было использовать для этого тот же механизм labels. Дело в том, что InDesign поддерживает два типа ярлыков: первый, содержимое которого отображается в палитре Script Label, и второй, содержимое которого на экран не выводится: при этом ярлык рассматривается как хранилище данных, куда можно записывать все, что угодно, в виде пары значений key:value, где key-- любой параметр (ключ), а value- его значение. Применительно к нашему случаю параметром будут переменные, а значениями - собственно введенные пользователем значения. Интересно то, что такой ярлык могут иметь объекты, которые обычным способом выделены быть не могут, например, документ, слой и т. п. Поскольку механизмы при обращении к разным типам labels также разные, для второго способа В InDesign используются методы insertLabel (key, value) И extractLabel (key). Поскольку Labels хранятся в документе, они будут доступны в финальном скрипте, т. е. можно отказаться от создания файла $$ini.txt, вместо этого записав:


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