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

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

Жанры

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

Шрифт:

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

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

Вкус ледяного поцелуя

Полякова Татьяна Викторовна
2. Ольга Рязанцева
Детективы:
криминальные детективы
9.08
рейтинг книги
Вкус ледяного поцелуя

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Прометей: владыка моря

Рави Ивар
5. Прометей
Фантастика:
фэнтези
5.97
рейтинг книги
Прометей: владыка моря

Попаданка в академии драконов 4

Свадьбина Любовь
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Попаданка в академии драконов 4

(Не)зачёт, Дарья Сергеевна!

Рам Янка
8. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
(Не)зачёт, Дарья Сергеевна!

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

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

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

Случайная жена для лорда Дракона

Волконская Оксана
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Случайная жена для лорда Дракона

Тройняшки не по плану. Идеальный генофонд

Лесневская Вероника
Роковые подмены
Любовные романы:
современные любовные романы
6.80
рейтинг книги
Тройняшки не по плану. Идеальный генофонд

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Гарем на шагоходе. Том 5

Гремлинов Гриша
5. Волк и его волчицы
Фантастика:
боевая фантастика
фэнтези
5.00
рейтинг книги
Гарем на шагоходе. Том 5

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III