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



 

Часть 3

                                1-1
     Глава 1. Введение в язык PCL фирмы Hewlett-Packard
     1.1. Предыстория языка PCL
     В прошлом  принтеры   разрабатывались  не  используя   станд
арта,
предъявляемого промышленностью средств вычислительной техники,  д
ля вы-
бора параметров.  Принтеры, производимые в течение этого периода 
разра-
батывались с параметрами, которые отличались от прибора к прибору
. Как
результат, прикладные программы, написанные для одного принтера, 
часто
нужно было переписать или  модернизировать  для  использования  н
епос-
редственно  в другом  принтере,  что требовало разработки програм
много
обеспечения в течении нескольких месяцев или даже лет.
     Для пользователя  нежелание наращивать вычислительные возмож
ности
принтеров уровня новых технологий родилось из-за потребности моди
фици-
ровать системы программного обеспечения для  каждого  принтера.  
Когда
принтеры появлялись,  текущее  использование  потребовало  програ
ммных
преобразований, которые должны были поддержать их.  Вместо обеспе
чения
плавного наращивания вычислительных возможностей принтеров, промы
шлен-
ность  порождала хаос по мере того как изменялись характеристики 
прин-
тера.
     Чтобы уменьшить  этот  хаос,  фирма  Hewlett-Packard  разраб
отала
стандартный язык для управления принтером, который был назван "Ко
манд-
ный язык для принтера" ("Printer Command Languege " (PCL)).  Язык
  PCL
фирмы Hewlet-Packard определяет стандарт,  по которому квалифицир
уются
параметы принтера и выбор параметров с помощью использования  про
грам-
много обеспечения. Он обеспечивает самый высокий  уровень  взаимо
связи
между системой и принтером. Язык разработан, чтобы не зависеть от
 мно-
гообразия вычислительных систем, драйверов устройств, интерфейсов
  вво-
да/вывода и сетевых  связей. Его  назначение  заключается в том, 
чтобы 
объединить вместе все HP принтеры под общей  и совместимой  струк
турой  
управления, которая обеспечивает совместимость  параметров от при
нтера 
к принтеру.   Это защищает  помещение денег  в  системы  и програ
ммное
обеспечение драйвера.
     Ключ к разрабатываемому языку PCL определялся параметрами пр
оцес-
са  печати для рынков в разных странах. Благодаря разнообразию во
змож-
ностей печати  начиная с персональных компьютеров  низкого  уровн
я  до
компьютеров высокого уровня, развитие  набора  общих  параметров 
 либо
будет ограничиваться предоставленными способностями печати   прин
теров
для высокоуровневых систем, либо приведет к увеличению стоимости 
прин-
теров для  низкоуровневых  систем.  Решение  было простым: констр
укция
языка PCL посредством группирования параметров так, чтобы они удо
влет-
воряли большинству требований рынка.
     Оттиск и пробел (Print and Space), электронная обработка дан
ных и
транзакций (EDP/Transaction),  автоматизированная   подготовка  т
екста  
(Office Word Processing) и форматирование  страниц  (Page  Format
ting)
появились как  четырехуровневая  иерархия  языка  PCL.  Благодаря
 этой
структуре стала реальностью возможность использовать многообразие
  пе-
чатных возможностей  при защите вкладов в прикладные программы и 
прог-
раммное обеспечение драйверов для принтеров.
     1.2. Архитектура PCL
     Командный язык принтера  представляет  четыре  уровня  парам
етров 
принтера:  оттиск  и  пробел, электронная обработка данных/транза
кций, 
автоматизированная обработка и форматирование страниц.  Каждый ур
овень
имеет особый  рынок,  для которого его набор параметров  предназн
ачен.
     1) Уровень I.
     Множество  параметров  Print  and  Space является базовым ур
овнем 
свойств принтера. Принтеры реализующие это множество параметров, 
обыч-
				1-2
но недорогие и предоставляют удобные средства для пользователя,  
чтобы
получить твердую копию. Этот уровень обычно связан с единственным
  ав-
томатизированным рабочим местом пользователя.
     2) Уровень II
     Множество параметров   EDP  (Transaction)  включает  как  по
дмно-
жество свойства предыдущего уровня. Принтеры, реализующие это мно
жест-
во параметров  являются  главным  образом много-пользовательскими
 уст-
ройствами для вывода твердой копии. Этот уровень используется в с
реде 
EDP или для обработки транзакций.
     3) Уровень III
     Множество параметров Office Processing включает как подмноже
ство
свойства предыдущего уровня. Этот уровень индивидуально   подгоня
ется
к требованиям  автоматизации: высококачественный выход с дополнит
ель-
ными возможностями форматирования данных.
     4) Уровень IV
     Множество параметров Page Formatting  включает как  подмноже
ство
свойства предыдущего уровня. Этот  уровень предоставляет пользова
телю
наибольшую гибкость при формировании твердой копии на выходе. При
нтер
LaserJet series II является устройством IV уровня языка PCL.
     Каждый уровень является соответствующим  супер-множеством пр
