STALKER | Дата: Суббота, 17.12.2011, 19:20 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 139
Статус: 
| Задача: требуется распечатать лотерейные билетики. На A4 билетиков умещается 8 штук, у каждого — свой номер. Номер имеет формат «001, 002...050, 051...112, 113...». Как бы это дело автоматизировать?
В фотошопе есть встроенный исполнитель Java-скриптов, чем мы и воспользуемся.
(Можно для начала почитать вводный урок).
1. Итак, создаем файл myscript.jsx и пишем в него следущее: //комментарии оформляются двумя слэшами var docRef = app.activeDocument; //получаем указатель на активный документ var startDisplayDialogs = app.displayDialogs; //сохраняем настройку отображения диалогов
app.displayDialogs = DialogModes.NO; //отключаем отображение диалогов
for ( i = 0; i < 10; i++ ) //сколько ЛИСТОВ нам надо отпечатать (в данном случае — 10) { for ( j = 0; j < 8; j++ ) //сколько номеров на одном листе (в данном случае — 8) { docRef.layers[j].textItem.contents = docRef.layers[j].textItem.contents - 0 + 8;
if ( (docRef.layers[j].textItem.contents - 0) < 10 ) docRef.layers[j].textItem.contents = "00" + docRef.layers[j].textItem.contents; if ( (docRef.layers[j].textItem.contents - 0) < 100 ) docRef.layers[j].textItem.contents = "0" + docRef.layers[j].textItem.contents; } docRef.print(); //отправляем на печать }
app.displayDialogs = startDisplayDialogs; //восстанавливаем настройку отображения диалогов Комментарии к скрипту: docRef — это активный документ docRef.layers[j] — слой с номером j. Слои считаются с нуля (верхний) и дальше (вниз) docRef.layers[j].textItem.contents — текстовое содержание слоя (если слой — текстовый)
В строке docRef.layers[j].textItem.contents = docRef.layers[j].textItem.contents - 0 + 8; мы вычитаем ноль, чтобы преобразовать текстовое представление номера в числовое, и прибавляем 8 (т.к. у нас всего 8 номеров на листе).
Строки if ( (docRef.layers[j].textItem.contents - 0) < 10 ) docRef.layers[j].textItem.contents = "00" + docRef.layers[j].textItem.contents; Если номер меньше 10, то прибавляем к нему вначале «00». Если меньше сотни — то «0».
2. В psd-документе поднимаем 8 слоев с номерами поверх всех остальных. Изначально номера должны быть уже проставлены: 001, 002, ... 008.
Затем отправляем первый лист на печать, указывая все настройки.
А дальше выбираем: File -> Scripts -> Browse, находим наш файл myscript.jsx и открываем его. И смотрим, как автоматически перенабираются цифры. Вот только приходится нажимать Enter при открытии диалога печати (как это обойти, не нашел). Но это ведь небольшая проблема по сравнению с перенабором 1000 номеров : )
Источник
|
|
| |