Чтение онлайн

на главную - закладки

Жанры

Стахнов Алексей Александрович

Шрифт:

# ЛОКАЛЬНЫЙ deskjet400

lp|dj|deskjet:\

:sd=/var/spool/lpd/dj:\

:mx#0:\

:lp=/dev/lp0:\

:sh:

Вышеприведенная запись определяет принтер с псевдонимами lp, dj или deskjet, его спул печати размещается в каталоге /var/spool/lpd/dj. Отсутствует ограничение максимального размера задания. Печать производится на устройство /dev/lpO и не сопровождается выводом страницы с именем человека, который печатает, добавленной в начало задания печати. Как вы видите – все очень просто. Но, во-первых, извечная проблема текстовых файлов UNIX и Windows – для UNIX в конце текстовой строки достаточно символа перевода строки, для Windows – необходимо наличие символов возврата каретки и перевода строки. Большинство современных принтеров рассчитаны для использования совместно с Windows, и поэтому для нормальной печати текста им также необходимо в конце текстовой строки наличие символов возврата каретки и перевода строки. Если не учесть эту особенность, при распечатке текста на принтере получится приблизительно следующее:

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

Поправим нашу запись в файле /etc/printcap следующим образом:

# ЛОКАЛЬНЫЙ deskjet400

lp|dj|deskjet:\

:sd=/var/spool/lpd/dj:\

:mx#0:\

:lp=/dev/lp0:\

:if=/var/spool/lpd/dj/filter:\

:sh:

В документации к printcap описаны атрибуты принтера if – входной фильтр и of – выходной фильтр. Как видите, мы определили входной фильтр, расположенный в каталоге /var/spool/lpd/dj/ и носящий имя filter. Этот файл представляет собой две строчки, написанные на Perl:

#!/usr/bin/perl

while(<STDIN>){chop $_; print "$_\r\n";};

print "\f";

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

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

Такой фильтр называется магическим фильтром (magic-filter). Существует большое количество магических фильтров, причем наверняка несколько такого типа фильтров находится в вашем дистрибутиве операционной системы. Ниже приведены некоторые магические фильтры печати:

• APSFILTER – фильтр печати для стандартного lpd;

• lprMagic – фильтр печати с неплохими возможностями. Автоматически определяет тип входного документа, есть поддержка печати через Samba.

Учет ресурсов Обычно в больших фирмах принято хранить информацию о том, кто, когда и сколько печатал. Стандартный LPD предоставляет очень небольшую помощь для учета ресурсов. Вы можете указать имя файла для учета ресурсов, используя атрибут af= в printcap, но, по большому счету, это не решение проблемы. Пожалуй, лучший вариант – использовать магический фильтр, который может писать данные в файл учета ресурсов, а вы будете обрабатывать этот файл позже каким-нибудь скриптом обработки статистики.

Программа печати LPRng

Доработанная версия LPD, по всей видимости, скоро станет стандартной во всех дистрибутивах Linux. LPRng более легка для администрирования и имеет значительно лучшие возможности по сравнению с LPD для администрирования большого количества принтеров (в том числе и сетевых). Более безопасна с точки зрения администратора, поддерживает аутентификацию через PGP или Kerberos.

Программный пакет netcat

netcat – простой программный пакет для работы с принтерами. Удобен и прост в настройке, имеет проблемы с сетевой печатью, однако для домашнего пользователя, которому не нужна сеть, – очень неплохой вариант.

Система печати PDQ

