ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 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 Завершает описание макрокоманды. Эта макрокоманда может выполняться, вызываться или быть дос туп- ной для автоматического оверлея. |