Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Особенности организации вывода на принтеры (языки описания страниц).

Особенности организации вывода на принтеры (языки описания страниц).

Компания Epson еще в 70-х годах прошлого века придумала язык ESC/P (Epson Standard Code for Printers), который и по сей день поддерживается некоторыми другими производителями в офисно-ориентированных устройствах вывода посредством режима эмуляции. А еще в 1981 году, IBM представила свою версию языка описания страниц под названием PPDS (Personal Printer Data Stream). Фирма HP, примерно в это же время, предложила язык описания страниц PCL (Printer Command Language), который использовался в первых ударных и струйных принтерах. В 1984 году впервые был представлен публике PostScript (PS), который базировался на свободных исходниках Xerox и был создан силами тогда только что основанной компании Adobe.

Фирма Microsoft тоже приняла участие в разработке языков описания страниц (это было ближе к концу 80-х). Разработанный ею интерфейс GDI (Graphics Device Interface) используется в Windows для вывода текстовой и графической информации на принтеры и мониторы по сей день. Разработчики Windows для упрощения проблем с драйверами создали между программным обеспечением и принтерами интерфейс, не зависящий от конкретного типа принтера (рис. 1). Идея GDI состоит в том, чтобы избавить печатающее устройство от дорогостоящего контроллера и переложить его функции на центральный процессор вместе с драйвером. Отсюда же следует первый недостаток GDI: требовательность к системным ресурсам. Этот язык подразумевает конвертацию графической информации и шрифтов в единое растровое изображение, которое затем и отправляется на печать. Поддержкой исключительно языка GDI обладают лишь самые бюджетные принтеры. В большинстве случаев производители стараются оснастить свои продукты как минимум совместимостью с PCL (не говоря уже о PS) хотя бы через эмуляцию, что, опять же, накладывает определённые требования к ресурсам системы. GDI отличает и сравнительно скудные возможности функционирования в рамках локальной сети, а добавить эту опцию можно лишь при помощи дополнительного, далеко не дешёвого сетевого контроллера. Поэтому принтеры GDI рекомендуют использовать для индивидуальных домашних нужд.

GDI является подсистемой Windows, используемой программами для рисования графических изображений на экране. GDI позволяет рисовать на экране, принтере, графопостроителе или на других устройствах отображения с помощью драйверов. Главное в работе GDI - сделать программы в меру независимыми от реальной аппаратуры. В простых операционных системах типа MSDOS, программы должны были подключать свои собственные драйверы устройств. Всякий раз с появлением нового поколения аппаратных средств программное обеспечение либо получало новые драйверы, либо устаревало. С помощью GDI набор драйверов для аппаратуры обновляет прикладные программы. Интерфейс GDI выполняет и другую важную функцию. Он определяет набор операций, которые программа может выполнять. GDI поддерживает следующие операции рисования:

- установку определенного цвета в конкретном пикселе;

- рисование линии с учетом характеристик толщины, шаблона, цвета и стиля кисти;

- рисование дуги;

- рисование эллипса (окружности);

- рисование прямоугольника, прямоугольника со скругленными углами или многоугольника;

- рисование замкнутых фигур, заполненных сплошным цветом или шаблоном;

- рисование текста с указанным шрифтом, цветом и размером;

- перемещение прямоугольника по экрану, возможно, с изменением размеров;

- ограничение операций рисования или операций перемещения в определенной области, чтобы не затрагивать изображение за пределами этой области.

Поэтому команды рисования, представленные простейшими рисующими программами, например, такими как входящая в Windows программа Paintbrush, в основном отражают функции GDI. Более сложные рисующие программы, например CorelDRAW, выполняют команды, реализующие более сложные операции типа закрашивания (заливки) фонтаном и рисования сложных кривых и т. п.

