Задача: требуется распечатать лотерейные
билетики. На A4 билетиков
умещается 8 штук, у каждого — свой номер. Номер имеет формат «001,
002...050,
051...112, 113...». Как бы это дело автоматизировать?
В
фотошопе есть
встроенный исполнитель Java-скриптов, чем мы и воспользуемся. (Можно
для
начала почитать вводный
урок).
1. Итак, создаем файл
myscript.jsx и
пишем в него следущее:
//комментарии оформляются двумя слэшами vardocRef = app.activeDocument; //получаем
указатель на
активный документ varstartDisplayDialogs = app.displayDialogs;
//сохраняем настройку
отображения диалогов
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;
Комментарии к скрипту: 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
номеров :
)