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

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


Общие сведения о базовой программе принтера для программирования

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

Базовая программа принтера поддерживает все принтеры, установленные в предопределенной базе данных Администратора объектных данных (ODM). Вы можете настроить базовую программу принтера для поддержки администрирования подсистемы печати. Дополнительная информация приведена в Глава 2, Работа системных администраторов с принтерами, заданиями печати и очередями печати. Вы можете также изменять базовую программу принтера, добавляя неподдерживаемые принтеры и таблицы кодовых страниц национальных языков (NLS).

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

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

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

Вендоры могут настроить базовую программу принтера для специальных целей.

Поток данных базовой программы принтера

Основная задача базовой программы - отправка символов на устройство, как правило, на принтер. Базовая программа принтера вызывается один раз при печати файла или группы файлов, причем имя каждого файла передается ей как параметр. Базовая программа открывает файл, читает его и отправляет на устройство. Рекомендуемый способ работы с базовой программой - запись в ее стандартный вывод, при этом процесс qdaemon должен открывать устройство для правильного дескриптора файла. Для этого необходимо определить поле file в файле qconfig.

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

При запуске базовой программы она получает доступ к пользовательской среде. Для того чтобы получить доступ к пользовательской среде, базовая программа может вызывать подпрограмму getenv. Например, чтобы получить доступ к каталогу пользователя, getenv(PWD) возвращает указатель на имя каталога. Базовая программа может пользоваться этим для чтения и записи в данный каталог.

Если базовая программа осуществляет запись в свой стандартный вывод, qdaemon открывает устройство в режиме пользователя root. Если базовой программе необходимо самой открыть это устройство, у нее должна быть соответствующие права доступа. Поскольку базовая программа запускается с правами доступа пользователя, отправляющего задание на печать, вам может потребоваться изменить защиту устройства или установить опции базовой программы set-user-ID или set-group-ID.

По умолчанию stdin, stdout и stderr открываются как пустое устройство (/dev/null), хотя можно переопределить значения stdout (и, возможно, stdin) с помощью полей file и access в файле qconfig.


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