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

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

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


Как готовится страница для печати на принтере.

Как готовится страница для печати на принтере.

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

                Первый этап интерпретации данных выполняет собственно программа, отправляющая задание на печать. В Windows любое приложение описывает изображение с помощью стандартного набора команд GDI (модуль Windows, интерпретирующий свои универсальные команды печати в инструкции, понятные драйверам различных устройств ввода-вывода, например, драйверу принтера). В своей работе GDI может пользоваться файлом-буфером в формате EMF или RAW (первый обеспечивает чуть большую производительность и занимает меньше места на диске, второй имеет смысл выбирать лишь при возникновении проблем с печатью - сделать это можно в "Свойствах принтера"). Далее инструкции подхватывает драйвер, алгоритм его работы напрямую зависит от используемого принтером языка описания объектов печати.
                Так называемые GDI-принтеры работают только под Windows, и всю рутину по преобразованию объектов в группы пикселов (образ страницы) выполняет драйвер при поддержке центрального процессора. Это не очень сильно нагружает процессор, ведь недорогие принтеры (к ним преимущественно и относятся GDI-модели) работают не быстро и в мощном входном потоке не нуждаются. Для таких принтеров не существенно, что часть страницы не уместится в памяти. В этом случае организуется динамическая подкачка данных во время печати (фактически собственная память принтера служит лишь сглаживающим буфером, на случай временного захвата центрального процессора ресурсоемким заданием).
                К следующему, и самому многочисленному классу принтеров относятся модели, поддерживающие язык PCL (Printer Control Language). Этот язык разработала компания Hewlett-Packard для своих струйных DeskJet и лазерных LaserJet, но он оказался очень удачным компромиссом между полностью "программными" моделями и дорогими PostScript-принтерами и был поддержан большинством производителей.

                В зависимости от версии PCL растеризацией может заниматься как драйвер (PCL 3), так и процессор принтера на плате форматера (версии - PCL 5, PCL 6 и далее). PCL-принтеры обычно имеют буфер памяти объемом до 8-16 Мбайт, чего вполне хватает даже для печати сложных документов в разрешении до 1200 dpi, поскольку язык PCL весьма экономичен. Преимущество перед программной растеризацией имеется даже при печати исходно растровых изображений, поскольку в PCL предусмотрен эффективный алгоритм компрессии, ускоряющий передачу данных.
                Язык описания страниц PCL был разработан фирмой Hewlett Packard для использования в принтерах собственного производства. В настоящее время язык PCL стал стандартом, который эмулируют многие производители. Поток данных языка PCL, кроме текста, который необходимо напечатать, содержит множество команд, предназначенных для управления принтером. Язык PCL совершенствовался с развитием возможностей принтеров. Первые версии языка (1 и 2) применялись в струйных и портативных принтерах Hewlett Packard и не содержали языка описания страниц. В первой модели лазерного принтера LaserJet, выпущенной еще в 1984 году, использовался язык PCL 3, а последние модели лазерных принтеров поддерживают с PCL 6 и далее. В различные версии языка PCL добавлялись новые возможности, которые в лазерных принтерах фирмы Hewlett Packard. Версия языка (PCL6), которая разрабатывалась HP в тесном сотрудничестве с Microsoft, характеризуется высокой скоростью преобразования данных из формата прикладного приложения в формат языка описания страниц и обеспечивает ускоренный возврат ответа в приложение, потому идеально подходит для SOHO-сегмента. Также PCL способен работать непосредственно с TrueType-шрифтами, которые применяются по умолчанию в среде Windows. PCL-принтеры снабжаются некоторым набором TrueType-шрифтов, которые "зашиваются" во внутреннюю память устройства. При печати драйвер напрямую передаёт текст на контроллер принтера, минуя стадию преобразования в изображение (рендеринг шрифта), за счёт чего повышается быстродействие печати. При использовании PCL показатели скорости и качества печати напрямую зависят от драйвера устройства, потому всякого рода несовместимости аппаратной и программной составляющих значительно влияют на количество ошибок при печати. По этому параметру PCL не может сравниться с универсальным PS. Тем не менее, PCL на данный момент является, пожалуй, самым распространённым языком, применяемым в офисной и домашней среде.
                Ряд фирм для описания страниц используют аппаратно-независимые языки. В первую очередь, это Adobe PostScript, сюда также можно отнести совместимый с ним язык Kyocera KPDL. Идея "постскрипта" проста и понятна - сделать так, чтобы распечатки одного и того же документа, выполненные на разных принтерах, выглядели бы идентично. Никаких других преимуществ и добавочной функциональности PostScript не несет (напротив, он практически не дает возможности отрегулировать качество изображения из драйвера), а в части объемов захватываемых ресурсов существенно превосходит PCL. Перед печатью каждой страницы все относящиеся к ней данные должны полностью уместиться в памяти принтера, кроме того, должна остаться свободная память для преобразований, иначе распечатка будет обрезана или искажена. Поэтому, даже имея Post-Script-принтер, особенно подключенный к локальной сети, имеет смысл установить и по умолчанию использовать PCL-драйвер, обращаясь к "постскрипту" лишь в случаях, когда требуется особая точность воспроизведения электронного документа на бумаге. Обычно такие принтеры опознаются системой двояко, с установкой двух драйверов - PS и PCL.
                PostScript - это не просто язык описания страниц, а полноценный язык программирования с типичными командами (циклы, операторы, структуры данных), посредством которого можно писать настоящие программы с максимальной гибкостью. 
                PostScript (PS) с момента своего появления остаётся почти абсолютным стандартом в области профессиональной печати и допечатной подготовки. Но, несмотря на то что PS предоставляет широкие возможности максимально качественной цветной печати, он не совсем подходит для "рутинной" печати простых текстовых документов ввиду своей невысокой скорости и некоторых других недостатков. Первые версии языка PostScript уже обладали такими возможностями, как масштабируемые шрифты и поддержка векторной графики (в язык PCL эти возможности были добавлены относительно недавно). Post-Script остается в настоящее время промышленным стандартом для настольных издательских систем и графических программ. PS выгодно отличается от прочих языков полной независимостью от разрешения принтера или плоттера. 
                Команды PS представлены в виде ASCII (American Standard Code for Information Inter-change) кодов, поэтому для вывода особых пользовательских шрифтов они должны быть преобразованы в совместимый с PS векторный формат. При отправке на печать изображение формируется "полистно", именно поэтому для профессиональной техники так актуальны большие объёмы кэш-памяти (1-, 2-, 4- и 8-битная монохромная картинка в PS значительно различаются по качеству изображения, но чем выше качество, тем больший объем памяти нужен для ее создания). Своего рода дополнением к PS является популярный графический формат EPS (Encapsulated PostScript). Файлы в этом формате могут содержать как векторные, так и растровые элементы, а особая строгая структура, в соответствии с которой данные упорядочиваются внутри документа, позволяет создавать кросс-платформенные исходники для печати. 
                Изначально PS был стандартом де-факто практически во всех моделях лазерных принтеров класса SOHO, однако в настоящее время он почти не применяется в решениях low-end и middle-end из-за дороговизны лицензирования у фирмы Adobe и RIP (Raster Image Processor) контроллеров, встраиваемых в принтеры.
                Скорость работы лазерного принтера и его производительность во многом зависят от блока обработки изображения (форматера данных), который предназначен для обработки цифрового изображения, принятого в его оперативную память. Обработка принятого из компьютера изображения может быть очень сложной. Например, в лазерных принтерах и цифровых копирах часто используются сложные алгоритмы обработки, обеспечивающие повышенное качество печати за счет сглаживания зубчатых и неровных краев при печати шрифтов, слежения за обеспечением высокой четкости печати векторных элементов. Также в этих устройствах иногда выполняется интеллектуальный анализ типа линий, автоматически различаются фотографии, текст и рисунки в пределах одной страницы; в зависимости от характера задания используются разные алгоритмы печати; осуществляется управление размером точки для обеспечения разрешения класса 2400 dpi из реальных 600 dpi путем пошагового (1-16 стадий) горизонтального контроля размера каждой точки и т.д.


Лицензия