Библиотека сайта rus-linux.net
37. Печать под Linux
В этом разделе обсуждается как печатать файлы, проверять очередь печати, удалять задания из очереди, форматировать файлы до их печати и производить настройку среды печати.
37.1 История Linux Printing
Система печати Linux -- lp система -- это порт исходного кода написанного в Университете Калифорнии для BSD версии операционной системы UNIX.
37.2 Печать файлов используя lpr
Наиболее простой путь для печати в операционной системе Linux это посыл файла
для печати прямо на устройство печати. Для того чтобы сделать это используется команда
cat. Как пользователь root
, наберите что-то подобное этому
# cat thesis.txt > /dev/lp
В этом случае, /dev/lp
это символическая ссылка на устройство
печати --
это может быть матричный или лазерный принтер, typesetter, или плоттер. (См.
ln(1) для более полной информации о символических ссылках)
В целях безопасности, только пользователь root
и пользователи в той же
группе что и демон принтера могут писать прямо на принтер.
Поэтому такие команды как lpr, lprm, and lpq
должны использоваться для доступа к принтеру.
Поэтому пользователи должны использовать lpr для печати файлов. Команда lpr берет на себя заботы о всей начальной работе необходимой для печати файла, и затем передает контроль другой программе, lpd, демону линейной печати. Затем демон линейной печати говорит принтеру как печатать файл.
Когда выполняется команда lpr, она первым делом копирует заданный файл в определенную директорию (spool directory), где файл остается пока lpd печатает его. Когда lpd сообщают, что есть файл для печати, он запускает копию своего процесса (что программисты называют forking). Эта копия процесса будет печатать наш файл в то время как оригинальный процесс будет ждать других запросов. Это позволяет обслуживать много заданий печати в одно время.
Синтаксис lpr(1) очень прост,
$ lpr [ опции ] [ имя_файла ... ]
Если имя_файла
не задано, lpr ожидает ввод данных со
стандартного вводаexpects (обычно клавиатура, или вывод другой
программы). Это позволяет пользователям перенаправлять вывод комманд в очередь
печати. Вот так,
$ cat thesis.txt | lpr
или,
$ pr -l60 thesis.txt | lpr
Команда lpr принимает несколько аргументов командной строки что позволяет пользователям контролировать его работу. Вот некоторые из часто используемых аргументов: -Pprinter определяет какой принтер использовать, -h suppresses printing of the burst page, -s создает символическую ссылку вместо копирования файла в директорию спула (полезно для больших файлов), и -#num определяет количество копий печати. Пример взаимодействия с lpr может выглядеть подобно этому
$ lpr -#2 -sP dj thesis.txt
Эта команда создает символическую ссылку на файл thesis.txt
в
директории спула для принтера названного dj, где он будет
обработан демоном печати lpd. Затем будет напечатана вторая
копия файла thesis.txt
.
Для просмотра всех опций, которые может принимать lpr, смотрите мануал по lpr(1).
37.3 Просмотр очереди печати с помощью lpq
Для просмотра содержимого очереди печати используется команда lpq. Команда запущенная без аргументов, она возвращает содержимое очереди печати принтера по умолчанию.
Вывод возвращаемый lpq может быть полезен для многих целей.
$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 thesis.txt 682048 bytes
37.4 Отмена задания печати с использованием команды lprm
Другое полезное свойство любой системы печати это возможность отмены задания, которое было перед этим помещено в очередь. Чтобы сделать это используйте команду lprm.
$ lprm -
Показанная выше команда отменяет все задания печати владельцем котрых является пользователь выполнивший эту команду. Для того чтобы отменить одиночное задание печати, надо сначала получить номер задания с помощью команды lpq и затем сообщить полученный номер команде lprm. Например,
$ lprm 31
отменит задание номер 31 (thesis.txt
) на принтере по умолчанию.
37.5 Контроль демона lpd с помощью lpc
Программа lpc(8) используется для контроля принтеров, которые обслуживает демон lpd. Вы можете разрешать или запрещать использование принтера или их очередей, перераспределять задания внутри очереди, и получать информацию о состоянии принтеров и их очередей. Lpc наиболее часто используется в системах, где несколько принтеров установлено на одну машину.
$ lpc
Команда показанная выше запускает программу lpc. По умолчанию, она входит в интерактивный режим и вы можете начинать вводить команды. Другие опции используются для запуска команды lpc в командной строке.
$ lpc status all
Список всех возможных команд перечислен на странице руководства
команды lpd, но здесь перечислено несколько главных команд,
которые вы должны знать. Любые команды обозначенные как option
могут быть либо именем принтера (lp, print, etc) или ключевым словом
all
, которое обозначает все принтера.
- disable option - запрещает добавление любых новых заданий печати
- down option - запрещает все задания на принтере
- enable option - разрешает ввод новых заданий в очередь печати
- quit (or exit) - покинуть lpc
- restart option - перезагрузить lpd для данного принтера
- status option - статус печати принтера
- up option - разрешить все и стартовать новый демон lpd
37.6 Использование printtool в RedHat
Небольшое замечание here on RedHat's amazing printtool program.
Она умеет делать все, что должен делать magicfilter. RedHat уже установил много программ для использования фильтров. Здесь показано как установить принтер HP LJ 4L, подключенный к параллельному порту, в RedHat 4.0 (эта процедура должна быть одинаковой для всех версий RH).
- Войдите как root и запустите printtool (если вы используете команду su, вы должны установить SETENV DISPLAY :0.0 и xhost +).
- Щелкните кнопку "Add" ("Добавить"), и нажмите "OK" для локального принтера.
- Заполните поле именем устройства печати (например /dev/lp1)
- Заполните поле входного фильтра - Выберите тип принтера, разрешение и размер бумаги (ljet4, 300x300 и letter для нашего примера)
- Нажмите "OK", и перезапустите lpd.
Next Previous Contents