Диалоги о печатных тонкостях: языки описания страниц
Почему для конечного пользователя так важно знать, на каком языке его принтер «общается» с системой? Этим вопросом лучше задаться ещё до покупки самого принтера, потому как ответ на него в немалой степени влияет на такие простые и понятные для рядового потребителя параметры, как «скорость печати» и «качество печати». Скорости и качества нам, как водится, охота поболее да подешевле, вот только не появляется скорострельность и точная цветопередача из ниоткуда, равно как и никуда не исчезает. Ferra.ru в очередной раз доказывает простейшие законы физики на примере языков описания страниц.
История появления
Итак, с чего же всё начиналось? Наверное, все ещё помнят огромные и безумно шумные матричные принтеры, которые в нашем случае можно взять за историческую исходную точку в деле SOHO-печати. Со словосочетанием «матричный принтер» в первую очередь ассоциируется Epson. Собственно, компания Epson и придумала в далёких 70-х язык ESC/P (Epson Standard Code for Printers), который и по сей день поддерживается некоторыми другими производителями (к примеру, Brother) офисно-ориентированных устройств вывода посредством режима эмуляции.
Немногим позже, в 1981 году, IBM представила свою версию языка описания страниц под названием PPDS (Personal Printer Data Stream). Анонс совпал с выходом в свет первого принтера IBM, способного печатать графические изображения. Примерно в это же время на рынке появляется HP с языком PCL (Printer Command Language), который использовался в первых ударных и струйных принтерах. Тремя годами позже был представлен публике и первый релиз PostScript (также известный с постфиксом Level 1), базировавшийся на свободных исходниках Xerox и созданный силами только что основанной компании Adobe. Неудивительно, что и небезызвестная Microsoft включилась в эту софтварную гонку, правда, уже ближе к концу 80-х. Разработанный ею интерфейс GDI (Graphics Device Interface) используется в Windows для вывода текстовой и графической информации на принтеры и мониторы по сей день.
Вот так через краткий экскурс в историю мы наметили основной курс нашего материала, а в частностях стоит разобраться поподробнее, дабы исключить всякого рода языковые барьеры между пользователем и его печатающим устройством.
PostScript
Фактически это не просто язык описания страниц (то есть набор каких-то кодов сродни алфавиту), а целый язык программирования с типичными командами (циклы, операторы, структуры данных), посредством которого можно писать настоящие программы с неповторимой гибкостью. Именно неповторимой, потому как PostScript (PS) с момента своего появления остаётся почти абсолютным стандартом в области профессиональной печати и допечатной подготовки. Но, несмотря на то что PS предоставляет широкие возможности максимально качественной цветной печати, он не совсем подходит для «рутинной» печати простых текстовых документов ввиду своей невысокой скорости и некоторых других недостатков.
PS отличается от прочих языков полной независимостью от разрешения принтера или плоттера. Команды PS представлены в виде ASCII (American Standard Code for Information Interchange) кодов, потому, к примеру, для вывода особых пользовательских шрифтов они должны быть преобразованы в совместимый с PS векторный формат. При отправке на печать изображение формируется «полистно», именно потому для профессиональной техники так актуальны большие объёмы кэш-памяти.
Популярный графический формат EPS (Encapsulated PostScript) – это своего рода дополнение к PS. Файлы в этом формате могут содержать как векторные, так и растровые элементы, а особая строгая структура, в соответствии с которой данные упорядочиваются внутри документа, позволяет создавать кросс-платформенные исходники для печати.
Изначально PS был стандартом де-факто практически во всех моделях лазерных принтеров класса SOHO, однако в настоящее время он почти не применяется в решениях low-end и middle-end из-за дороговизны лицензирования у Adobe необходимых RIP (Raster Image Processor) контроллеров, встраиваемых в принтеры. К примеру, каждый RIP-контроллер с поддержкой PS Level 3 для плоттеров компании HP обходится примерно в $500.
PCL
В отличие от PS этот язык не может похвастаться полной совместимостью со всеми аппаратно-программными решениями и обладает зависимостью от разрешения печатающего устройства, но в то же время может свободно и совершенно бесплатно использоваться любыми производителями устройств и разработчиками ПО. Последняя версия языка (PCL6), которая разрабатывалась HP в тесном сотрудничестве с Microsoft, характеризуется высокой скоростью преобразования данных из формата прикладного приложения в формат языка описания страниц и обеспечивает ускоренный возврат ответа в приложение, потому идеально подходит для SOHO-сегмента. Также PCL способен работать непосредственно с TrueType-шрифтами, которые применяются по умолчанию в среде Windows.
При использовании PCL показатели скорости и качества печати напрямую зависят от драйвера устройства, потому всякого рода несовместимости аппаратной и программной составляющих значительно влияют на количество ошибок при печати. По этому параметру PCL не может сравниться с универсальным PS. Тем не менее PCL на данный момент является, пожалуй, самым распространённым языком, применяемым в офисной и домашней среде.
GDI
И PS, и PCL подразумевают наличие специального контроллера со стороны принтера, который принимает команды языка описания страниц, а затем преобразует их в бинарные (0/1) коды, управляющие непосредственно самим механизмом печати. Идея GDI состоит в том, чтобы избавить печатающее устройство от дорогостоящего контроллера и переложить его функции на центральный процессор вместе с драйвером. Отсюда же следует первый недостаток GDI: требовательность к системным ресурсам. Этот язык подразумевает конвертацию графической информации и шрифтов в единое растровое изображение, которое затем и отправляется на печать.
Поддержкой исключительно языка GDI обладают лишь самые бюджетные принтеры. В большинстве случаев производители стараются оснастить свои продукты как минимум совместимостью с PCL (не говоря уже о PS) хотя бы через эмуляцию, что, опять же, накладывает определённые требования на ресурсы системы. Также GDI отличается от PS и PCL своими сравнительно скудными возможностями функционирования в рамках локальной сети, а добавить эту опцию можно лишь при помощи дополнительного, далеко не дешёвого сетевого контроллера. Исходя из этого, GDI рекомендуется использовать для индивидуальных домашних нужд.
Резюме
PS и PCL часто называют реальными языками описания страниц, тогда как существуют ещё и своего рода надстройки над ними, которые были созданы для упрощения процесса программирования или реализации дополнительных возможностей. Такие надстройки интерпретируют собственные команды в последовательность команд реального языка описания в соответствии с его синтаксисом. К примеру, надстройка над PCL под названием RPCS (Refined Printing Command Stream) была разработана компанией Ricoh для визуализации программирования своих знаменитых плоттеров посредством графических пиктограмм. При помощи BR-Script фирмы Brother реализуются расширенные функции калибровки цвета, а также эмулируются команды языков PS Level 3 и ESC/P.
Приведём своеобразный рейтинг реальных языков применительно к SOHO-сегменту (чем больше баллов, тем лучше):
PostScript | PCL | GDI | |
Популярность | 2 | 3 | 1 |
Качество печати | 3 | 2 | 1 |
Скорость печати | 2 | 3 | 1 |
Буквально каждая компания-производитель печатающего оборудования, не считая «родоначальников» реальных языков, внедряет в свои продукты оригинальные надстройки со своими специфическими бонусами. Но не стоит забывать о том, что каждый отдельный язык описания страниц лучше всего подходит для определённой сферы деятельности. Бессмысленно покупать принтер без поддержки PCL для офиса, равно как и не обойтись без PS, если вы профессионально работаете с графикой.