| |
|
|
| |

printing basics
Drucker einrichten unter Unix ist nicht immer leicht (hauptsächlich, weil die Hersteller von Druckern meist nur Windows User direkt supporten). Aber wenn ein Drucker mal eingerichtet ist, geht alles ganz leicht.
Hier zunächst ein kurzer Überblick, wie alles zuammenhängt und die wichtigsten
Anwendungsprogramme zum Drucken.
Zu den Grundlagen:
Hat man einen Drucker der direkt am Parallelport angeschlossen ist und wird dieser von einem Unix Treiber unterstützt, so kann man direkt rohe Daten an diesen Drucker schreiben. z.B.:
echo blabla > /dev/lp0
Die Namen des Drucker "devices" sind von Unix zu Unix leicht verschieden. Bei Linux heisst der erste Drucker /dev/lp0. Dorthin schreiben darf i.a. natürlich nur der root user. Aber das blabla sollte dann direkt ausgedruckt werden. (Ein Drucker der nur ganze seiten druckt (z.B. Laserdrucker) wartet dann noch auf das Seitenende. Das kann man ihm mit einem Control-L Zeichen schicken:
echo ^L > /dev/lp0
(Control Zeichen kann man in der Shell eingeben in dem man zuerst Control-v drückt und dann den Control den man senden will. also z.B.
Control-v Control-l hier)
Besonders bequem ist diese Art zu drucken nicht. Man will ja z.B. auch übers Netzwerk drucken oder wenn der Drucker gerade belegt ist, soll der Druckauftrag zwischengespeichert ("ge-queued") werden. etc.
Dazu laüft ein sogenannter "Drucker daemon" (meist "lpd" ). Es gibt inzwischen verschieden Arten dieses "Drucker daemons" (lpd, lpr-ng, cups, ...), am verbreitetsten ist aber noch der alte BSD "lpd".
Der "lpd" übernimmt das Zwischenspeichern, das Rausschicken der Daten
an den /dev/lp Port. Er stellt den Drucker anderen Computern im Netz zur Verfügung und erlaubt das Drucken auf andere Netzwerkdrucker. Weiters können die Daten bevor sie gedruckt werden noch durch Programme aufbereitet werden (z.B. weil man Daten in einem Format drucken will, das der Drucker nicht direkt unterstützt.)
Die vorhandenen Drucker auf einem System sind beim BSD "lpd" in /etc/printcap definiert.
Hat man einen richtig eingerichtetn Drucker, so kann man einen Druckauftrag mit dem "lpr" kommando an den "lpd" weitergeben.
echo blabla^L | lpr
"lpr" druckt dabei auf den Standard Printer mit dem Namen "lp". Hat man mehrere Drucker, so kann man den Namen des Druckers angeben:
echo blabla^l| lpr -Pbrother
würde auf einem Drucker mit dem Namen "brother" drucken sofern dieser eingerichtet ist.
mit
lpq -Pbrother
sieht man alle Druckaufträge die zur Bearbeitung in der "queue" stehen.
lprm 1234
würde den Druckauftrag mit der Nummer 1234 aus der "queue" des Standarddruckers "lp" entfernen. (man kann hier wieder mit -P einen
anderen Druckernamen angeben)
In welchem Datenformat müssen die Daten sein, damit sie ausgedruckt werden?
Das hängt vom Drucker ab und davon ob der "lpd" so eingestellt ist, dass er Daten in anderen Formaten in das Format umwandelt, das der Drucker versteht.
Die meisten Drucker heutzutage sprechen entweder ein "laserjet" (PCL) Format oder "deskjet". Gute Drucker können direkt die Seitenbeschreibungssprache "postscript" verstehen. Da die meisten Programme im Unix erwarten, mit einem Postscript Drucker zu sprechen, sollte der "lpd" so eingestellt sein, dass er Postscript Daten in jedem Falle drucken kann. (Ein gutes Programm dafür ist "apsfilter")
Wir gehen im folgenden davon aus. dass der "lpd" gut eingerichtet ist und Postscript versteht.
Wir können dann mit dem Befehl:
lpr tiger.ps
oder
cat tiger.ps | lpr
die Postscript Datei "tiger.ps" ausdrucken. (Die Datei "tiger.ps" liegt normalerweise dem Programm "gs" (ghostscript) bei und sollte auf jedem Unix zu finden sein. Am besten "locate" benutzen.
Programme wie Netscape, xv, etc... rufen intern das Programm "lpr" zum Drucken auf, können aber alternativ auch in ein File drucken. Dieses File ist dann ein .ps file.
Hat man die grafische X11 Oberfläche zur Verfügung, kann man sich die Postscript Dateien mit
gv tiger.ps
oder:
ghostscript tiger.ps
anschauen, bevor man sie ausdruckt.
Zum Ausdrucken von normalen Text Dateien auf einem Postscript Drucker ist das Programm a2ps sehr zu empfehlen:
a2ps -2 blabla.txt
würde die Datei blabla.txt in ein mit 2 Spalten pro Seite formatiertes Postscript umwandeln und zum Standarddrucker schicken.
a2ps -2 -oblabla.ps blabla.txt
würde die Ausgabe nicht direkt zum Drucker schicken, sondern in die Datei blabla.ps speichern (die wir dann vor dem echten Ausdrucken noch mal mit gv anschauen können)
a2ps versucht je nach Art der Textdatei diese speziell fomatiert auszudrucken. (so z.B. Email oder C programme etc. Das kann manchmal störend sein. Mit der Option --pretty-print=text schaltet man auf normalen Text Ausdruck zurück.)
Will man direkt aus dem Mail Programm "mutt" heraus mit der p Taste drucken können, kann man z.B. folgendes in sein .muttrc File eintragen:
set print=ask-yes # ask me if I really want to print messages
set print_command="/usr/bin/a2ps -=mail -2 "
Ebenfalls zum Ausdrucken von Textdatein geeignet ist enscript:
enscript -oblabla.ps -2 blabla.txt
(ich finde aber a2ps besser)
Zum interaktiven Ausdrucken von Bildern ist "xv" sehr praktisch. Für Webseiten kann man seinen Browser verwenden. (a2ps kann bei HTML-Seiten auch Netscape aufrufen um die Umwandlung durchzuführen)
Die GNU Version von "man" (bzw. "groff") kann "man pages" auch schön formatiert als Postscript ausgeben:
man -Tps lpr > bla.ps
würde die "manpage" zum "lpr" Programm in die Datei bla.ps speichern.
Zum Umgang mit Postscript Dateien gibt es eine Menge nützlicher Tools. (Das "psutils" Paket ist hier besonders zu empfehlen). Hier kurz die wichtigsten:
psnup -2 bla.ps bla2.ps
macht aus einem Postscript File bla.ps ein neues, wobei immer 2 Seiten verkleinert auf eine geschrieben werden.
ps2pdf
wandelt ps Dateien in pdf um (meist aber nicht so gut wie Programme die direkt pdf-Dateien erzeugen können)
pstopdf
ebenfalls. (.pdf Files kannst du dir unter Unix mit acroread oder xpdf ansehen)
pdftops
und
pdf2ps
wandeln pdf in ps um
pstops
ist ein sehr leistungsfähiges Programm um ps Dateien in andere umzuwandeln (kann wie psnub verkleinern aber auch Seiten umordnen etc. Damit kann man sich z.B. die Seiten so formatieren, dass sie als kleines "booklet" zusammenheftbar sind etc.)
psselect -p 1-3,7 bla.ps bla2.ps
erlaubt es, einzelne Seiten aus einem Postscript Dokument herauszufiltern. (Im obigen Fall die Seiten 1 bis 3 und die Seite 7) werden aus bla.ps gelesen und in bla2.ps gespeichert.
pstoedit
versucht Postscript Daten in editierbare Vektor Grafiken umzuwandeln (xfig, fig, ai, hpgl, dxf, ....)
EXERCISES:
* Wenn du einen direkt angeschlossenen Drucker hast und root bist, dann versuche einige Zeichen probehalber direkt auf /dev/lp0 (o.ä.) zu schreiben.
* Schau dir dein /etc/printcap File an oder informier dich bei deinem Sysadmin welche Drucker eingerichtet sind.
* Drucke eine kurze Textdatei direkt mit "lpr"
* Verwende "lpq" und "lprm" um einen Druckjob zu löschen.
* Erzeuge mit "a2ps" und/oder enscript Postscript Ausdrucke von Text Files (zum Papierschonen am besten nicht gleich auf den Drucker sondern zuerst in ein .ps File schreiben).
* Betrachte Postscript Files mit "gv" oder "ghostscript"
* Verwende "psnup" um eine Postscript Datei mit vielen Seiten in eine umzuwandeln die nur halb soviele Seiten hat.
* Verwende "ps2pdf" um eine Postscript Datei in ein pdf umzuwandeln. Sieh dir das entstandene pdf File an.
REFERENCES:
man lpr
lpr --help
man lpq
man lprm
man lpd
man printcap
man a2ps
info a2ps
a2ps --help
a2ps --list topics
man enscript
man psnup
man psselect
man psmerge
man pstödit
man man
|
|
| |
|
|
|