|
Часть 14
12-1
Глава 12. Макрокоманды
12.1. Введение
Обычная задача (программный модуль) принтера требует исполь
зова-
ние нескольких команд. Программа может выполнять одинаковые з
адачи
многократно. Для программных модулей, которые выполняются повт
орно,
язык PCL обеспечивает функциональные возможности благодаря макрок
оман-
дам для сокращения числа команд, которые должны быть посланы в
прин-
тер. Макрокоманда представляет собой совокупность Esc-последова
тель-
ностей, управляющих кодов и данных, загруженных в принтер, выпол
нение
которых инициализируется, используя одну команду.
12.2. Создание макрокоманды
Уникальный номер идентификации должен задаваться до опреде
ления
макрокоманды; затем это число ассоциируется с макрокомандой. Если
мак-
рокоманда уже связана с этим номером, существующая макрокоманда
будет
удалена из пользовательской памяти во время определения новой мак
роко-
манды. Последующие макрооперации выполняются, используя номер мак
роко-
манды.
Макрокоманда создается за несколько шагов. Во-первых, посыла
ется
команда в принтер, которая показывает начало определения макроком
анды.
Далее, Esc-последовательности, управляющие коды и данные, которые
сос-
тавляют макрокоманду, посылаются в принтер в намеченном порядк
е вы-
полнения. В заключении, команда посылается в принтер, которая по
казы-
вает завершение макро определения.
Макрокоманды занимают часть пользовательской памяти. В за
виси-
мости от количества доступной пользовательской памяти, до 32 мак
роко-
манд одновременно может быть записано в память.
12.3. Вызов макрокоманды
Существует три способа для вызова макрокоманды: в режиме "в
ыпол-
нение" (execute), в режиме "обращение" (call) и "оверлейном" р
ежиме
(overlay).
Когда макрокоманда находится в режиме "выполнение", она нач
инает
выполнение своих команд, используя текущую модифицированную сред
у для
печати. Изменения, проведенные для настройки паметров во время
"вы-
полнения" макрокоманды, записываются в модифицированную среду пе
чати;
эти изменения сохраняются после завершения режима "выполнения" м
акро-
команды.
Когда макрокоманда находится в режиме "обращение", она нач
инает
выполнение своих команд, используя текущую модифицированную сред
у пе-
чати. Изменения, проведенные для настройки парметров во время "об
раще-
ния" к макрокоманде, записываются в модифицированную среду печати
; од-
нако, эти изменения не сохраняются после завершения режима "обращ
ения"
к макрокоманде. Модифицированная среда печати, которая существо
вала
до режима "обращение" к макрокоманде, восстанавливается.
Когда макрокоманде предоставляется возможность для автоматич
еско-
го "оверлея", ее выполнение будет последней операцией каждый раз,
ког-
да печатается страница. Прежде чем макрокоманда выполнится, те
кущая
модифицированная среда печати сохраняется и заменяется на оверл
ейную
среду. Оверлейная среда представляет собой сочетание среды печати
, ус-
тановленной по умолчанию пользователем, и текущей модифициров
анной
среды печати. Изменения, проведенные для настройки параметров во
время
макрокомандного "оверлея", записываются в модифицированную среду
печа-
ти; однако, эти изменения не сохраняются после завершения "макро-
овер-
лея". Модифицированная среда печати, которая существовала до мак
роко-
мандного "оверлея", восстанавливается.
12-2
Среда оверлея состоит из текущих установок для след
ующих
параметров с оставшимися параметрами среды, установленными к их
зна-
чениям, установленным по умолчанию пользователем:
Длина страницы Источник бумаги
Размер страницы Число копий
Ориентация Стек положения курсора
Смотри главу 3 по описанию среды.
Примечание: Текущее положение курсора не является частью мо
дифи-
цированной среды печати; следовательно, поло
жение
курсора не сохраняется, при режиме "обращение" к
мак-
рокоманде, и не восстанавливается после заверш
ения.
Команда положения курсора для проталкивани
я в
стек/выталкивания из стека может использоваться
для
сохранения и повторного вызова положения курсора
12.4. Временные и постоянные макрокоманды
Во время своего определения, макрокоманда автоматически обоз
нача-
ется как временная. Временной является такая макрокоманда, ко
торая
удаляется из пользовательской памяти во время восстановления при
нтера
в исходное состояние. Макрокоманда может быть определена как пос
тоян-
ная, чтобы предотвратить удалене информации во время восстанов
ления
принтера в исходное положение. Макрокоманда определяется как врем
енная
или постоянная в зависимости от номера идентификации.
Примечание: Временные и постоянные макрокоманды удаляютс
я из
пользовательской памяти всякий раз, когда выключ
ается
питание принтера.
12.5. Удаление макрокоманды
Существует несколько механизмов, обеспеченных PCL управл
ением
макрокомандами для явного удаления макрокоманд из пользовательско
й па-
мяти. Эти механизмы включают команды, которые удаляют все макрок
оман-
ды, все временные макрокоманды или отдельные макрокоманды в завис
имос-
ти от их номера идентификации.
12.6. Идентификация макрокоманды
Команда "Идентификация макрокоманды" определяет номер иден
тифи-
кации для использования в последующих макрокомандах.
Ec&f#Y
# = Номер идентификации макрокоманды (от 0 до 32767)
Идентификация макрокоманды, установленная по умолчанию на за
воде-
изготовителе принтеров, равна 0.
Пример: Чтобы установить номер идентификации макрокоманды 5,
не-
обходимо послать команду:
Ec&f5Y
Этот номер (5) будет использоваться в последующих макро опе
раци-
ях.
12.7. Управление макрокомандой
Команда управления макрокомандой обеспечивает механизмы для
опре-
деления, вызова и удаления макрокоманд.
Eс&f#X
# = 0 Приступить к определению макрокоманды (для посл
едней
определенной идентификации)
= 1 Завершить определение макрокоманды
= 2 Выполнить макрокоманду (самая последняя определ
енная
идентификация)
12-3
= 3 Обратиться к макрокоманде (самая последняя опред
елен-
ная идентификация)
= 4 Предоставить возможность макрокоманде автомат
ичес-
кий оверлей (самая последняя определенная иденти
фика-
ция)
= 5 Сделать невозможным автоматический оверлей
= 6 Удалить все макрокоманды
= 7 Удалить все временные макрокоманды
= 8 Удалить макрокоманду (самая последняя определ
енная
идентификация)
= 9 Сделать макрокоманду временной (самая последняя
опре-
деленная идентификация)
= 10 Сделать макрокоманду постоянной (самая последняя
оп-
ределенная идентификация)
Примечание: 1. Макрокоманда может вызывать или выполнять д
ругую
макрокоманду, которая в свою очередь может
вызы-
вать или выполнять другую макрокоманду; доп
уска-
ются два уровня вложения.
2. Никакие другие операции управления макрокоман
дами,
кроме вызова и выполнения, не могут выполн
яться
внутри макрокоманды.
3. Команда возвращения принтера в исходное поло
жение
не допустима в макрокоманде.
4. Команды управления шрифтом не допустимы в мак
роко-
манде, то есть, шрифты не могут быть загру
жены,
удалены или созданы для постоянного использо
вания
в макрокоманде.
Пример: Чтобы определить макрокоманду с идентификацией 7, сл
едует
подать команду:
Eс&f7y0X
.
.
.
Esc-последовательности, управляющие коды и данные
.
.
.
Eс&f1X
Чтобы сделать макрокоманду с идентификацией 7 постоянной, не
обхо-
димо послать команду:
с&f7y10X
Чтобы предоставить макрокоманде с идентификацией 7 возмож
ность
автоматического оверлея, необходимо послать команду:
Eс&f7y4X
Чтобы удалить макрокоманду с идентификацией 7, необходимо по
слать
команду:
Eс&f7y8X
12.8. Пример управления макрокомандой
Следующий пример иллюстрирует описание макрокоманды бланка.
Eс&f1Y Определяет идентификацию макрокоманды равной
1.
Eс&f0X Начинает описание макрокоманды.
Eс&a540h360V Позиционирует точку (540,360) в деципунктах P
CL
системы координат для вывода специального знака.
Eс*t150R Устанавливает разрешающую способность график
и 150
точек на дюйм.
Eс*r1A Начинает растровый образ специального знака.
12-4
Ec*b60W [Растровые данные] Посылает первую растровую стро
ку.
. .
. .
. .
Eс*b60W [Растровые данные] Посылает последнюю растровую с
троку.
Eс*rB Завершает растровую графику.
Eс&a540h780V Позиционирует для буквенного обозначения в
точке
(540, 780).
Eс(1X Выбирает шрифт 1.
ABC Corp Текст
Post Office Box 15 Текст
Fred, Texas 83707 Текст
Eс&a540h960V Позиционирует первый шпон в точке (540, 960).
Eс*c10v4680H Устанавливает его высоту и ширину.
Eс*c0P Печатает первый шпон.
Eс&a540h980V Позиционирует второй шпон в точке (540, 980).
Eс*c0P Печатает второй шпон.
Eс&540h1200V Позиционирует первую строку текста в точке
(540,
1200).
Eс&f1X Завершает описание макрокоманды.
Эта макрокоманда может выполняться, вызываться или быть дос
туп-
ной для автоматического оверлея.
|