LatchObj("NOT CMYK", myGraphic.parent); if (myGraphic.effectivePpi[0]<myMinimalResolution || myGraphic.effectivePpi[1]<myMinimalResolution)
LatchObj("LOW RESOLUTION", myGraphic.parent); if ((myGraphic.effectivePpi[0]>300 && myGraphic.effectivePpi[1]>300)) ResolutionArray.push(File(myGraphic.itemLink.filePath))
}
Далее идут редко используемые каверзные "финты", но, тем не менее, об их присутствии также лучше знать (листинг 11.11).
; Листинг 11.11. Проверка экзотики
if(myGraphic.blendMode!=BlendMode.NORMAL}
LatchObj("NOT NORMAL BLENDING MODE", myGraphic.parent); if (myGraphic.opacity!=100)
LatchObj("TRANSPARENCY", myGraphic.parent); Шаг третий Наконец, самое интересное - проверка иллюстраций в форматах EPS и PDF. Если таковые в публикации имеются (EPS_flag=true), устанавливаем соответствующий признак (нужен запуск Illustrator) и записываем все пути к ним в текстовый файл. Параллельно проверяем содержимое массива ErrArray, куда на протяжении работы скрипта собиралась информация о всех потенциально опасных моментах публикации, и выдаем ее в виде предупреждения. Если массив ErrArray не пуст, значит, в публикации существуют подозрительные элементы, и все дальнейшие операции прекращаются. Если же массив пуст, значит, все нормально, можно спокойно продолжать.
Один тонкий момент связан с обработкой объектов, вставленных в InDesign через системный буфер. Дело в том, что при определенных условиях (например, фрагмент слишком сложный, чтобы его оставлять в виде кривой) InDesign автоматически конвертирует объект в формат EPS и в таком виде помещает его в публикацию. При этом возникает ситуация, когда, с одной стороны, формат файла действительно EPS, а с другой - он не имеет ссылки на файл на диске (myGraphic. itemLink=null), что нам также приходится учитывать. Наконец, запись ссылок к внешним иллюстрациям в соответствующие файлы (листинг 11.12).
' Листинг 11.12. Проверка связанных иллюстраций
if (myGraphic. constructor .name='EPS' | | myGraphic.constructor.name=='PDF'){ linkPath = decodeURI(File(myGraphic.itemLink.filePath)); if (myGraphic. itemLink=null) {
alert("Some vector graphics were pasted from Clipboard")}
EPS_Storage.push(linkPath);
}else EPSArray.push(linkPath);
}
// Запись в файлы
if(EPSArray.length>0 SS (File(linksEPSFile).length>0) writeLinks(EPSArray, linksEPSFile); if(ResolutionArray.length>0 & File(linksPSDFile).length>0) writёLinks(ResolutionArray, linksPSDFile);}
function writeLinks (arrName, fileName) (
if(arrName.length>0 SS (!File(fileName).exists II File (fileName) . length=0) ) { txtFile = new File(fileName); txtFile.open('w'); txtFile.write(arrName.join('\r')); txtFile.close(); delete txtFile;
}
}
Итак, оба шага, составляющие первый этап проверки, завершены. На текущий момент выполнены следующие задачи:
проведена предпечатная проверка сборочного файла публикации;
проверены все задействованные растровые изображения;