ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 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        Завершает описание макрокоманды.
     Эта макрокоманда может выполняться,  вызываться или быть дос
туп-
ной для автоматического оверлея.


Яндекс цитирования