Под управлением Windows прикладные программы печатают страницу, используя тот же интерфейс графических устройств (GDI), что и для рисования на экране монитора. GDI посылает команды драйверу принтера, который транслирует их в понятный принтеру язык и с помощью драйвера коммуникационного порта посылает принтеру. Из-за сложности взаимодействия программ и интерфейса GDI проектировщики принтеров вынуждены были усложнять конструкции принтеров. Если бы битовый образ всей страницы составлялся непосредственно центральным процессором, то процесс печати резко замедлился бы из-за пересылки принтеру очень большого объема данных для каждой страницы даже при обработке самого простого текста (особенно при печати в сети). Разработчики поступили иначе – они переложили все, что связано с обработкой растрового изображения, на процессор принтера, но для этого пришлось использовать язык для описания сложных задач, выполняемых интерфейсом GDI.

Первый этап интерпретации данных выполняет собственно программа, отправляющая задание на печать. В Windows любое приложение описывает изображение с помощью стандартного набора команд GDI (модуль Windows, интерпретирующий свои универсальные команды печати в инструкции, понятные драйверам различных устройств ввода-вывода, например, драйверу принтера). В своей работе GDI может пользоваться файлом-буфером в формате EMF или RAW - первый обеспечивает чуть большую производительность и занимает меньше места на диске, второй имеет смысл выбирать лишь при возникновении проблем с печатью (сделать это можно в «Свойствах принтера»). Далее инструкции подхватывает драйвер, алгоритм его работы напрямую зависит от используемого принтером языка описания объектов печати.

Рис. 1. «Программный» GDI-принтер.

Так называемые GDI-принтеры (рис. 1) обитают в низу принтерной иерархии, их легко узнать по чисто символическому объему памяти, как правило, без возможности наращивания. Работают они только под Windows, и всю рутину по преобразованию объектов в стройные шеренги пикселов (образ страницы) выполняет драйвер при поддержке центрального процессора. Что, впрочем, не бог весть как напрягает последний, ведь недорогие принтеры (к ним преимущественно и относятся GDI-модели) работают не быстро и в мощном входном потоке не нуждаются. Для таких принтеров нет ничего страшного в том, что часть страницы не уместится в памяти, в этом случае организуется динамическая подкачка данных во время печати (фактически собственная память принтера служит лишь сглаживающим буфером, на случай временного захвата центрального процессора ресурсоемким заданием).

Языкописаниястраниц PCL (от англ. Printer Command Language) — язык управления принтером разработанный компанией Hewlett-Packard. В первой версии это был просто набор команд для печати ASCII-символов, теперь же, в версиях PCL6 и PCL-X стало возможным печатать в цвете, а также печатать изображения, но вне Microsoft Windows и HP-UX этот язык редко используется.

Язык описания страниц PCL разработан фирмой Hewlett Packard для использования в принтерах собственного производства. В настоящее время язык PCL стал стандартом, который эмулируют многие производители.

К следующему, и самому многочисленному классу принтеров относятся модели, «обученные» языку PCL (Printer Control Language). Этот язык разработала компания Hewlett-Packard для своих струйных DeskJet и лазерных LaserJet, но он оказался очень удачным компромиссом между полностью «программными» моделями и дорогими PostScript-принтерами и был поддержан большинством производителей. В зависимости от версии PCL растеризацией может заниматься как драйвер (PCL 3), так и процессор принтера (современные версии - PCL 5 и PCL 6). PCL-принтеры обычно имеют буфер памяти объемом до 8–16 Мбайт, чего вполне хватает даже для печати сложных документов в разрешении до 1200 dpi, поскольку язык PCL весьма экономичен. Преимущество перед программной растеризацией имеется даже при печати исходно растровых изображений, поскольку в PCL предусмотрен эффективный алгоритм компрессии, ускоряющий передачу данных (рис. 2).

 

Рис. 2. Принтер с поддержкой языков PCL и/или PostScript.

Поток данных языка PCL, кроме текста, который необходимо напечатать, содержит множество команд, предназначенных для управления принтером:

