Компоненты сетевой печати:
- стандарты (RFC1179 для lpd)
- принтер
- сетевая карта принтера (м.б. встроенная в принтер)
- локальная сеть
- bootp-сервер (/etc/bootptab)
- tftp-сервер (/tftpboot/имя-файла-из-bootptab, в который совершенно необходимо вписать список хостов, с которых разрешена печать, а то хакеры всю бумагу изведут :)
- lp-сервер
- шрифты
- преобразователи форматов (если выходной формат прикладной программы не соответствует формату принтера)
- прикладные программы
- ПО администратора
Разберем на конкретном примере: у нас имеется принтер HP LJ 4P без шрифтов, PS и сетевой карты. К параллельному порту подключен HP JetDirect EX (HP J2382B), который воткнут в локальную сеть ethernet. К несчастью, это очень старое устройство, которое не поддерживает lpd. Софт от HP делает SNMP (udp/161) запрос к JetDirect, на который он рассказывает об открытых портах: tcp/9099 и tcp/9100. Наивный linux (стандартный BSD lpr из RedHat 6.0) безуспешно пытается обратиться к lpd (tcp/515). Приходится устанавливать LPRng.
LPRng
Ссылки:
- разработчик
Представляет собой улучшенную реализация спулера печати lpr/lpd из Unix BSD. Умеет также имитировать поведение lp/lpstat из SystemV.
Наткнувшись на netcat, решивший все мои текущие проблемы (мне всего-то надо раз в день напечатать текстовый или PS-файл), я бросил изучение LPRng.
Sergey E. Bogomolov