[ID CC-CC2022] Замена Свочей в выделенных объектах

  • Автор темы Автор темы Slx1
  • Дата начала Дата начала
что именно показано на скрине?
давайте так, а то это обсуждение растянется еще на 7 листов ;)

макеты приходят какие есть (без стилей, в том числе табличных) "лечить" клиента в каком виде присылать файлы никто не будет , не те времена

пообъектно протыкивать (да еще и создавать стили) весь нужный массив имея метод с удалением и подменой свочей как бы можно наверно но.... ))
 
Создать стили, их и применять к найденным объектам (или руками "протыкивать", как уж угодно).
Пока я вижу, что вам нужно мух от котлет отделить таблицы от объектов
 
ищу способ по трудоемкости сопоставимый с этим
(только в выделенных объектах)



 
макеты приходят какие есть (без стилей, в том числе табличных)
Может это уже задача для PitStopa?
Я бы в нем делал, если прислали фарш без стилей, а скорее всего и без свотчей тоже.
 
Может это уже задача для PitStopa?
Я бы в нем делал, если прислали фарш без стилей, а скорее всего и без свотчей тоже.

нет, свочи как раз есть
да они и создаются одно кнопкой если надо))

обычные нормальные макеты, получше многих (только без заморочек со стилями)
 
Времена всегда одни © (с соседней кино-полки)

Не по теме:
Все мы сталкивались с чужими криворукими макетами, вы тут Америки не открыли.
Казалось бы, что со временем таких станет меньше, но...



Свотч работает глобально по документу. Для того он и существует (тем более, что фиолетовый вообще удаляете).
Либо так, как делаете — из файла в файл
Либо поиск/замена, но поочередно...
 
так, нашел таки! 'dans))'
может еще кому понадобится (чтоб без стилей и питстопов :))
жалко что в текстовом виде только (с цветом было бы информативнее)

JavaScript:
// ReplaceSwatch.jsx - замена Swatches
// версия 1
//
// Константин Смородский <smorodsky@gmail.com>
// ИД СПН, Санкт-Петербург, 2009 г.

#script 'ReplaceSwatch'
#target 'indesign'
#include 'ReplaceSwatch.jsxinc'
#include 'ProgressBarDialog.jsxinc'

var lngNoSelectedSwatch = 'Выберите пару Swatches для выполнения замены';

// применяет функцию fun к каждому элементу массива arr
function forEach(fun, arr)
{
    if (typeof fun != "function") throw new TypeError();
    for (var i = 0, l = arr.length; i < l; i++) fun(arr[i], i, arr);
}

var doc = app.activeDocument;
var sel = app.activeWindow.selection;

// Создаем диалог
var dialog = app.dialogs.add({name: 'ReplaceSwatch'});

// панели
if (sel.length)
{
    with (dialog.dialogColumns.add())
    {
        with (borderPanels.add().dialogColumns.add())
        {
            dialogRows.add().staticTexts.add({staticLabel: 'Replace with:'});
            var rbSource = radiobuttonGroups.add();
            rbSource.radiobuttonControls.add({staticLabel: 'Selected objects', checkedState: true});
            rbSource.radiobuttonControls.add({staticLabel: 'Current Document'});
        }
    }
}

with (dialog.dialogColumns.add())
{
    with (borderPanels.add().dialogColumns.add())
    {
        dialogRows.add().staticTexts.add({staticLabel: 'Find swatch:'});
        var rbFrom = radiobuttonGroups.add();
        forEach(function(i)
        {
            rbFrom.radiobuttonControls.add({staticLabel: i.name});
        },
        doc.swatches);
    }
}

with (dialog.dialogColumns.add())
{
    with (borderPanels.add().dialogColumns.add())
    {
        dialogRows.add().staticTexts.add({staticLabel: 'Cahnge to:'});
        var rbTo = radiobuttonGroups.add();
        forEach(function(i)
        {
            rbTo.radiobuttonControls.add({staticLabel: i.name});
        },
        doc.swatches);
    }
}

do
{
    // покажем диалог и если нажата кнопка Cancel - завершаем скрипт
    dialog.show() || exit();

    // проверим выбор пользователя
} while ((rbFrom.selectedButton == -1
        || rbTo.selectedButton == -1)
        && !alert(lngNoSelectedSwatch))

// делаем замены
var repaceSwath = new ReplaceSwatch();
repaceSwath.fromSwatch = doc.swatches[rbFrom.selectedButton];
repaceSwath.toSwatch = doc.swatches[rbTo.selectedButton];

if (rbSource && rbSource.selectedButton == 0)
{
    repaceSwath.progressBarDialog = new ProgressBarDialog('ReplaceSwatch', 0, sel.length, 1);
    repaceSwath.change(app.activeWindow, 'selection');
}
else
{
    var pbSteps = doc.allGraphics.length + doc.allPageItems.length + 1;
    repaceSwath.progressBarDialog = new ProgressBarDialog('ReplaceSwatch', 0, pbSteps, 1);
    repaceSwath.change(doc, ['allGraphics', 'allPageItems', 'footnoteOptions']);
}

repaceSwath.progressBarDialog.end();
 
Последнее редактирование:
хм, вроде весь код скопировал.... 'hmmm'
тогда так:

 
  • Спасибо
Реакции: Drawer
ищу способ по трудоемкости сопоставимый с этим
(только в выделенных объектах)



Посмотреть вложение 163133
Вопрос: на видео при удалении (с заменой) свотча градиент меняется. У меня в CS6 градиент не меняется при таком действии (тинт, кстати, тоже). С какой версии это изменилось?
Или я неправильно как-то удаляю? '%)'
 
Вопрос: на видео при удалении (с заменой) свотча градиент меняется. У меня в CS6 градиент не меняется при таком действии (тинт, кстати, тоже). С какой версии это изменилось?
Или я неправильно как-то удаляю? '%)'

видео c ID CC 2019 мас
 
так, нашел таки! 'dans))'
может еще кому понадобится (чтоб без стилей и питстопов '))'
жалко что в текстовом виде только (с цветом было бы информативнее)
Еще вопросик: у Вас скрипт Tint меняет?
 
Еще вопросик: у Вас скрипт Tint меняет?

Некорректный вопросик))
Меняется своч на своч, тинт везде при этом остается в значении до замены

Так вы просто попробуйте скрипт
 
Последнее редактирование:
Некорректный вопросик))
Меняется своч на своч, тинт везде при этом остается в значении до замены

Так вы просто попробуйте скрипт
Пробовала.
При удалении свотча в корзинку тинт (он же свотч, который колор, который тинт ) меняется, при применении скрипта - нет.
Поэтому вопрос возник: баг это или фитча скрипта? Или только у меня так срабатывает.

tint-deleteSwatch.gif vs tint-replaceSwatch.gif
 

Вложения

Пробовала.
При удалении свотча в корзинку тинт (он же свотч, который колор, который тинт ) меняется, при применении скрипта - нет.
Поэтому вопрос возник: баг это или фитча скрипта? Или только у меня так срабатывает.

Посмотреть вложение 163277 vs Посмотреть вложение 163278

возможно что то в консерватории