1.Управляющие коды. Стандартные коды ASCII, которые представляют собой функцию (например, возврат каретки (CR) или перевод строки (LF)), а не символы.

2. Команды PCL. В основном состоят из последовательности esc-кодов, которые используются в матричных принтерах. Эти команды составляют значительную часть управляющего кода PCL-файла и включают специфичные для каждого принтера эквиваленты параметров документа (например, форматирование страницы и используемый шрифт).

3. Команды HP-GL/2 (Hewlett Packard Graphics Language - язык графики Hewlett Packard). Служат для печати векторной графики составного документа. Они состоят из двухбуквенных мнемоник и одного параметра (или нескольких), определяющего процесс выполнения команды принтером.

4. Команды PJL (Printer Job Language - язык выполнения печати). Позволяют принтеру "общаться" с компьютером по двунаправленной линии для обмена информацией о состоянии, процессе печати и других параметрах.

Язык PCL совершенствовался с развитием возможностей принтеров. Первые версии языка (1 и 2) применялись в струйных и портативных принтерах Hewlett Packard в начале 80-х годов и не содержали языка описания страниц. В первой модели лазерного принтера LaserJet, выпущенной в 1984 году, уже использовался язык PCL 3, а последние модели лазерных принтеров поддерживают PCL 6. В табл. 1 приведены различные версии языка PCL и возможности, которые добавлялись при использовании этой версии языка в лазерных принтерах фирмы Hewlett Packard.

Таблица 1

Версия

Преимущества

PCL3

Полное форматирование страницы; векторная графика

PCL 4

Дополнительные шрифты; загружаемые макросы; поддержка растровых шрифтов и графики

PCL4e

Сжатые растровые шрифты; изображения

PCL 5

Масштабируемые шрифты; векторные шрифты; векторная графика

PCL

Поддержка разрешения 600 dpi; двунаправленный обмен данными между принтером и компьютером; дополнительные шрифты для Microsoft Windows

PCL 5с

Поддержкацвета

PCL 6

Быстрая печать графики и возврат управления приложению

PCL XL

 

Расширенные команды печати графики; многостраничная печать на одном листе; печать водяных знаков; печать малых размеров шрифтов

Версия языка (PCL6), которая разрабатывалась HP в тесном сотрудничестве с Microsoft, характеризуется высокой скоростью преобразования данных из формата прикладного приложения в формат языка описания страниц и обеспечивает ускоренный возврат ответа в приложение, потому идеально подходит для SOHO-сегмента. Также PCL способен работать непосредственно с TrueType-шрифтами, которые применяются по умолчанию в среде Windows. PCL-принтеры снабжаются некоторым набором TrueType-шрифтов, которые «зашиваются» во внутреннюю память устройства. При печати драйвер напрямую передаёт текст на контроллер принтера, минуя стадию преобразования в изображение (рендеринг шрифта), за счёт чего повышается быстродействие печати. При использовании PCL показатели скорости и качества печати напрямую зависят от драйвера устройства, потому всякого рода несовместимости аппаратной и программной составляющих значительно влияют на количество ошибок при печати. По этому параметру PCL не может сравниться с универсальным PS. Тем не менее PCL на данный момент является, пожалуй, самым распространённым языком, применяемым в офисной и домашней среде.

Язык описания страниц PostScript. Ряд фирм для описания страниц используют аппаратно-независимые языки. В первую очередь, это Adobe PostScript, сюда также можно отнести совместимый с ним язык Kyocera KPDL. Идея «постскрипта» проста и понятна - сделать так, чтобы распечатки одного и того же документа, выполненные на разных принтерах, выглядели бы идентично. Никаких других преимуществ и добавочной функциональности PostScript не несет (напротив, он практически не дает возможности отрегулировать качество изображения из драйвера), а в части объемов захватываемых ресурсов существенно превосходит PCL. Перед печатью каждой страницы все относящиеся к ней данные должны полностью уместиться в памяти принтера, кроме того, должна остаться свободная память для преобразований, иначе распечатка будет обрезана или искажена. Поэтому даже имея PostScript-принтер, особенно подключенный к локальной сети, имеет смысл установить и по умолчанию использовать PCL-драйвер, обращаясь к «постскрипту» лишь в случаях, когда требуется особая точность воспроизведения электронного документа на бумаге. Благо практически всегда такие принтеры опознаются системой двояко, с установкой двух драйверов - PS и PCL.

