Полоса или разворот?

Статус
Закрыто для дальнейших ответов.

Tiburtsy

Топикстартер
15 лет на форуме
Сообщения
60
Реакции
14
Как скрипт может узнать что ему подсунули: одну полосу или две полосы на развороте (две полосы на разных разворотах пока не интересуют)? Есть ли какой-нибудь элегантный способ определения э
 

Tiburtsy

Топикстартер
15 лет на форуме
Сообщения
60
Реакции
14
Сейчас сделал так:
Код:
if(app.activeDocument.pages.length==1){
        alert("Полоса")
    }
else
    if ((app.activeDocument.pages.length==2)&&(app.activeDocument.pages[0].side==PageSideOptions.LEFT_HAND)){
        alert("Разворот!")
}
else {
alert("Что-то ещё")
}

Но чувствую, что можно сделать как-то более правильно
 

MT

15 лет на форуме
Сообщения
246
Реакции
93
Читайте количество разворотов

Код:
if(app.activeDocument.spreads.length==1){alert("1 разворот в документе")}
А потом количество страниц в развороте
Код:
if(app.activeDocument.spreads[0].pages.length==1){alert("1 страница на развороте")}
 
  • Спасибо
Реакции: Tiburtsy

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Код:
/**  Разворот или полоса
@in param myDoc - документ для исследования
@out:
    'moreTwoPages' - больше двух полос,
    'spread' - разворот
    'page' - полоса
    '2page' - две полосы
    */
function isSpreadOrPage(myDoc) {
    if (myDoc.pages.length > 2) return 'moreTwoPages';
    if (myDoc.pages.length == 1) return 'page';   
    return (myDoc.spreads[0].pages.length == 2) ? 'spread' : '2page';
}

alert ( isSpreadOrPage(app.activeDocument) );

upd: Увидел, что в моём варианте не учитывается две полосы справа-слева от средника.
Но идея
1. вынесите проверку в функцию — в результате сможете внести изменения при необходимости и улучшишь читаемость текста.
2. обязательно проверяйте наличие страниц больше двух. Может сложиться ситуация, когда в исходнике первая полоса пустая, а следом две полосы в развороте — лично я, пока работал в типографии, многократно натыкался на такие файлы. В результате ваша работа окажется неправильной.
 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.