11.5. Скрипты
11.5.1. Этап 1. Проверка в InDesign
Первый этап можно разбить на несколько шагов. Самый первый - вывод диалогового окна, в котором пользователю предлагается задать требуемые установки. Среди них - правила, согласно которым проводить проверку (записаны в myCoiumnl и myCoiumn2), а также некоторые дополнительные параметры (туСо1ишпЗ и myColuinn4): флаг, позволяющий включить все проверки сразу, журнал, а также какое действие выполнять после предпечатной проверки: создать PDF для пересылки на утверждение заказчику (если макет только поступил) либо уже утвержденный вариант отправить на печать для получения "белки" выпускающему редактору, после чего вся сборка копируется на сервер, где издание полностью собирается.
Поскольку Creative Suite 2 не позволяет полностью прозрачно запускать сценарии в других приложениях (это выражается в том, что переменные, доступные в одном скрипте, недоступны для другого, а нам это нужно, поскольку параметры задаются в самом первом скрипте, а остальные действия, кроме предпечатной подготовки, выполняются в последнем), пойдем на маленькую хитрость и сохраним введенные пользователем данные в виде файла. В таком случае они останутся доступными для любого скрипта и в любое время, что нам и нужно. Данная операция записана в виде функции writeiNio (листинг 11.1). В переменной iniFiiePath хранится путь к создаваемому в технических целях файлу настроек $$ini.txt, в который записываем название журнала и тип конечного результата: создание PDF либо печать и копирование на сервер. Еще один создаваемый в технических целях файл - linksF("/MyFolder/$$links. txt"), куда будем записывать пути к файлам иллюстраций, на которые есть ссылки.
Листинг 11.1. Сохранение настроек в виде файла
function writeINI(){
iniFilePath = "/MyFolder/$$ini.txt" iniFile = File(iniFile) fl.open('w')
iniFile.writeln(currMagazine) iniFile.writeln(lowResPDF) iniFile.close()
Шаг первый Листинг 11.2. Вывод окна диалога и считывание из него значений (рис. 11.1)
#target 'indesign'
var aD = app.documents[0];
myDialog = app.dialogs.add()
myDialog.name = "Preflight Checking"
myColumnl= myDialog.dialogColumns.add()
with(myColumnl.staticTexts){
add({staticLabel:"Images with eff. resolution below"})
add({staticLabel:"SpotColors"})
add({staticLabel:"Overprint"})
add({staticLabel:"Hair Lines"})
add({staticLabel:"Colored small text"))
add({staticLabel:"Large areas with one colorant"})
add({staticLabel:"RGB images"})
add({staticLabel:"JPEG images"})
add({staticLabel:"Delete unused swatches”})
add({staticLabel:"Transparent items"})
add({staticLabel:"Blending modes other than Normal"})
add({staticLabel:"Editable text"})
add{{staticLabel:"Ghost items"})
}
myColumn2= myDialog.dialogColumns.add()
myMinimalResolution = myColumn2.integerEditboxes.add({editValue:250}) with(myColumn2.checkboxControls){
mySpotColor = add({checkedstate: true}) myOverprint = add({checkedstate: true}) myHairLine = add({checkedstate: true})