PostScript это не просто язык описания страниц, а целый язык программирования с типичными командами (циклы, операторы, структуры данных), посредством которого можно писать настоящие программы с максимальной гибкостью. PostScript (PS) с момента своего появления остаётся почти абсолютным стандартом в области профессиональной печати и допечатной подготовки. Но, несмотря на то что PS предоставляет широкие возможности максимально качественной цветной печати, он не совсем подходит для «рутинной» печати простых текстовых документов ввиду своей невысокой скорости и некоторых других недостатков. Первые версии языка PostScript уже обладали такими возможностями, как масштабируемые шрифты и поддержка векторной графики ( в язык PCL эти возможности были добавлены относительно недавно). PostScript остается в настоящее время промышленным стандартом для настольных издательских систем и графических программ. Фирма Adobe лицензировала язык PostScript многим производителям принтеров и фотонаборного оборудования, широко используемого в допечатной подготовке газет, журналов, книг и другой печатной продукции. В отличие от PCL, язык PostScript не поддерживает последовательность esc-кодов - он больше похож на стандартный язык программирования.

PostScript называют объектно-ориентированным языком программирования, поскольку на принтер отправляется не изображение, а геометрические объекты. Для того чтобы напечатать текст определенным шрифтом, драйвер принтера должен указать последнему контур шрифта и его размер. Контур шрифта служит шаблоном для создания символов любого размера. Принтер генерирует изображение символа из его контура, а не загружает его из памяти. Этот тип изображения, который генерируется индивидуально для каждой страницы, называется векторной графикой, в отличие т растровой графики, которая отправляется на принтер в виде готового набора точек. (возможность масштабирования шрифтов была добавлена только в PCL 5 в 1990 году).

Pacтpoвый шpифт (bitmap font). Taкиe шpифты мoryт вывoдитьcя нa экpaнe тoлькo в oднoм paзмepe, и oни oптимизиpoвaны для изoбpaжeния имeннo тaкoгo paзмepa. Pacтpoвыe шpифты ceйчac иcпoльзyютcя дoвoльнo peдкo, иx пocтeпeннo вытecняют вeктopныe шpифты.

Beктopный шpифт (outline font). Эти шpифты мoгyт мacштaбиpoвaтьcя дo любoгo paзмepa, ocтaвaяcь peзкими и oтчeтливыми дaжe пpи oчeнь бoльшиx paзмepax. Пepвыe вeктopныe шpифты были coздaны в кoмпaнии Adobe Systems для cиcтeмы PostScript и пoлyчили нaзвaниe Type 1. Пoзжe Apple coвмecтнo c Microsoft paзpaбoтaли фopмaт TrueType, кoтopый нaшeл пpимeнeниe в oпepaциoнныx cиcтeмax Windows и Mac OS. Hoвый тип вeктopнoгo шpифтa, пpeдcтaвлeнный в Windows 2000 и нaзывaeмый OpenType, вoбpaл в ceбя cвoйcтвa кaк шpифтoв типa Type 1, тaк и TrueType.

При использовании контуров процесс печати шрифтов упрощается. Большинство принтеров содержат встроенные шрифты любого размера, а растровые шрифты должны быть загружены в принтер из компьютера. Различие между векторными и растровыми объектами можно заметить в напечатанном образце. Поскольку векторное изображение генерируется в принтере, его качество определяется возможностями принтера. Векторное изображение, напечатанное на принтере с разрешением 600 dpi, выглядит намного лучше, чем аналогичное изображение, напечатанное на принтере с разрешением 300 dpi.

