Печать в Linux

Денис Колисниченко

Подключение принтера

Прежде всего нужно подключить принтер. Я имею в виду добавить устройство в систему, а не подключить его к порту :) В большинстве случаев принтер подключается к единственному параллельному порту, но теоретически IBM PC может поддерживать 4 порта принтера - в DOS это LPT1-LPT4, в Linux - /dev/lp0-/dev/lp3

Убедимся, что устройство (порт) есть в вашей машине
ls -l /dev/lp0
crw-rw---- 1 root  lp 6, 0 Сен 27 2000 /dev/lp0

Можно вывести текущий каталог на печать ls -l > /dev/lp0 Если все в порядке, на печать будет выведена лесенка


Line1
     Line2
          Line3

Дело в том, что принтеры, ориентированые для работы в ДОС, требуют для завершения строки 2 команды - возврат каретки CR(13) и перевод строки LF(10). Традиционно UNIX обходится одним LF. Исправлением данного неприятного эффекта займемся позже.

Поддержка принтера ядром Linux

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

  1. необходимо включить поддержку принтера (printer support)
  2. включить поддержку сети (network support), даже если вы не будете использовать сеть
  3. отключить поддержку параллельного IP-интерфейса (PLIP)
  4. отключить поддержку lomega Zip drive для параллельного порта

Управление принтером

Сегодня в дистрибутивах Linux можно встретить три основные реализации системы печати: BSD-lpr, LPRNG, CUPS (Mandrake) Рассмотрим традиционный вариант BSD-lpr. В состав BSD-lpr входят
lpd - демон печати. Запускается при старте системы
lpr - программа постановки заданий в очередь печати
lprm - программа удаления заданий
lpq - просмотр очереди печати
lpc - диалоговая программа управления состоянием принтера

Процесс печати происходит следующем образом: программа lpr файл (или поток) помещает в очередь заданий. Очередь заданий - это обыкновенный каталог, обычно /var/spool/lp/lp0 Программа lpd просматривает содержимое очереди и, если находит задание, пытается его напечатать. Демон печати (lpd) анализирует содержимое файла /etc/printcap и выбирает одну из записей, которая соответствует текущему режиму работы принтера, в нем (/etc/printcap) также содержится информация об именах фильтров печати. Более подробно о формате printcap см справку man printcap

Печать с помощью lpr
lpr [-Pprinter] file

Например, если хотите распечатать файл ~/report на принтере lp0 выполните команду
lpr -Plp0 ~/report

Настройка принтера в Mandrake и RedHat

Запустите DrakeConf (Mandrake) или control-panel (RH) и выберите Настройка принтера

Нажмите на кнопку Добавить
Выбираем тип соединения и устанавливаем его параметры (порт LPT1 в DOS соответствует устройству /dev/lp0 в Linux) Затем нужно указать драйвер (тип) принтера
Затем нажимаете на кнопку Готово. Все - принтер установлен. В RH еще нужно включить режим Исправлять ступенчатую печать и выбрать фильтр-преобразователь.

На этом установка принтера завершена.

Проблемы с русификацией

При печати из некоторых приложений (например, StarOffice, Netscape) вместо русских букв вы можете созерцать какие-то иероглифы. Не вдаваясь в подробности, нужно сделать следующее

  1.  Скачать русские шрифты
  2.  Отредактировать Fontmap


Шрифты нужно скопировать в каталог /usr/share/fonts/default/ghostscript (это зависит от дистрибутива и версии ghostscript - см документацию) Затем правим файл Fontmap. У меня он находится в том же каталоге (точнее ссылка на него) Нужно закомментировать ссылки на старые русские шрифты и прописать новые, а также закомментировать шрифт Courier. В конец файла допишите строки
/ArialCyrMT (arial8.pfb);
/Arial       /ArialCyrMT ;
/Helvetica   /ArialCyrMT ;
/CourierCyrPS (cour8.pfb) ;
/Courier      /CourierCyrPS ;
/CourierCyrPS-Bold (courbd8.pfb) ;
/Courier-Bold /CourierCyrPS-Bold ;
/CourierCyrPS-Inclined (couri8.pfb) ;
/Courier-Inclined /CourierCyrPS-Inclined ;
/CourierCyrPS-BoldInclined (courbi8.pfb) ;
/Courier-BoldInclined /CourierCyrPS-BoldInclined ;
/Courier-BoldIOblique /CourierCyrPS-BoldInclined ;

Можно также прописать и другие шрифты (Times, ERKurier), но я этого здесь делать не буду -  думаю формат Fontmap понятен и сможете сделать это сами.


Cчетчик Linux coutner
Hosted by uCoz