[ID CC-CC2021] Нужен совет по созданию скрипта

Sergy

Топикстартер
10 лет на форуме
Сообщения
34
Реакции
10
Добрый день, уважаемые коллеги.
Сам я далек от написания скриптов, но возникла необходимость (исправить указатель очень объемного издания)
Суть задачи в следующем надо взять некий диапазон чисел (например: 297-1150) и каждое число в этом диапазоне увеличить на 2.
в диапазоне 1151-1385 увеличить на 3. И так далее.
Интересуют возможные варианты реализации этой задачи (причем сделать это надо непосредственно в верстке используя скрипт, GREP или любые другие варианты).
Спасибо всем ответившим.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
JavaScript:
#target indesign

function clearFindChangeGrepPref () {
    app.findGrepPreferences = NothingEnum.NOTHING;
    app.changeGrepPreferences = NothingEnum.NOTHING;
}

function main () {
    if (!app.documents.length) {
        alert('No documents are open!');
        return false;
    }
    if (!app.selection.length || !app.selection[0].hasOwnProperty('parentStory')) {
        alert('Select text object before run script!');
        return false;
    }
    var doc = app.activeDocument;
    var story = app.selection[0].parentStory;
    clearFindChangeGrepPref();
    app.findGrepPreferences.findWhat = '\\d{1,}';
    var numbers = story.findGrep(true);
    clearFindChangeGrepPref();
    for (var i = 0; i < numbers.length; i++) {
        var text = numbers[i];
        var num = parseInt(text.contents.toString());
        switch (true) {
            case num >= 297 && num <= 1150:
                text.contents = (num + 2).toString();
            break;
            case num >= 1151 && num <= 1385:
                text.contents = (num + 3).toString();
            break;
        }
    }
}

main();
 
  • Спасибо
Реакции: Elsynor и Sergy

Sergy

Топикстартер
10 лет на форуме
Сообщения
34
Реакции
10
Спасибо