Языки описания страниц: Postscript и PCL

текст скопирован с сайта http://bestcom.su/?p=60501

Пользователям не приходится напрямую сталкиваться с языком описания страниц (page description language), однако это одна из важнейших характеристик любого устройства вывода на печать, которая определяет класс и область применения принтера. Язык описания страниц используется во время обмена данными между драйвером и устройством вывода на печать, чтобы как можно точнее описать то изображение, которое будет получено на бумаге. В современных цветных лазерных (электрографических) принтерах используются только два варианта языка — PCL и PostScript. Язык описания страниц (который иногда называется "принтерным языком", "языком управления принтером" или просто "языком") полностью определяет тип шрифтов, способ кодирования изображения, команды управления принтером и используемые методы форматирования документов. Посмотрим, как соотносятся между собой языки PCL и PostScript.

История создания языков описания страниц

Первыми компьютерными устройствами вывода на печать были матричные и ударно-литерные принтеры. Драйвер направлял в такие устройства коды символов, а принтер печатал их с помощью единственного встроенного шрифта. Кроме кодов алфавитно-цифровых символов, драйвер передавал в принтер простейшие команды форматирования: перевод строки, возврат каретки, перевод формата и т.д. В плоттерах использовался графический язык для построения векторный изображений, который состоял из команд поднять/опустить перо, переместить перо в точку с указанными координатами или нарисовать простейшую геометрическую фигуру. Уже в то время существовали устройства ксерографического копирования компании Xerox (название которой переводится с греческого как "сухое письмо"), в которых изображение документа формировалось в "аналоговой" форме в виде электрического заряда на селеновом барабане.

Несмотря на то, что первыми появились струйные устройства вывода на печать, создание языков описания страниц связано с лазерными (электрофотографическими) принтерами. Именно они позволили выводить на печать текстовую информацию в сочетании с рисунками, для чего и потребовался стандартный формат описания изображений при передаче данных из драйвера в принтер. Многие компании создавали собственные языки описания страниц для своих моделей принтеров. Можно вспомнить IBM ProPrinter, CaPSL (Canon Printing System Language), язык RENO в принтерах Agfa, а немецкой компании Mannesmann Tally даже удалось утвердить спецификацию ANSI 3.64 на основе собственного языка MTPL (Mannesmann Tally Printer Language). К настоящему времени все эти языки описаний благополучно забыты, за единственным исключением — языка ESC/P2 (Epson Standard Code for Printers, Level 2) для текстового режима в принтерах Epson, но сохранились и благополучно развиваются языки PCL (Printer Control Language, язык управления принтером) компании Hewlett-Packard и PostScript компании Adobe Systems Inc, которые стали промышленными стандартами для пересылки данных в принтеры.

От полиграфии к компьютерам

Язык PostScript был разработан компанией Adobe. Однако сказать только это — значить не сказать ничего. Компания Adobe Systems Incorporated была организована в 1982 году именно для разработки и продвижения программных продуктов, использующих язык описания страниц PostScript. Первоначальной целью было создание "универсального компьютерного языка для описания и публикации документов любой сложности". Вряд ли можно считать, что эта цель достигнута, но язык PostScript действительно стал стандартом "де-факто" для компьютерной предпечатной подготовки, чему в немалой степени способствовало объединение в 1994 году компаний Adobe и Aldus, соединившее язык PostScript и программу верстки PageMaker.

Первая версия языка PostScript была опубликована компанией Adobe в 1985 году. Сейчас она называется PostScript Level I, т.е. PostScript первого уровня. Кроме уровней для языка PostScript существуют еще цифровые версии, а также "цветовое" обозначение технических описаний (Red Book - Language Reference Manual, красный справочник по языку, Blue Book - Language Tutorial and Cookbook - голубой учебник и руководство, Green Book - Language Program Design, зеленая книга о разработке программ и Black Book - Font Format - черная книга о форматах шрифтов). Спецификация PostScript Level I определена в книге Old Red Book (старая красная книга). В технической документации принтера обычно указывается только уровень PostScript, причем последним является третий уровень языка - PostScript Level III. Заметим, что сведения о совместимости двух принтеров с PostScript Level III, не означает полной идентичности выводимых на печать документов. Во-первых, могут отличаться номера версий, а во-вторых, некоторые производители применяют собственные интерпретаторы языка PostScript. Например, в принтерах Hewlett-Packard используется собственный интерпретатор языка PostScript, но в принтерах Xerox всегда применялся Genuine PostScript — "подлинный" язык PostScript, т.е. язык, лицензированный у Adobe.

