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

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

Жанры

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

Шрифт:

# ЛОКАЛЬНЫЙ 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.

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

Цена предательства

Тамоников Александр
Спецназ
Детективы:
боевики
7.86
рейтинг книги
Цена предательства

Практические основы кулинарного искусства. Краткий популярный курс мясоведения

Игнатьев Михаил
Дом и Семья:
кулинария
6.25
рейтинг книги
Практические основы кулинарного искусства. Краткий популярный курс мясоведения

Искатель Смерти

Грин Саймон
1. Охотник за смертью
Фантастика:
героическая фантастика
6.20
рейтинг книги
Искатель Смерти

Эпоха Опустошителя. Том II

Павлов Вел
2. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том II

Неучтенный элемент. Том 12

NikL
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 12

Современный польский детектив

Хмелевская Иоанна
Детективы:
прочие детективы
иронические детективы
5.00
рейтинг книги
Современный польский детектив

«О» - значит омут

Графтон Сью
Кинси Милхоун
Детективы:
крутой детектив
5.00
рейтинг книги
«О» - значит омут

Ледяное озеро

Эдмондсон Элизабет
Проза:
современная проза
семейный роман
8.67
рейтинг книги
Ледяное озеро

Интернет-журнал "Домашняя лаборатория", 2008 №2

Журнал «Домашняя лаборатория»
Дом и Семья:
хобби и ремесла
сделай сам
5.00
рейтинг книги
Интернет-журнал Домашняя лаборатория, 2008 №2

Магнатъ

Кулаков Алексей Иванович
4. Александр Агренев
Приключения:
исторические приключения
8.83
рейтинг книги
Магнатъ

Созвездие Козлотура

Искандер Фазиль Абдулович
Проза:
советская классическая проза
6.33
рейтинг книги
Созвездие Козлотура

Окопники

Коллектив авторов
Проза:
военная проза
5.00
рейтинг книги
Окопники

Русские горки. Конец Российского государства

Калюжный Дмитрий Витальевич
Великие противостояния
Научно-образовательная:
история
политика
6.00
рейтинг книги
Русские горки. Конец Российского государства

Кристалл Альвандера. Корабль Альвандера.Дилогия

Садов Сергей Александрович
Фантастика:
боевая фантастика
8.38
рейтинг книги
Кристалл Альвандера. Корабль Альвандера.Дилогия