Sekcja ta omawia jak drukować pliki, sprawdzać kolejkę wydruków, usuwać zadania z kolejki wydruków, formatować pliki przed ich wydrukowaniem i jak skonfigurować środowisko do drukowania.
System drukowania na Linux-ie - system lp - jest przeniesionym źródłem kodu napisanego przez regentów Uniwersytetu Californii dla wersji UNIX-a "Berkeley Software Distribution".
Najbardziej prostą metodą na drukowanie w Linux-ie jest wysłanie pliku do wydrukowania do urządzenia drukarki. Jednym ze sposobów na zrobienie tego jest użycie polecenia cat. Jako "root" możesz zrobić coś takiego:
# cat thesis.txt > /dev/lp
W tym wypadku, /dev/lp jest symbolicznym dołączeniem do
rzeczywistego urządzenia drukarki - niech to będzie igłówka,
laserówka, "typesetter" czy ploter. (Więcej informacji na temat
dołączeń symbolicznych znajdziesz na stronie podręcznika systemowego
ln(1)).
Z przyczyn bezpieczeństwa, tylko "root" i użytkownicy należący do tej samej grupy co demon drukowania mogą pisać bezpośrednio na drukarkę. Oto dlaczego polecenia takie jak: lpr, lprm, czy lpq muszą być używane, żeby mieć dostęp do drukarki.
Z tego powodu użytkownicy muszą używać lpr, aby wydrukować jakiś plik. Polecenie to troszczy się o wszystko co jest potrzebne do wydrukowania danego pliku, a potem przekazuje kontrolę do innego programu - lpd czyli "line printer daemon". Demon ten informuje drukarkę jak ma wydrukować dany plik.
Kiedy wykonywany jest lpr, najpierw kopiuje on podany plik do konkretnego katalogu (katalogu zadań), gdzie plik ten pozostaje dopóki lpd go nie wydrukuje. Jak lpd się dowie, że jest jakiś plik do wydrukowania, to utworzy kopię siebie (co my programiści nazywamy rozmnożeniem/klonowaniem). Kopia ta wydrukuje nasz plik, podczas gdy oryginał będzie czekał na dalsze zadania. Pozwala to na obsługiwanie wielu zadań na raz.
Składnia polecenia lpr jest bardzo znana:
$ lpr [ opcje ] [ nazwa_pliku ... ]
Jeśli nazwa_pliku nie jest podana, lpr spodziewa się
danych ze standardowego wejścia (zwykle klawiatury lub wyjścia
innego programu). To pozwala użytkownikowi na przekierowanie
wyjścia poleceń do kolejki drukowania. Np:
$ cat thesis.txt | lpr
lub
$ pr -l60 thesis.txt | lpr
Polecenie lpr przyjmuje kilka argumentów z linii poleceń, które pozwalają użytkownikowi kontrolować jego działanie. Niektóre z bardziej popularnych argumentów to: -Pdrukarka określa drukarkę, na której ma być dane zadanie wydrukowane, -h nie pozwala wydrukować strony tytułowej (z identyfikatorem itp.), -s tworzy symboliczne dołączenie zamiast kopiować plik do katalogu zadań (przydatne do dużych plików) i -#il określa ilość kopii do wydrukowania. Przykład może wyglądać tak:
$ lpr -#2 -sP dj thesis.txt
Polecenie to stworzy symboliczne dołączenie do pliku
thesis.txt w katalogu zadań dla drukarki o nazwie dj, a
następnie przekaże zadanie do lpd. Następnie wydrukuje drugą
kopię tego pliku.
Wszystkie dostępne opcje znajdziesz w podręczniku systemowym lpr(1).
Aby zobaczyć zawartość kolejki do drukowania użyj polecenia lpq. Wydane bez argumentów, zwraca zawartość kolejki dla domyślnej drukarki.
Rezultat polecenia lpq może być przydatny do różnych celów.
$ lpq lp is ready and printing Rank Owner Job Files Total Size active mwf 31 thesis.txt 682048 bytes
Inną przydatną cechą każdego systemu drukowania jest możliwość anulowania zadania, które zostało umieszczone w kolejce. Aby to zrobić użyj lprm.
$ lprm -
Powyższe polecenie anuluje wszystkie zadania, które są własnością użytkownika wydającego to polecenie. Pojedyncze zadanie może być anulowane przez zdobycie numeru tego zadania (z polecenia lpq) i podanie go do lprm:
$ lprm 31
Spowodowałoby skasowanie zadania nr 31 - thesis.txt na
drukarce domyślnej.
Program lpc(8) używany jest do kontrolowania drukarek, które obsługuje lpd. Możesz włączyć lub wyłączyć drukarkę albo jej kolejkę, zmienić kolejność w kolejce zadań oraz otrzymać raport na temat drukarek i ich kolejek. Lpc jest używany głównie w sytuacjach kiedy do komputera podłączonych jest kilka drukarek.
$ lpc
Powyższe polecenie wystartuje program lpc. Domyślnie, uruchamia się interaktywny tryb i możesz zacząć wydawać polecenia. Inną opcją jest wprowadzenie polecenia lpc z linii argumentów.
$ lpc status all
Lista dostępnych poleceń jest w podręczniku systemowym lpd, a tutaj podaję kilka najważniejszych, których będziesz najczęściej używał. Polecenie oznaczone opcją może być albo nazwą drukarki (lp, print, itp.) albo słowem "all", co oznacza wszystkie drukarki.
Tylko krótka notatka na temat zadziwiającego programu printtool z dystrybucji RedHat. Wygląda na to, że robi on wszystko to co robiłby filtr magiczny. RedHat instaluje od razu wiele programów filtrujących. Oto jak ustawiłem swoją drukarkę HP LJ 4L podłączoną do portu równoległego na RH 4.0.
Na jedno zawołanie możesz mieć definicje dla różnych drukarek w
/etc/printcap. Dla różnych rozmiarów papieru,
rozdzielczości, itd.