Чтобы как-то описать язык PostScript можно заметить, что широко известный формат Portable Documents Format (PDF) все той же компании Adobe является ни чем иным, как языком PostScript Level 2 с добавленными гипертекстовыми ссылками и средствами поиска в документе.

Сегодня язык PostScript является основным для предпечатной подготовки, однако это совершенно не означает, что PostScript решает все проблемы цветопередачи, цветоделения и унификации представления документа на любых устройствах вывода на печать. Проще говоря, это исторически сложившееся положение вещей или как сказал один мой знакомый дизайнер: "Меня засмеют, если я принесу на фотовывод шрифты TTF". Как и прежде, печать (особенно офсетный полиграфический процесс) остается искусством, а не наукой. Но основной заслугой языка PostScript стала повсеместная замена ручного макетирования компьютерной версткой. Возможно, совершенствование компьютерной верстки связано с программными продуктами Adobe, а не с достоинствами самого языка PostScript.

От компьютеров к полиграфии

Язык описания страниц PCL компании Hewlett-Packard развивался от простого к сложному. Первая версия этого языка (PCL 1), появившаяся практически одновременно с PostScript Level 1, не ставила перед собой никаких глобальных задач, но обеспечивала простейшие команды управления принтером и печать в текстовом режиме, а также основные операции для вывода на печать из однопользовательской рабочей станции.

В версии PCL 2 были добавлены функции EDP (Electronic Data Processing, обработка электронных данных) и транзакции между компьютером и принтером. Хотя и в текстовом режиме, но был реализован вывод на печать из многопользовательских операционных систем. В версии PCL 3 (1984 год) появились функции Office Word Processing (обработка офисных текстов), что позволило выводить на печать растровую графику и шрифты. Спецификация языка PCL 4 (1985 год) определила функции форматирования страниц. Появилась поддержка макросов, больших растровых шрифтов и улучшенной графики. В принтерах HP LaserJet IIP и HP LaserJet IIP Plus была реализована немного улученная версия PCL 4.5, которая не получила широкого распространения.

Версия PCL 5 существует в нескольких вариантах. В базовой спецификации (1990 год) были реализованы функции Office Publishing (офисная публикация), включая масштабирование шрифтов самим принтером, контурные шрифты и поддержку графического языка HP-GL/2. В версии PCL 5E (Enhanced, улучшенная) было обеспечено двунаправленное общение компьютера и принтера, а также функции выбора шрифтов в операционной системе Microsoft Windows. Версия PCL 5C (Color, цветная) служит для цветных принтеров и характеризуется добавлением тегов указания цвета текста.

Последней версией языка стала спецификация PCL 6 (1996 год). В ней реализован переход на новую модульную структуру языка (что уже давно сделано в PostScript) для ускорения разработки нового программного обеспечения и, в частности, новых драйверов устройств вывода на печать. Эта версия создавалась в тесном сотрудничестве с компанией Microsoft, поэтому обеспечен ускоренный возврат ответа в приложение, быстрая печать сложных графических изображений, улучшенное качество печати и повышенная точность при выводе документов. Язык PCL 6 сохраняет полную обратную совместимость с PCL 5 и предыдущими версиями PCL, но существенно изменен метод пересылки команд в принтер, поэтому в техническом описании обычно приводятся сведения о совместимости с PCL 6 и одной из разновидностей PCL 5 (обычно с PCL 5E).

Все версии PCL являются совместимыми снизу вверх, т.е. каждая новая версия сохраняет все старые возможности и вводит новые функции.

PCL и PostScript

Начнем с того, что в PCL используются стандартные шрифты TTF (True Type Font) системы Windows, в то время как в PostScript применяются одноименные собственные шрифты, которые, как минимум, должны как-то попасть в операционную систему.

Однако основное отличие состоит в концепции языков описания страниц. Если PCL предназначен для управления работой принтера, т.е. определяет поток команд управления, то PostScript служит для аппаратно-независимого описания страницы. Проще говоря, для создания графического изображения принтер должен некоторым образом интерпретировать описания на языке PostScript (как известно, любая интерпретация вносит некоторую погрешность). Однако для вывода документа на языке PCL принтеру вполне достаточно выполнить понятные и знакомые команды этого языка. Спецификация PCL открыта и распространяется бесплатно, однако использование лицензированного языка PostScript предполагает авторские отчисления для компании Adobe.

