Если есть вопросы по скриптам

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

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
Ответ: Если есть вопросы по скриптам

Я бы попробовал организовать рекурсию.
Повторю пример.
Картинка сгруппирована с объектом на полосе, но сама при этом за пределами полосы (ну не нужна оказалась, убрали на поля). Прогулка по родителям приведет к к этой полосе, но это же не значит, что картинка нужна.
Удобством пересмотра оказалась возможность учесть фото, попадающие в зону вылета, а это ни один индизайн не ловит.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Как можно получить страницы на которые ссылаются данные линки?
Вот вроде неплохой пример:
http://forums.adobe.com/message/1108221
И по определению номера страницы:
http://forums.adobe.com/message/2696258
Повторю пример.
Пример, мне кажется, всё-таки скорее частный, требующий индивидуального решения. Для более-менее стандартных ситуаций (хоть 10 уровней сгруппированности, но все объекты группы — на полосе) рекурсия вполне сработает.
У меня (в CS3) это выглядело в виде функции, т.е. достаточно было набрать что-то типа
Код:
var currentPage = getPageNumber (currentObject);
...
function getPageNumber (obj){...}
а внутри самой функции уже шло гуляние по уровням вложенности с разными оговорками (поля, overset-ы и т.п.).
 

waldiscom

Участник
Сообщения
1
Реакции
0
Ответ: Если есть вопросы по скриптам

Здравствуйте.
По долгу службы приходится часто пользоваться инструментом автозамены. Причем поисковых запросов набирается порядка 20-25 штук. Каждый раз набирать в диалоговом окне Find/Change одни и те же поисковые запросы надоедает. Со скриптингом не знаком. Поискал в сети - нашел инструмент Multi-Find/Change от сайта automatication.com. Но, конечно же, $39.95. Вот хотелось бы поинтересоваться у продвинутых пользователей программы InDesign, что, собственно говоря, делать. Тут хочется привести аналогию с Actions in Photoshop. Там почему-то все просто: нажал кнопку "Запись действия", сделал, что нужно, нажал кнопку "Стоп". Все готово. Непонятно, как добиться такой же простоты в InDesign с несколькими поисковыми запросами. Если кто что может подсказать... Заранее благодарны.
 

19thNervousBreakdown

Участник
Сообщения
4
Реакции
0
Ответ: Если есть вопросы по скриптам

Не могу понять, в чем ошибка. Пытаюсь применить к линии (например) другой стиль обводки.
Код:
doc = app.activeDocument;
myX = 20;
myBounds = new Array(10,myX,40,myX);
myLine = doc.graphicLines.add({geometricBounds: myBounds});                                    
myLine.strokeWeight = 15;                
a = app.strokeStyles.lastItem();                
myLine.strokeType = a;
на строке
Код:
myLine.strokeType = a;
ошибка
Некорректное значение 'strokeType'. Ожидалось StrokeStyle or String, получено StrokeStyle.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Так сработает:
Код:
myLine.strokeType = a.name;
 

DMan

Участник
Сообщения
389
Реакции
0
Ответ: Если есть вопросы по скриптам

Какой командой можно прервать выполнение JS скрипта для Indesign (CS3) или вернуть исполнение его исполнение в начало?

if (myDay>31) {
alert("В месяце как максимум 31 день")
// Прерывание работы скрипта
}
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Прервать — exit();
вернуть в начало — app.doScript(app.activeScript);
но в данном случае я бы подумал, как можно заблокировать ввод с клавиатуры неподходящих значений.
 

hulk1776

15 лет на форуме
Сообщения
738
Реакции
21
Ответ: Если есть вопросы по скриптам

Unicode в Инфоокне такой: 0x8.
Как надо написать в строке поиска?

app.findTextPreferences.findWhat = "<0x08>" - не ищется.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 299
Реакции
10 866
Ответ: Если есть вопросы по скриптам

8 - это служебный символ Backspace. Как такое можно ввести?
 

hulk1776

15 лет на форуме
Сообщения
738
Реакции
21
Ответ: Если есть вопросы по скриптам

8 - это служебный символ Backspace. Как такое можно ввести?
Символ с таким кодом появляется (в окошке Инфо), если выбрать Type-Insert Spec character-Other-Right Indent Tab.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Код:
app.findTextPreferences.findWhat = "^y";
Чтобы это выяснить, часто достаточно просто вставить символ в строку поиска через "copy-paste".
 

hulk1776

15 лет на форуме
Сообщения
738
Реакции
21
Ответ: Если есть вопросы по скриптам

Да, все иногда проще, чем кажется. Eugenyus, спасибо!
 

Greek

Участник
Сообщения
3
Реакции
0
Ответ: Если есть вопросы по скриптам

Привет! Переписываю стандартный CropMarks.jsx под свои нужды и наткнулся на проблему, в функции myDrawCropMarks я использую pageHeight и pageWidth(в большинстве случаев координаты выделенной группы объектов совпадают с размерами монтажной области), но хочу использовать координаты выделенной группы объектов visibleBounds, но не знаю как это реализовать.
Прошу помощи. файл прикрепляю

Посмотреть вложение CropMarks 1.5 mm.zip
 

Greek

Участник
Сообщения
3
Реакции
0
Ответ: Если есть вопросы по скриптам

на скриптопедии нашел похожий скрипт, буду с ним возиться...
 

hulk1776

15 лет на форуме
Сообщения
738
Реакции
21
Ответ: Если есть вопросы по скриптам

Вопрос по открытию/закрытию файла для чтения/записи.
Открываю файл с номерами страниц для вывода на печать так:
Код:
        f.open("r");
        str = f.read();
        a_space = ' {2,}'; //лишние пробелы
        a_digits = /\d{4,}/; //сдвоенные цифры (если например два двойных номера страниц написаны без пробела)

            if(str.match(a_space)){
                f.open('w');
                strNew = str.replace(/ +/g," ") // = "заменили пробелы
                f.write(strNew);
                f.close(); alert('reopen print_corr!'); // напоминание, чтобы файл со страница переоткрыть
            }

        if (str.match(a_digits)) {f.close();mSndd("abort.wav");alert("страницы сдвоились!");exit();} 
        f.close(); /// перезаписали и закрыли
Короче говоря, я открываю файл для чтения (для проверки), если там есть двойные пробелы, то еще раз открываю уже для записи, потом закрываю. Важно ли соблюдать очередность открытия/закрытия? Пока все работает и так: открыл для чтения, потом сразу еще раз открыл для записи, потом закрыл запись и потом закрыл чтение (или как вариант, не закрывая запись, потом закрываю чтение [вроде как и запись тоже закрылась]). Может где-то накапливаeтся какая-то ошибка, если не соблюдать последовательность открытия-закрытия, которая может привести к повисанию чего-нибудь?)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 299
Реакции
10 866
Ответ: Если есть вопросы по скриптам

А зачем такие сложности? Может, сразу открыть файл на чтение/запись типа, как здесь?
 

ungrep

Участник
Сообщения
11
Реакции
0
Ответ: Если есть вопросы по скриптам

подскажите, пожалуйста, как удалить с помощью скрипта определенные textFrames, картинки?
 
Статус
Закрыто для дальнейших ответов.