[ID CC-CC2021] Стили печати: сортировка и сохранение

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 470
Реакции
1 530
Коллеги, подскажите, пожалуйста, можно ли в Индизайне как-то изменить (например, по алфавиту) порядок стилей печати? Возможно, скрипт есть какой-нибудь?

Стили печати.jpg


А ещё - можно ли их экспортить не по одному, а все разом? Или если по одному, то хотя бы с именем данного стиля, а не с безликим "Сохранённые стили печати.prst", которое приходится переименовывать вручную?

Стили печати_сохр.jpg
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 257
Реакции
1 013
Похоже, что только все вместе. Единственное, что можно посоветовать - искусственная сортировка. Добавлять к названию лидирующие значки типа восклицательного знака или знака подчёркивания.
 

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 470
Реакции
1 530
Там сортировка похоже по дате создания, название не влияет.
Да вот именно, что по дате создания. А хотелось бы перетасовать по алфавиту...
Хранятся в InDesign Defaults
Эти Defaults редактировать текстовым редактором, к сожалению, нельзя.

Вот чувствую, что скриптик какой-нибудь хитрый мог бы решить проблему. А вдруг кто знает такой?
 

densen

15 лет на форуме
Сообщения
753
Реакции
642
Вот чувствую, что скриптик какой-нибудь хитрый мог бы решить проблему. А вдруг кто знает такой?
Экспорт пресетов через скрипт предполагает запись всех пресетов в один файла в том порядке, в котором они находятся в списке:
JavaScript:
var exportPresetsFolderName = "/d/Work/CPL/1/" // Поменять путь
app.exportPresets(ExportPresetFormat.PRINTER_PRESETS_FORMAT, File(exportPresetsFolderName + "Print_Presets" + ".prst"));
Возможности индивидуального экспорта я не нашел. Возможности изменить порядок по алфавиту тоже.

Выход вижу в одном. На каждом пресете щелкать Edit, выделять и копировать имя, затем Save и сохранять пресет под скопированным именем. И потом Load в алфавитном порядке. И так каждый раз, если какой-то новый пресет нарушает порядок.
 
Последнее редактирование:
  • Спасибо
Реакции: George и LeonidB

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 470
Реакции
1 530
На каждом пресете щелкать Edit, выделять и копировать имя, затем Save и сохранять пресет под скопированным именем
Так и делал до сих пор... Но каждый раз при этом страдал!!!
 

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 470
Реакции
1 530
А ещё - можно ли их экспортить не по одному, а все разом
Экспорт пресетов через скрипт предполагает запись всех пресетов в один файла в том порядке, в котором они находятся в списке:
JavaScript:
var exportPresetsFolderName = "/d/Work/CPL/1/" // Поменять путь
app.exportPresets(ExportPresetFormat.PRINTER_PRESETS_FORMAT, File(exportPresetsFolderName + "Print_Presets" + ".prst"));
Вот за это спасибо большое! Хотя бы можно все разом сохранить, а не по одному с переименованием каждого! Уже легче, пусть даже и без пересортировки!
 

densen

15 лет на форуме
Сообщения
753
Реакции
642
Но каждый раз при этом страдал!!!
Страдания закончились! =)

JavaScript:
/**
 * Sorting Printer Preset 
 https://gist.github.com/milligramme/978260
 */
$.localize = true;

if (!confirm({
    en:"Alert!\nSort order of Printer Presets\nClick \"No\" to cancel"
    },{noAsDefault:true} )) {exit();};

var _sort = confirm({
    en:"Order?\nAcsending Order : YES, \nDescending Order : NO",
    });
var dx = _sort === true ? 'a > b' : 'b > a';

var pp = app.printerPresets;
var sorted_array = pp.everyItem().name.sort(function(a,b){return eval(dx)});   

for (var i=0; i < sorted_array.length; i++) {
    if (sorted_array[i] == "[デフォルト]" || sorted_array[i] == "[Default]") {continue};
    var dup = pp.item(sorted_array[i]).duplicate();
    pp.item(sorted_array[i]).remove();
    dup.name = sorted_array[i];
};
 
  • Спасибо
Реакции: azz

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
Вот за это спасибо большое! Хотя бы можно все разом сохранить, а не по одному с переименованием каждого! Уже легче, пусть даже и без пересортировки!
хм, так и без скрипта можно все разом сохранит — выделяете с шифтом названия пресетов и сохраняете в файл...
 
  • Спасибо
Реакции: LeonidB и densen

densen

15 лет на форуме
Сообщения
753
Реакции
642
@LeonidB
Как у тебя называется дефолтный стиль, который в английском пишется как [Default]?
 

densen

15 лет на форуме
Сообщения
753
Реакции
642
Та же ошибка вылезает.
Попробуй теперь вот так:

JavaScript:
/**
 * Sorting Printer Preset
 https://gist.github.com/milligramme/978260
 */
$.localize = true;

if (!confirm({
    en:"Alert!\nSort order of Printer Presets\nClick \"No\" to cancel"
    },{noAsDefault:true} )) {exit();};

var _sort = confirm({
    en:"Order?\nAcsending Order : YES, \nDescending Order : NO",
    });
var dx = _sort === true ? 'a > b' : 'b > a';

var pp = app.printerPresets;
var sorted_array = pp.everyItem().name.sort(function(a,b){return eval(dx)});   

for (var i=0; i < sorted_array.length; i++) {
    if (sorted_array[i] == "[По умолчанию]" || sorted_array[i] == "[Default]") {continue};
    var dup = pp.item(sorted_array[i]).duplicate();
    pp.item(sorted_array[i]).remove();
    dup.name = sorted_array[i];
};
 
  • Спасибо
Реакции: Drawer и LeonidB

Drawer

Участник
Сообщения
1 824
Реакции
806
Любая локаль:

JavaScript:
for (var i=0; i < sorted_array.length; i++) {
    try {
        var dup = pp.item(sorted_array[i]).duplicate();
        pp.item(sorted_array[i]).remove();
        dup.name = sorted_array[i];
    } catch (e){};
};
 
  • Спасибо
Реакции: LeonidB и densen

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 470
Реакции
1 530

Drawer

Участник
Сообщения
1 824
Реакции
806