еды-
дущего уровня, обеспечивающим совместимость снизу вверх. Это разр
еша-
ет применять программы  для  принтеров  того же уровня или выше, 
 для
которых программы  были  написаны.  Например,  любая  программа д
ля I
уровня (Оттиск и пробел) будет соответственно подходить любому пр
инте-
ру формы Hewlett-Packard, подходящему уровневой структуре  языка 
 PCL.
Более  того,  принтер IV уровня (форматирование страниц) может по
дхо-
дить для любой программы языка PCL, написанной для устройства с у
ров-
нем I, II, III или IV уровня языка PCL.
     Каждый уровень языка PCL предоставляет хорошо определенный н
абор
параметров, который  удовлетворяет  потребности  большой части  р
ынка
принтеров. Дополнительные свойства вызваны тем, что явились  расш
ири-
телями для иерархии уровней языка PCL;  эти параметры    обеспечи
вают
гибкость для специальных применений, таких как обработка бумаги и
 со-
здание штрихового кода.
     Модель языка PCL успешна потому, что выполняются следующие п
оло-
жения:
     - Все принтеры реализуют свойства идентично.
     - Каждый уровень является соответствующим супер-множеством п
реды-
дущего уровня.
     - Принтер, поддерживающий особый уровень языка PCL, как  мин
имум,
реализует определенный набор свойств этого уровня.
     - Каждый принтер является особым как по отношению к своему п
риме-
нению, так и по отношению к любым исключениям в параметрах, котор
ые он
может иметь (например, не растровая графика на принтерах с  "рома
шкой"
(со сменным пластмассовым печатающим диском)).
     - Все принтеры языка PCL способны  игнорировать  неподдержив
аемые 
команды.
      1.3. Что такое команды принтера?
     Команды языка PCL обеспечивают доступ к параметрам принтера.
 Один
раз команда языка PCL  устанавливает  параметр;  этот  параметр  
будет
установлен  до тех пор,  пока одна и та же команда не повторится 
с но-
вым значением или принтер не возвратится в исходное положение по 
умол-
чанию в среду своего пользователя. Например, если вы посылаете пр
инте-
ру команду, чтобы она установила поперечную ориентацию  поля стра
ницы,
каждая страница будет печататься в  этой  ориентации  поля до тех
 пор,
пока вы не пошлете команду прямой ориентации изображения или  не 
вер-
нете  принтер  в исходное положение.
				1-3	  
  
     Существует три типа команд языка PCL:
     - с кодами управления;
     - с двоичными Esc-последовательностями;
     - с параметризованными Esc-последовательностями.
     Кодом управления  является символ,  который  инициирует  фун
кцию
принтера, например: CR, LF, FF и т.д.
     ESC-последовательность   языка   PCL   состоит из двух или б
олее
символов. Первый символ всегда является ASCII знаком перехода, оп
реде-
ляемым символом Ec. Этот символ является кодом управления, которы
й ис-
пользуется  принтером,  чтобы  определить последовательность симв
олов,
как команду принтера. Так как принтер контролирует поступающие  д
анные
из  компьютера, он находится в режиме ожидания до появления этого
 сим-
вола. Когда этот символ появляется, принтер считывает его и относ
ящие-
ся к нему символы как команду, чтобы выполнить, а не  как  данные
  для
произведения печати.
     Примечание: 1. На команды языка PCL для принтера также  ссыл
аются
                 как на Esc-последовательности. Термины "Esc-
                 последовательность" и "команда принтера" использ
уются
                 взаимообразно на всем протяжении этого руководст
ва.
                 Здесь и далее начало Esc-последовательностей обо
зна-
		 чается "Ec" (принятое сокращение фирмы HP). "Ec" явля-
		 ется начальным символом переключения кода, имеющий но-
		 мер 027 в наборе ASCII. Здесь и далее - термин Esc-по-
		 следовательность - набор команд языка PCL.
                 2. Некоторые      Esc-последовательности,   пред
став-
                 ленные в этом руководстве, для ясности, содержат
 про-
                 белы между символами. Не включайте эти пробелы, 
когда
                 будете использовать Esc-последовательности.
     1.4. Синтаксис Esc-последовательностей
     Существует две формы Esc-последовательностей языка PCL:
     - двоичные Esc-последовательности;
     - параметризованные Esc-последовательности.
     1.4.1. Двоичные Esc-последовательности
     Двоичные Esc-последовательности имеют следующий вид:
          EcX
     "X" - разряд, который определяет действие,  которое  должно 
быть
           выполнено. (Заметьте, что "X" может любым символом таб
лицы
           ASCII (см.   Приложение  A)  в  диапазоне  номеров 48-
126
           [от"0"  до "~"]). Список двухсимвольных Ec-последовате
