Рис. 4.4. Расположение страниц до и после листоподбора Итак, рассмотрим скрипт (листинг 4.29).
Листинг 4.29. Выполнение листоподбора
myDoc = app.activeDocument myPages = myDoc.pages; if (myPages.length % 4 != 0) {
alert("Количество страниц в документе не кратно четырем!"); exit () ;
}
if (myDoc.sections.length > 1) {
alert("В документе не должно быть дополнительных секций”); exit();
app.scriptPreferences.userlnteractionLevel = 'Ь UserlnteractionLevels.neverlnteract; myName = myDoc.name;
myTN = myDoc. filePath + "/" + myName. split (". indd") [OJ + "_booklet” + 'b ".indt"; myDoc.save(File(myTN),true); myDoc.close(); app.open(File(myTN));
app.scriptPreferences.userlnteractionLevel = 'b UserlnteractionLevels.interactWithAll;
myDoc.documentPreferences.allowPageShuffie = false;
for (i=0; myPages.length > i; i++) {
origSection = myPages[i].appliedSection; origNumbering = origSection.pageNumberStyle; origSection.pageNumberStyle == PageNumberStyle.arabic; sectName = origSection.name; pageName = myPages[i].name;
if (sectName != ""){
pageName = pageName.split(sectName) [1]; pageNo = pageName.tolnteger() ;
}
newSection = myDoc.sections.add({pagestart:myDoc.pages[i], 'b continueNumbering:false, pageNumberStart:pageNo, 'b pageNumberStyle:origNumbering, marker: origSection.marker, name: 'b origSection.name}); origSection.pageNumberStyle = origNumbering;
}
myDocument.documentPreferences.allowPageShuffie = true;
for (i=0; (myPages.length/2)>i; i++)( if (i % 2=0) {
myDoc.pages[myPages.length - 1],move(LocationOptions.before, 'b myDoc.pages[i*2], BindingOptions.leftAlign);
} else {
myDoc.pages[myPages.length - 1].move(LocationOptions.after, myDoc.pages[i*2], BindingOptions.rightAlign);
}
Сначала проверяем количество страниц в публикации. Если оно не кратно четырем (это необходимое условие для получения полных двусторонних разворотов), выводим предупреждение и останавливаем скрипт:
if (myPages.length % 4 != 0) exit()
Если количество страниц корректное, проверяем, чтобы в публикации не было секций. Для чего это нужно? Как известно, существует единственный способ создания буклета с сохранением нумерации в самой публикации, не прибегая к переводу в PDF и другим альтернативным вариантам. Состоит он в установке начала секции для каждой страницы публикации - только в таком случае ее номер не будет меняться при дальнейшем изменении ее положения в документе. А теперь представьте ситуацию, что в публикации секции уже есть: как в таком случае быть? Кому отдавать предпочтение? Застрахуемся во избежание подобных ситуаций, предоставляя пользователю право самому решить, как поступить в данном случае.
Итак, если все проверки пройдены успешно, приступаем к основным действиям. Поскольку в реальной работе случаи встречаются различные, чтобы скрипт работал на полном автомате, не отвлекаясь на выдачу предупреждений и других диалоговых окон, требующих реакции пользователя, запретим InDesign выводить любые предупреждения арр.scriptPreferences.userInteractionLevel = 'Ь UserlnteractionLevels.neverlnteract;