[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по принтерам и печати


Глава 2. Работа системных администраторов с принтерами, заданиями печати и очередями печати

В подсистему принтера входят: программа буферизации, физические принтеры, виртуальные принтеры, базовые программы и очереди. Задание печати может быть направлено на принтер, подключенный непосредственно к локальной системе, или отправлено по сети в удаленную систему и напечатано на принтере, подключенном к этой удаленной системе.

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


Процессы печати

При печати файла система направляет коды на принтер. Одни коды служат для печати отдельных символов, например, букв от a до z или цифр от 0 до 9; другие задают формат печатаемого текста, например, подчеркивание или выравнивание текста на странице. Если вы хотите направить на принтер другие символьные коды, например, изменить слово этот на данный, достаточно просто отредактировать файл. Иметь представление о соответствующих этим символам кодах необязательно.

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

Для отправки файла вы можете воспользоваться командой быстрого доступа Web-администратора системы (введите wsm, затем выберите Принтеры), Инструментом управления системой (SMIT) или командой qprt. С помощью Web-администратора системы или SMIT можно также удалить задание печати или изменить его приоритет.

Файл не передается непосредственно на принтер. Web-администратор системы, SMIT или команда qprt вызывают команду enq и помещают запрос на печать в очередь. Запрос на печать находится в очереди до тех пор, пока принтер не станет доступным, после чего команда qdaemon запускает команду piobe (базовую программу обмена информацией с принтером). Команда piobe обрабатывает файл и отправляет его вместе с управляющей информацией на принтер. Поток данных, поступающий на принтер, включает сам файл и управляющую информацию, заданную с помощью команды qprt.

Управление процессом печати

Добавить управляющую информацию в поток данных для принтера можно следующими способами:


Программа буферизации печати

Программа буферизации предназначена не только для обработки заданий печати. Это шаблонная программа буферизации, которая применяется для организации очередей заданий различных типов, включая задания печати.

Программе буферизации неизвестен тип буферизуемого задания. При создании очереди системным администратором ее назначение определяется соответствующей базовой программой буферизации. Например, если базовая программа буферизации - piobe (базовая программа обмена информацией с принтером), то создается очередь печати. Аналогично, если базовая программа буферизации - компилятор, то очередь создается для заданий компилятора. Когда демон программы буферизации qdaemon выбирает задание из очереди, он обрабатывает задание, вызывая базовую программу.

Если сеть содержит как компьютеры базовой операционной системы, так и другие типы клиентов и серверов, то в сети поддерживаются не все удаленные запросы печати. В некоторых случаях необходимо поместить файлы по одному в очередь печати или объединить файлы перед тем, как выполнять их как задание печати.

Основной командой программы буферизации является команда enq. Хотя вы и можете вызывать эту команду непосредственно для помещения задания печати в очередь, для этого существуют еще три команды: lp, lpr и qprt. Запрос на печать, выполняемый одной из этих команд, передается программе enq, которая помещает информацию о файле в очередь для обработки программой qdaemon. Очередь - это каталог /var/spool/lpd/qdir.

Если задание (т.е. вывод команды, передаваемый программе enq) не является файлом, то в каталоге /var/spool/qdaemon создается файл, содержащий данные для печати. Ссылка на него хранится в файле /var/spool/lpd/qdir.


Физические и виртуальные принтеры

Физический принтер - это печатающее устройство, подключенное к последовательному или параллельному порту с уникальным аппаратным адресом. Драйвер принтера в ядре взаимодействует с аппаратным обеспечением принтера и обеспечивает интерфейс связи между аппаратным обеспечением и виртуальным принтером. Физический принтер можно добавить в список принтеров с помощью Web-администратора системы (введите wsm, затем выберите Принтеры) или команды mkdev.

Виртуальный принтер - это набор атрибутов, которые определяют высокоуровневый поток данных (такой, как ASCII или PostScript), интерпретируемый принтером. Этот набор не содержит информации о том, как физический принтер подключен к компьютеру, или о том, какой протокол используется для побайтовой передачи данных на физический принтер или с него.

С каждым виртуальным принтером связана очередь печати. Можно определять очередь печати для каждого потока данных, поддерживаемого принтером. Один и тот же физический принтер может использоваться несколькими очередями печати.

При передаче задания печати на выполнение необходимо прямо или косвенно определить очередь печати. Для того чтобы указать конкретный принтер для задания печати, добавьте к имени очереди печати двоеточие и имя принтера. Если для задания печати принтер не задан, программа буферизации выберет первый доступный принтер, связанный с очередью печати. Если с очередью печати связано несколько принтеров, может быть выбран любой из них.

Например, в случае принтеров IBM Proprinters для каждого физического принтера должна быть определена только одна очередь печати. Это связано с тем, что принтеры Proprinters поддерживают только один поток данных - расширенный ASCII IBM. В то же время, для принтера IBM 4216 Model 031 Personal Pageprinter необходимо задать несколько очередей печати. Можно определить очередь печати для каждого потока данных, поддерживаемого принтером, например, для эмуляций PostScript, Proprinter, HP LaserJet и Diablo 630. Все четыре очереди печати будут связаны с одним и тем же физическим принтером - 4216 Model 031.


Локальные и удаленные принтеры

Локальный принтер - это принтер, подсоединенный к узлу или хосту. Удаленный принтер позволяет печатать узлам, у которых нет своего локального принтера.

Для того чтобы использовать средства удаленной печати, отдельные узлы должны быть подключены к сети Протокола передачи данных/Протокола Internet (TCP/IP) и поддерживать необходимые приложения TCP/IP. Удаленным сервером печати управляет демон lpd; сервером печати может быть назначен любой хост в сети. Для того чтобы удаленный сервер мог принимать запросы на печать от других узлов и хостов, необходимо настроить файл /etc/hosts.lpd или /etc/hosts.equiv. Для настройки сервера печати можно воспользоваться Web-администратором системы (введите wsm, затем выберите Принтеры) или опции SMIT Управлять сервером печати.


Базовые программы принтеров

Базовая программа принтера - это набор программ, которые запускаются командой qdaemon программы буферизации и служат для управления заданием печати, находящимся в очереди печати. Базовые программы принтера выполняют следующие действия:

Команда mkvirprt определяет виртуальный принтер для базовой программы принтера. Для создания настраиваемого набора атрибутов для данного типа принтера создается копия набора предопределенных атрибутов. Список настраиваемых атрибутов можно просмотреть с помощью команды lsvirprt и изменить с помощью команды chvirprt или с помощью Web-администратора системы (введите wsm, затем выберите Устройства) или опции SMIT Изменить/Показать параметры очереди печати. Каждый раз при использовании команды mkvirprt или chvirprt автоматически запускается утилита краткой сводки данных (команда piodigest), которая создает копию содержимого памяти, включая значения атрибутов, и таблицы поиска, которые будут применяться при печати.

Команда qdaemon вызывает команду piobe (администратор заданий печати) и передает ей значения флагов и имена файлов, которые должны быть напечатаны. Не передаются только значения флагов программы буферизации, которые удаляются командой enq. Команда qdaemon уже открыла печатающее устройство и перенаправила стандартный вывод на принтер. Специальный файл состояния обеспечивает взаимодействие между qdaemon и базовой программой.

Если требуется начальная страница, команда piobe считывает конвейер начальной страницы, применяемый для ее создания. Затем этот конвейер передается оболочке. В конвейере стандартный вывод фильтра начальной страницы становится стандартным вводом для фильтра форматирования. Фильтр форматирования обрабатывает начальную страницу и записывает результат в стандартный вывод. Стандартный вывод фильтра форматирования становится стандартным вводом для программы интерфейса драйвера, которая передает отфильтрованную информацию о начальной странице драйверу принтера.


Фильтр форматирования

В зависимости от значения входного параметра, фильтр форматирования выполняет форматирование входного файла или передает его без изменений. Перед выполнением печати файла программа форматирования передает принтеру команды инициализации, а после завершения печати восстанавливает состояние принтера, даже если она не изменяет входной файл.

Драйвер программы форматирования не зависит от устройства. Для каждого типа (или группы типов) входных данных предусмотрена своя программа форматирования. Например, для всех поддерживаемых принтеров Proprinters существует одна программа форматирования.

Фильтр форматирования состоит из двух компонентов:

Драйвер программы форматирования вызывается конвейером, и ему передается имя программы форматирования, которой он будет управлять. Драйвер динамически загружается, подключается к программе форматирования и вызывает функцию программы форматирования setup, которая указывает, форматировать ли данные или передавать их без изменения. После того, как функция программы форматирования setup выполнит необходимые действия, управление вновь передается драйверу. Драйвер вызывает функцию initialize. Эта функция выводит строку команд, предназначенных для инициализации принтера, и возвращает управление драйверу.

Наконец, драйвер вызывает либо функцию passthru, либо функцию lineout для каждой строки файла печати, в зависимости от кода, полученного им от функции setup. Если вызвана функция lineout, драйвер программы форматирования выполняет вертикальную разметку страницы, задавая междустрочный интервал, вертикальную табуляцию, символы перевода строки и верхнее и нижнее поля. С помощью функции lineout устанавливаются только междустрочный интервал и вертикальная табуляция. Остальные функции вертикальной разметки выполняются автоматически.

Закончив обработку файла, драйвер вызывает функцию restore, которая выводит строку команд, предназначенных для восстановления значений атрибутов принтера по умолчанию из базы данных.

Более подробная информация о том, как программа форматирования принтера взаимодействует с процедурами форматирования, содержится в Пример программы форматирования печати.


Терминология печати


Принтер/Графопостроитель Специальный файл в каталоге /dev для устройства. С помощью этого файла можно перенаправить вывод (например, catИмя_файла > /dev/lp0). Параметры драйвера устройства можно просмотреть и изменить из окна Устройства Web-администратора системы (введите wsm, затем выберите Devices) или команд lsdev и chdev. Перед тем, как вводить команду для печатающего устройства, необходимо создать для этого устройства очередь печати или задать его конфигурацию в базовой программе принтера в файле /etc/qconfig.
Виртуальный принтер Пара, состоящая из очереди и связанного с ней устройства, указанных в файле /etc/qconfig. В каталоге /var/spool/lpd/pio/@local/ddi находится соответствующий файл с данными для форматирования. Если для добавления принтера используется SMIT, система автоматически создает очередь принтера, связанное с ней устройство и файл /var/spool/lpd/pio/@local/ddi.

Создать очередь и связанное с ней устройство для принтера с базовой программой piobe можно с помощью Web-администратора системы (введите wsm, затем выберите Устройства). Если необходима совместная загрузка, добавьте к существующей очереди второе устройство. Вы можете также воспользоваться командой SMIT.

Очередь Строка или список элементов в файле /etc/qconfig, в котором каждому имени явно ставится в соответствие связанное с ним устройство. Например:

lp0:   device = lp0

Обычно очереди создаются с помощью Web-администратора системы.

Устройство, связанное с очередью Устройство, связанное с очередью, - это строка или список элементов в файле /etc/qconfig, обычно следующие за именем локальной очереди. Оно определяет применяемые файл /dev (печатающее устройство) и базовую программу. Например:

lp0:
   file = /dev/lp0
   header = never
   trailer = never
   access = both
   backend = /usr/lib/lpd/piobe

С одной и той же очередью может быть связано несколько устройств.

При добавлении принтера с помощью Web-администратора системы (введите wsm, затем выберите Устройства) для существующей очереди создается стандартная запись устройства.

Примечание: В случае удаленного принтера, в /etc/qconfig не будет записи о файле. Очередь будет направлять файл прямо на сервер.
qdaemon
                           qdaemon - это процесс, который запускается в фоновом режиме. qdaemon запускается командой startsrc при включении системы. startsrc - это команда демона srcmstr, который запускается из /etc/inittab.

Программа qdaemon отслеживает поступление запросов на печать в каталог /var/spool/lpd/qdir и обеспечивает отправку заданий на соответствующий принтер в нужное время. Она также следит за состоянием принтеров и сохраняет информацию об использовании принтеров в целях системного учета (например, для команд lpstat и enq -A). Эта информация хранится в каталоге /var/spool/lpd/stat.

Если процесс qdaemon прекратил работу, его можно запустить повторно с помощью srcmstr.

Примечание: Не завершайте процесс srcmstr; он управляет другими демонами, запущенными в системе.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]