ностей выхода в другой, например, и может обеспечить спе-
циальную установку, интерпретируя режимы печати, запрошен-
ные пользователем. Медленные фильтры
-15-67а-
выполняются раздельно демоном для того, чтобы избежать за-
держку принтера. Быстрые фильтры выполняются так, что их
выход идет прямо на принтер, таким образом они могут вли-
ять на управление принтером.
-15-68-
Настройка характеристик порта принтера
Вы должны быть уверены, что характеристики порта принтера,
установленные обслуживанием принтера, соответствуют установкам
коммуникации принтера. Стандартные установки порта принтера
предназначены для работы с типичными файлами UNIX и многими
принтерами, но они не работают со всеми файлами и принтерами. В
действительности это не шаг настройки, так как стандартные
средства обслуживания печати должны позволить вам задать уста-
новки порта для каждого принтера. Однако это важный шаг в обес-
печении работы принтера с обслуживанием печати, поэтому это
описывается далее более подробно.
Когда вы добавляете новый принтер, читайте документацию
для него, чтобы понимать, что он ожидает от главной системы
(обслуживания печати). Далее читайте страницу руководства для
команды stty(C) в документе User's Reference. В ней суммированы
различные характеристики, которые могут быть заданы для терми-
нала или порта принтера.
Только некоторые характеристики, перечисленные на странице
руководства stty(C), важны для принтеров. Те, которые интересны
для вас, перечислены в следующей таблице (но вы должны обра-
щаться к странице руководства stty(C) в других случаях).
Принтеры, соединенные напрямую с компьютерами, и принтеры,
соединенные через сети, требуют, чтобы характеристики порта
принтера устанавливались интерфейсной программой. Эти характе-
ристики определяют коммуникации низкого уровня с принтером. Сю-
да включена скорость передачи, использование управления потоком
XON/XOFF, 7, 8 или другое количество битов на байт, четность,
выходная постобработка. Стандартная интерфейсная программа ис-
пользует команду stty для инициализации порта принтера, мини-
мально устанавливая скорость передачи и другие характеристики
по умолчанию.
Характеристики по умолчанию, используемые стандартной ин-
терфейсной программой, перечислены ниже.
Таблица 15.8
Возможности для stty по умолчанию
По умолчанию Значение
---------------------------------------------------------------------------
9600 скорость передачи 9600
cs8 8-битные байты
-cstopb 1 стоп бит на байт
-15-69-
-parenb нет генерации четности
ixon разрешено управление потоком XON/XOFF
-ixany разрешен только XON для рестарта выхода
opost поток данных постобработки как перечислено ниже?
-oluc не отображайте строчные символы в прописные
onlcr отображение подачи на одну строки в возврат
каретки/подачу на одну строку
-onlcr не отображается возврат каретки в подачу на одну
строку
-nocr выходные возвраты каретки даже с колонки 0
nl0 нет задержки после подачи на одну строку
cr0 нет задержки после возвратов кареток
tab0 нет задержки после табуляций
bs0 нет задержки после возвратов
vt0 нет задержки после вертикальных табуляций
ff0 нет задержки после переводов страницы
Вы можете обнаружить, что характеристики по умолчанию дос-
таточны для ваших принтеров. Однако принтеры сильно различают-
ся, так что может потребоваться задание различных характерис-
тик. Смотрите описание команды stty в документе User's
Reference.
Если у вас имеется принтер, которому необходимы характе-
ристики порта принтера, отличные от тех, которые обрабатываются
программой stty, вам следует настроить интерфейсную программу.
Когда вы добавляете новый принтер, вы можете определить
дополнительный список характеристик порта, который будет ис-
пользоваться при печати каждого файла пользователя. Задаваемый
список будет использоваться после списка по умолчанию, так, что
у вас не будет необходимости включать в ваш список элементы по
умолчанию, которые вы не хотите изменять.
Задайте дополнительный список следующим образом:
Ъ2/usr/lib/lpadmin -p Ъ1printer-name Ъ2-o "stty='Ъ1stty-option-list'"
Ъ2 sysadmsh пользователи выбирают:
Printers-->Configure-->Parameters
(Принтеры-->Конфигурация-->Параметры)
Заметим, что двойные кавычки и одинарные кавычки необходи-
мы, если вы даете более одного элемента в
-15-69а-
stty-option-list. Если вы не включаете характеристики альтерна-
тивного порта принтера, то в таблице будет использоваться спи-
сок по умолчанию.
В качестве примера допустим, что ваш принтер будет исполь-
зоваться для печати графических данных, тогда символы подачи
строки должны быть выходными отдельно без добавления возвра-
та-каретки. Следует ввести следующую команду:
/usr/lib/lpadmin -p printer-name -o "stty=-onlcr"
Заметим, что отдельные кавычки опущены, так как в списке имеет-
ся лишь один элемент.
-15-70-
В другом примере допустим, что ваш принтер требует нечет-
ной четности для данных, которые пересылаются на него. Следует
ввести следующую команду:
Ъ2/usr/lib/lpadmin -p Ъ1printer-name -o "stty='parenb parodd cs7'"
Настройка базы данных terminfo
Обслуживание печати основывается на стандартном интерфейсе
и базе данных terminfo при инициализации каждого принтера и ус-
тановке выбранного размера страницы, шага символов, шага строки
и набора символов. Таким образом, обычно достаточно иметь кор-
ректный элемент в базе данных terminfo для добавления нового
принтера для обслуживания принтера. Несколько элементов для
распространенных принтеров содержатся в элементах базы данных
terminfo с пакетом обслуживания печати.
Каждый принтер идентифицируется в базе данных terminfo ко-
ротким именем. Этот вид имени идентичен виду имени, используе-
мому для установки переменной оболочки TERM, например, AT&T мо-
дели 455 идентифицируется именем.
Если вы не можете найти элемент terminfo для вашего прин-
тера: вам следует добавить его. Если вы не сделаете это, вы мо-
жете еще использовать принтер с обслуживанием печати, но вы не
можете получить автоматический выбор размера страниц, шага и
набора символов и у вас могут возникнуть проблемы при отслежи-
вании набора принтеров в корректных режимах для каждого запроса
печати. Другая возможность, которую можно использовать вместо
обновления элемента terminfo, состоит в настройке интерфейсной
программы, используемой с принтером. Смотрите следующий раздел
для получения сведений о том, как это делать.
Имеются сотни элементов, которые могут быть определены для
каждого терминала или принтера в базе данных terminfo. Однако
обслуживание печати использует менее половины из них, а боль-
шинству принтеров необходимо даже меньшее количество. В таблице
15.9 перечислены элементы, которые необходимо определить (как
подходящие для принтера) для добавления нового принтера к обс-
луживанию печати.
-15-71-
Таблица 15.9
Определение terminfo
Элемент terminfo
---------------------------------------------------------------------------
Булевские
значения
daisy принтер требует, чтобы оператор изменил набор
символов
Числа
bufsz число байтов, буферизуемых перед печатью
cols число колонок в строке
it метки табуляции начально располагаются через
каждый промежуток # пробелов
lines число строк на странице
orc горизонтальное разрешение в единицах на символ
orhi горизонтальное разрешение в единицах на дюйм
orl вертикальное разрешение в единицах на символ
orvi вертикальное разрешение в единицах на дюйм
cps средняя скорость печати в символах в секунду
Строки:
cr возврат каретки
cpi изменение числа символов на дюйм
lpi изменение числа строк на дюйм
chr изменение горизонтального разрешения
cvr изменение вертикального разрешения
csmn список имен набора символов
mgs сброс всех полей (верх, низ и края)
hpa абсолютная горизонтальная позиция
cud1 ниже на одну строку
cuf1 каретка справа
swidm разрешение печати двойной ширины
rwidm отмена печати двойной ширины
ff выдача страницы
is1 строка инициализации принтера
is2 строка инициализации принтера
is3 строка инициализации принтера
if имя файла инициализации
-15-71а-
iprog имя пути программы инициализации
cud пересылка каретки ниже на # строк
cuf пересылка каретки вправо на # столбцов
rep повторение символа # раз
vpa абсолютная вертикальная позиция
-15-72
scs выбор набора символов
smgb задание нижнего поля текущей строки
smgbp задание нижнего поля
smgl задание левого поля для текущей колонки
smglp задание левого поля
smgr задание правого поля для текущей колонки
smgrp задание правого поля
smgt задание верхнего поля текущей строки
smgtp задание верхнего поля
scsd начало определения набора символов
ht символ табуляции для следующего 8-символьного
прекращения табуляции
Обратитесь к странице руководства для получения подробной
информации о структуре файла terminfo(M) в документе User's
Reference и о создании элемента база данных terminfo для нового
принтера.
После того, как вы создали новый элемент, вам нужно компи-
лировать его в новой базе данных с помощью программы tic. Вве-
дите только следующую команду:
Ъ2 tic filename
filename - это имя файла, содержащего элемент terminfo, который
вы создали для нового принтера. (Эта программа имеется в Утили-
тах Информации Терминала).
Примечание
Обслуживание печати LP становиться более эффективным при ис-
пользовании кэш-информации из базы данных terminfo. Если вы
добавляете или удаляете элементы terminfo или изменяете зна-
чения, которые управляют установкой шага, шириной страницы и
длиной или наборами символов, то вам следует остановить и
рестартовать обслуживание печати так, чтобы оно смогло читать
новую информацию.
-15-73-
Как писать интерфейсную программу
Примечание
Если у вас имеется интерфейсная программа, которую вы исполь-
зуете с Утилитами Спулера LP в UNIX Система Y Издание 3.2,
она должна работать также с обслуживанием печати. Заметим,
однако, что несколько возможностей -о стандартизовано и пере-
дается каждой интерфейсной программе. Они могут взаимодейс-
твовать с аналогичным образом именованными возможностями, ко-
торые использует ваша интерфейсная программа.
Если у вас имеется принтер, который не обеспечен простым
добавлением элемента в базу данных terminfo, или же ваши пот-
ребности печати не обеспечены стандартной интерфейсной програм-
мой, вы можете использовать собственную интерфейсную программу.
Имеет смысл начать со стандартной интерфейсной программы и из-
менять ее при необходимости, чем начинать с нуля. Вы можете