PDQ (Print Don\'t Queue, печатать не буферизуя). Это система печати без центрального демона. Она включает возможность объявления настроек печати, а также графическую утилиту и утилиту командной строки для настройки и вывода на печать.

Для управления печатью используются следующие программы:

• Xpdq – приложение для X Windows, которое показывает список доступных принтеров и данные об очереди печати. Вы можете установить настройки вашего драйвера принтера, используя диалоговое окно Driver Options; обычно можно установить параметры двунаправленного соединения, плотность печати, размер и тип бумаги и т. д.;

• Pdq – утилита командной строки. Она может использоваться вместо команды lpr в большинстве случаев. Подобно 1рг, она печатает либо перечисленные файлы, либо данные со стандартного ввода.

Функционирует PDQ следующим образом:

• запускается pdq или xpdq с указанием файла, который необходимо распечатать;

• выбирается принтер;

• определяются параметры печати – двухсторонняя печать, количество копий, качество печати и т. д.;

• программа анализирует содержимое файла, который вы печатаете, и следует инструкциям, записанным в файле драйвера PDQ, которые описывают как обрабатывать ваши данные для печати на данном принтере с заданными параметрами;

• программа посылает обработанные данные на принтер через указанный интерфейс – прямо на /dev/lpO, или сетевому демону LPD, или на факсгейт (специальную программу, на вход которой поступают документы, предназначенные для отправки по факсу. Эта программа при помощи факс-модема дозванивается до нужного абонента и автоматически отправляет факс);

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

Настройка PDQ

PDQ может быть настроена либо администратором, либо обычным пользователем. Администратор для настройки PDQ редактирует файл /etc/printrc, а обычный пользователь может изменять только свой персональный файл. print гс.

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

Интерфейс PDQ описывает то, как данные посылаются на принтер. Ниже приведены некоторые параметры интерфейса:

• local-port – интерфейс локального порта работает с параллельным или последовательным портом на той машине, на которой запущен PDQ. Используя этот интерфейс, PDQ может печатать прямо в параллельный порт;

• bsd-ipd – интерфейс bsd-ipd общается по сети с демоном LPD или с работающим по протоколу LPD сетевым принтером. PDQ поддерживает постановку, отмену заданий и запросы к интерфейсу LPD.

Драйвер PDQ описывает, как перевести выводимые на принтер данные в формат, который понимает принтер. Для принтеров, понимающих PostScript, он будет включать преобразование из ASCII в PostScript; для не-PostScript-принтеров он будет описывать преобразования из PostScript в язык принтера, используя GhostScript.

Для того чтобы определить принтер в PDQ, необходимо запустить xpdq и выбрать команду меню Printer | Add printer . Этот мастер настройки проведет вас через выбор нужного драйвера и интерфейса.

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

Система буферизации печати PPR

PPR – система буферизации печати, ориентированная на PostScript. Она включает в себя хорошие возможности учета, поддержку клиентов Appletalk, SMB и LPD. Система PPR, как и другие перечисленные системы буферизации, может вызывать Ghostscript для работы с принтерами, не понимающими PostScript.

Поделиться:
Популярные книги

Кодекс Охотника XXXI

Винокуров Юрий
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника XXXI

Зург 4: Я из будущего

Поселягин Владимир Геннадьевич
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.40
рейтинг книги
Зург 4: Я из будущего

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Мусорщик - 2. Проводник Теней

Лазарь
2. Хозяин Теней
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Мусорщик - 2. Проводник Теней

Технарь

Муравьёв Константин Николаевич
1. Технарь
Фантастика:
космическая фантастика
попаданцы
7.13
рейтинг книги
Технарь

Белый тигр

Василенко Владимир Сергеевич
4. Хроники Эйдоса
Фантастика:
фэнтези
6.50
рейтинг книги
Белый тигр

Гримуар тёмного лорда I

Грехов Тимофей
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар тёмного лорда I

Фишер. По следу зверя. Настоящая история серийного убийцы

Рогоза Александр
Реальные истории
Документальная литература:
истории из жизни
биографии и мемуары
5.00
рейтинг книги
Фишер. По следу зверя. Настоящая история серийного убийцы

Старшеклассник без клана. Апелляция кибер аутсайдера 2

Афанасьев Семен
2. Старшеклассник без клана. Апелляция аутсайдера
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Старшеклассник без клана. Апелляция кибер аутсайдера 2

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Моя Академия

Листратов Валерий
1. Академка
Фантастика:
попаданцы
сказочная фантастика
фэнтези
4.50
рейтинг книги
Моя Академия

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7