ль-
	   ностей поддерживаемых принтером приведен в Приложении А.
      Пример: 1. EcE - двоичная Esc-последовательность, используе
             мая для возвращения в исходное положение принтера.
              2. Ec9 - двоичная Esc-последовательность, используе
             мая для возвращения в исходное положение левого и пр
авого
             поля  печатной страницы.
     1.4.2. Параметризованные Esc-последовательности
     Параметризованные  Esc-последовательности  имеют  следующий
вид:
          Ec X y # z1 # z2 # z3...#Zn[data]
     y, #, zi и [data] могут быть необязательными, в зависимости 
от 
	 команды.
				1-4
     X - Параметризованный разряд - это символ из ASCII таблицы в
 диа-
         пазоне номеров 33-47 (от "!" до "/") показывающий,  что 
Esc-
         последовательность является параметризованной.
     y - Разряд группы - это  символ из ASCII таблицы в диапазоне
 зна-
         чений  96-126  (от "`" до "~"), который определяет тип г
руппы
         управления, который осуществляется.
     # - Поле значения - это группа  разрядов,  определяющая  чис
ловое
         значение. Числовое значение представляется как ASCII пос
ледо-
         вательность разрядов в диапазоне номеров 48- 57  (от "0"
 до
         "9"), которые могут быть представлены с положительным ил
и от-
         рицательным знаком и может содержать дробную часть, пред
став-
         ленную цифрами  после  десятичной  точки ("."). Если Esc
         последовательность требует поле значения и значение не  
опре-
         делено, принимается значение "0".
    zi - Разряд параметра - это любой символ из ASCII таблицы в д
иапо-
         зоне номеров 96-126 (от "`" до "~"). Этот разряд  опреде
ляет
         параметр,  к  которому  предыдущее  поле значения обраща
ется.
         Этот разряд используется при объединении Esc-последовате
ль-
         ностей.
    Zn - Разряд окончания - это любой символ из ASCII таблицы в д
иапо-
         зоне номеров 64-94 (от "@" до "^"). Этот  разряд  опреде
ляет
         параметр,  к  которому  предыдущее  поле значения обраща
ется.
         Этот  параметр    является   оконечным для Esc-последова
тель-
         ности.
[Data] - Двоичные данные являются 8-битовыми данными (например, г
рафи-
         ческие данные, шрифты, загруженные в память  и  т.д.).  
Число
         байтов  двоичных  данных определяется полем значения    
Esc-
         последовательности. Двоичные данные  непосредственно  сл
едуют
         за оконечным разрядом Esc-последовательности.
     Далее  приводится  пример  Esc-последовательности с разрядом
окончания и отсутствием разряда параметра. Эта Esc-последователь-
ность выполняет единую функцию.
                           Ec & l 1 O
                            і і і і і
     разряд выхода ДДДДДДДДДЩ і і і АДДДДДДДД разряд окончания
                              і і і
     параметризованный ДДДДДДДЩ і АДДДДДДДД поле значения
     разряд                     і
                                і
                разряд группы ДДЩ
     Следующим приводится пример Esc-последовательности с  разря-
дом  параметра  и  разрядом окончания. Эта Esc-последовательность
выполняет две функции.
                           Ec & l 1 o 2 A
                            і і і і і і і
     разряд выхода ДДДДДДДДДЩ і і і і і АДДДДДДД разряд окончания
                              і і і і і
     параметризованный ДДДДДДДЩ і і і АДДДДДДД поле значения
     разряд                     і і і
                                і і АДДДДДДД разряд параметра
            разряд группы ДДДДДДЩ і
                                  АДДДДДДД поле значения
     Эта команда представляет собой сочетание следующих Esc-пос-
ледовательностей:
          Ec&l1O  и  Ec&l2A
     Заметим, что " c" и "& " выпадают из второй команды принтера
когда приведенные команды объединяются. Также, значение, определе
нное
         			1-5
верхним регистром клавиатуры "O", которым оканчивалась первая ком
анда,
становится значением разряда  параметра, определенным нижним реги
стром
клавиатуры "o", когда эти команды объединяются.
     Используйте эти три правила объединения и сокращения команд 
прин-
тера:
     1. Первые два разряда после Ec (параметризрванный разряд и р
азряд
группы) должны быть одинаковыми во всех командах, которые будут о
бъе-
диняться. В примере, приведенном выше, такими параметрами являютс
я "&"
и "l".
     2. Все буквенные символы внутри объединенной команды принтер
а бу-
дут обозначаться нижним регистром клавиатуры, за исключением посл
едней
буквы, которая всегда обозначается верхним регистром клавиатуры. 
В об-
ъединенной команде, приведенной выше, "O" становится "o". Последн
ий
разряд в команде принтера должен всегда быть обозначен верхним ре
гист-
ром клавиатуры для того, чтобы позволить принтеру знать, что кома
нда
закончена.
     3. Команды принтера будут выполняться в том же порядке, в ка
ком
они объединяются (слева направо). Не забывайте объединять команды
 в
порядке, в котором они должны выполняться.


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