Большинство PostSript-принтеров поставляются с коллекцией из 39 основных встроенных шрифтов, но можно приобрести дополнительные шрифты или целые коллекции. После покупки контурных шрифтов PostScript Type 1 для работы понадобится программа Adobe Type Manager, с помощью которой можно загружать необходимые для печати документов шрифты в принтер. Существует еще одна распространенная технология масштабируемых шрифтов - TrueType. Появившаяся через шесть лет после создания PostScript, эта технология представляет собой результат совместной работы фирм Apple и Microsoft. Обе фирмы желали интегрировать средства управления масштабируемыми шрифтами типа PostScript в собственные операционные системы и не собирались отдавать фирме Adobe такой важный элемент операционной системы. Несмотря на существующие различия в формировании контуров шрифтов, технологии PostScript и TrueType функционируют одинаково. Основное преимущество технологии TrueType состоит в том, что она уже встроена в операционные системы Windows и Macintosh; кроме того, для работы со шрифтами не нужно приобретать дополнительное программное обеспечение, наподобие Adobe Type Manager. Многие производители шрифтов выпускают свои продукты в обеих версиях - PostScript и TrueType, а существующие между ними различия практически незаметны. Многие производители принтеров встраивают в свои модели коллекцию шрифтов TrueType, которые через операционную систему становятся доступными для приложений. Вы можете получить комплекты шрифтов при покупке принтера, сканера или графического пакета.

Первые модификации языка PostScript отражали развитие возможностей лазерных принтеров фирмы Apple. Незначительные модификации языка легли в основу версии PostScript Level 2. А в 1997 году появилась следующая версия - PostScript Level 3. В обновленных версиях языка PostScript поддерживается большая производительность PostScript-принтеров, а также реализована возможность использования большего объема установленной памяти принтера и нескольких лотков с бумагой. PostScript хорошо продуман изначально и обладает всеми необходимыми свойствами еще со дня своего появления. Все его существующие версии остаются обратно совестимыми. Для использования принтера в процессе допечатной подготовки, несомненно надо использовать принтер с поддержкой языка PostScript, поскольку он является стандартом в издательском мире. Удобно использовать PostScript-принтер и для распространения документов в Internet.

Эти различия в способах формирования изображения в растровом формате и PS объясняют приверженность профессионалов к последнему, так как кривую в каждой узловой точке можно свободно менять в соответствии с пользовательскими нуждами. PS выгодно отличается от прочих языков полной независимостью от разрешения принтера или плоттера. Команды PS представлены в виде ASCII (American Standard Code for Information Interchange) кодов, поэтому для вывода особых пользовательских шрифтов они должны быть преобразованы в совместимый с PS векторный формат. При отправке на печать изображение формируется «полистно», именно поэтому для профессиональной техники так актуальны большие объёмы кэш-памяти (1-, 2-, 4- и 8-битная монохромная картинка в PS значительно различаются по качеству изображения, но чем выше качество, тем больший объем памяти нужен для ее создания). Своего рода дополнением к PS является популярный графический формат EPS (Encapsulated PostScript). Файлы в этом формате могут содержать как векторные, так и растровые элементы, а особая строгая структура, в соответствии с которой данные упорядочиваются внутри документа, позволяет создавать кросс-платформенные исходники для печати. Изначально PS был стандартом де-факто практически во всех моделях лазерных принтеров класса SOHO, однако в настоящее время он почти не применяется в решениях low-end и middle-end из-за дороговизны лицензирования у фирмы Adobe и RIP (Raster Image Processor) контроллеров, встраиваемых в принтеры (RIP-контроллер с поддержкой PS Level 3 для плоттеров компании HP обходился примерно в $500).


Лицензия