Ответ: нумерация (например) билетов
вручную написанный EPS, который можно подлинковать в вёрстку и послать на печать несколько экземпляров, и номера будут автоматически меняться.
(Всё, что ниже, написано не мной — это всё цитата.)
Нижеследующий EPS печатает последовательность номеров в порядке возрастания и в пределах одного задания на печать (Pint Job) по возрастанию от 1 до 999999. Номер имеет вид =000000=.
PHP:
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 64 12
%%PageOrigin:0 0
%%BeginProlog
currentglobal
true setglobal
globaldict /iCardNumber known not {
globaldict /iCardNumber 1 put
globaldict /sNumberPattern (=000000=) put
globaldict /iPatternKeepRight 1 put
globaldict /iLenNumberPattern sNumberPattern length put
globaldict /CardNumberColorCYAN 000.00 100 div put
globaldict /CardNumberColorMAGENTA 000.00 100 div put
globaldict /CardNumberColorYELLOW 000.00 100 div put
globaldict /CardNumberColorBLACK 100.00 100 div put
globaldict /CardNumberOVERPRINT true put
globaldict /CardNumberSize 12 put
} {
globaldict /iCardNumber iCardNumber 1 add put
} ifelse
/sCardNumber sNumberPattern def
iCardNumber iLenNumberPattern string cvs
dup length iLenNumberPattern exch sub iPatternKeepRight sub
exch sCardNumber 3 1 roll
putinterval
currentoverprint
CardNumberColorCYAN
CardNumberColorMAGENTA
CardNumberColorYELLOW
CardNumberColorBLACK
CardNumberOVERPRINT setoverprint
setcmykcolor
sCardNumber
/Helvetica findfont CardNumberSize scalefont setfont
5 2 moveto
show
setoverprint
setglobal
%%PageTrailer
%%Trailer
%%EOF
Скопируй приведенный фрагмент в Notepad и сохрани файл как ANSI-текст с расширением EPS. Помести EPS на место, предназначенное для номера, отправь на печать сколько нужно копий и наслаждайся ;-)
Переменные:
1. iCardNumber — начальный номер карты. По умолчанию — 1; Диапазон значений -2147483648…2147483647;
2. sNumberPattern — шаблон номера. По умолчанию =000000=; Если длина строкового представления iCardNumber по числу символов превышает длину sNumberPattern за вычетом iPatternKeepRight, произойдет ошибка rangecheck;
3. iPatternKeepRight — число символов шаблона номера, оставляемых справа. Если равно нулю, номер выравнивается по правому края шаблона. По умолчанию — 1 (т.е. справа остается один знак «=»). Диапазон значений — 0…iLenNumberPattern-1 ;
4. iLenNumberPattern — число символов в шаблоне номера; вычисляется автоматически ;
5. CardNumberColorCYAN — первое число — суть процент содержания Cyan'а в цвете, которым печатается номер; последующие числа используются в служебных целях; Диапазон значений 0…100. По умолчанию — 0.00;
6. CardNumberColorMAGENTA — то же, для MAGENT'ы. По умолчанию — 0.00;
7. CardNumberColorYELLOW — то же, для YELLOW. По умолчанию — 0.00;
8. CardNumberColorBLACK — то же, для BLACK. По умолчанию — 100.00
9. CardNumberOVERPRINT — задает значение атрибута Overprint для печатаемого номера (Kir'у — пламенный привет!). Может принимать два значения: true или false (чувств. к регистру). По умолчанию — true
10. CardNumberSize — кегль номера; диапазон значений — положительное число. По умолчанию — 12 [пунктов]
При изменении кегля или шаблона возможно будет необходимо изменить значения %%BoundingBox: прямоугольника «ограничивающего» EPS. Т.к. EPS не содержит clipping маски, то объекты, выступающие за Bounding Box все равно будут напечатаны, т.е. эти значения нужны для правильного понимания верстаком габаритов EPS'а. Размеры указывают в points'ах (1pt=1/72 дюйма)
(Конец цитаты.)