Можно не говорить, что для одной и той же страницы описание на языке PCL занимает меньше места и обрабатывается принтером быстрее, чем описание на языке PostScript.

Естественно, мы не призываем всех и каждого переходить с PostScript на PCL и тем более не пытаемся принизить историческую роль языка PostScript в офсетной полиграфии. Однако если дизайнер готовит Web-публикацию, то кажется немного странными рассуждения о точной цветопередаче (это при 256 цветах в Интернете) или необходимости использования шрифтов PostScript (которые вряд ли найдутся на компьютере рядового пользователя). Нужно четко понимать, что в полиграфии цветные принтеры используются только для получения пробных оттисков, позволяющих ориентировочно оценить цвет изображения и общий баланс цвета. На заключительной стадии, при подготовке к цветоделению на пленке или печатной форме, все равно потребуются более точные цветные пробные оттиски.

Однако совсем иначе обстоит дело, когда цветной лазерный принтер является конечным звеном печатного процесса (например, при непрофессиональном выводе на печать или при печати малотиражной продукции). Здесь вполне допустимо и оправдано использование языка PCL.

Тенденции и перспективы

Еще пять лет назад все принтеры делились на две категории: принтеры PostScript и принтеры, не поддерживающие этот язык. С течением времени все большее число устройств стало поддерживать PCL.

Однако возникает одна проблема, о которой не всегда упоминают изготовители устройств печати. Любой принтер может "слушаться" только одного набора команд - или PCL, или PostScript. Даже если это явно не указано в технической документации, второй язык реализован через программную интерпретацию. Проще говоря, ранее большая часть принтеров считала основным язык Adobe PostScript, а PCL — дополнительным (т.е. преобразуемым из PCL в PostScript). Однако понемногу язык PostScript стал пропадать в младших моделях многих изготовителей. Например, в принтерах Phaser 740, 780 и 840 компании Xerox (1999 год) основным был Genuine Adobe PostScript 3 и дополнительным PCL5e. В принтерах Phaser 550 и Phaser 560 язык PCL 5 вообще поставлялся только по специальному заказу, а основным и единственным был язык описания страниц Adobe PostScript Level 2, правда с добавленным языком описания векторной графики HP-GL.

Однако посмотрим на современные модели персональных лазерных принтеров компании Xerox, чтобы не зациклится на явно "ангажированных" для PCL принтерах компании HP. Модели Phaser 3110 и Phaser 3210 используют шрифты Windows (т.е. TTF) и эмуляцию PCL 6. В модели Phaser 3310 язык управления печатью PCL 6 является основным, хотя можно заказать дополнительный язык PostScript уровня III.

В старых сетевых и полноцветных принтерах Xerox используется "истинный", он же "стандартный" язык Adobe PostScript 3 и нет языка PCL. Но в появившихся в прошлом году двух новых моделях - лазерном Phaser 6200 и твердочернильном Phaser 8200 — дополнительно к Adobe PostScript 3 реализован язык PCL 6.

Итак, если ранее Xerox не придавала большого значения языку PCL, то теперь в младших моделях эта компания отказалась от PostScript, а в старших — дополнила PostScript языком PCL 6. Следовательно, язык PCL востребован пользователями и понемногу начинает проникать в принтеры разных компаний, что во многом связано с переходом цветных лазерных принтеров из категории "дорогих профессиональных" устройств в ранг обычного офисного оборудования.

Заключение

В начале этой статьи сказано, что пользователь может даже не знать о существовании языка описания страниц. Однако при покупке нового цветного лазерного принтера следует обратить внимание не только на привычные и понятные технические характеристики (например, разрешение, скорость печати, время на переход в режим готовности и т.д.), но и на поддерживаемый устройством язык описания страниц. Если принтер будет использован исключительно для офисных программ, подобных Microsoft Office, то достаточно поддержки языка PCL. Если же планируется работа с "тяжелыми" графическими или издательскими программами, то не обойтись без языка PostScript. Не следует забывать и о том, какой из языков является основным, а какой — эмулируемым.