claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 10/2003

Drucken unter Linux

Schwarz auf Weiß

von Fred Andresen


Linux' Druckerverwaltung ist ein komplexes System. Wer sich in die Details einarbeitet, stößt auf Druckerwarteschlangen, PostScript, Druckertreiber und Filter. Um das Drucksystem zu nutzen, sind aber keine vertieften Kenntnisse notwendig. Wir erklären hier ein paar Grundlagen.

Segen und Fluch der Druckerei unter Linux ruhen beide auf denselben zwei Säulen: Druckerwarteschlangen und Druckertreiber. Das Prinzip der Warteschlangen ist auf allen Rechnern und unter allen Betriebssystemen das gleiche: Ein Druckauftrag (Druckjob) ist eine Kopie eines Dokuments, das zum Drucker geschickt wird, aus dessen Schacht es dann irgendwann -- hoffentlich richtig -- heraus kommt. Dass es richtig, also lesbar formatiert und gegebenenfalls in den gewünschten Farben heraus kommt, erledigt der Druckertreiber. Zuerst muss der Druckjob aber den richtigen Weg finden.

Die Queue

Auch wenn es sich heute hinter allerlei Benutzerfreundlichkeit versteckt: Das Grundprinzip ist immer noch das alte Unix-Drucksystem. Weil Unix von Anfang an ein Mehrbenutzersystem und damals Drucker selten und teuer waren, mussten sich viele Anwender einen Drucker teilen. Das Betriebssystem, genauer gesagt: das Drucksystem, musste deswegen die einzelnen Druckjobs getrennt annehmen und geordnet auf dem Drucker ausgeben. Da das nur nacheinander geht, gibt es das Prinzip der "Printing Queue". Das französische Wort, das englisch ausgesprochen wird ("kiu"), steht für die Warteschlange, in der die einzelnen Druckjobs stehen. Auch Windows benutzte früh Warteschlangen; brauchte sie auch dringend, um überhaupt im Hintergrund drucken zu können, da das Betriebssystem -- in älteren Versionen -- immer nur ein Programm gleichzeitig ausführen konnte.

Nicht Dämon, sondern Daemon

Damit die Benutzer jederzeit per Mausklick oder Befehl ihre Dokumente in die Warteschlange stellen können, läuft auf dem Linux-Rechner ständig ein Programm im Hintergrund, das darauf wartet, die Kopie anzunehmen. Dieser Hintergrundprozess steuert und überwacht die ganze Druckerwarteschlange, vom Entgegennehmen des Druckauftrags (wenn der Benutzer Drucken klickt) bis zum Löschen des Auftrags aus der Warteschlange, wenn der Drucker die letzte Seite ausgespuckt hat. Solche Hintergrundprozesse werden unter Linux Daemons genannt, was nichts teuflisches an sich hat, sondern die Abkürzung für "Disk And Execution MONitor" ist -- eine Umschreibung für die Funktionen dieser Systemprogramme.

Das Hintergrundprogramm heißt auch Spooler. Es nimmt die Rohdaten, also die Datei oder das Dokument, das der Benutzer ausdrucken möchte, an und entscheidet, wie damit weiter zu verfahren ist. Jetzt kommt das Format der Datei ins Spiel: Die eigentlichen Informationsdaten eines Dokuments oder einer Datei müssen für jede Ausgabe, die Menschen lesen sollen, entsprechend aufbereitet werden. Die Datei, in der der Benutzer Worte und Sätze wähnt, besteht für den Computer nur aus Binärdaten (0 und 1). So, wie die Datei für die Bildschirmausgabe aufbereitet werden muss, muss sie das auch für den Druck auf Papier -- wobei die Formate unterschiedlich sind, so wie in eine Bildschirmzeile meist mehr Zeichen passen, als in eine Zeile auf Papier.

PostScript

Teure Drucker verstehen PostScript. Das ist eine Drucker(programmier)sprache, die von der Firma Adobe entwickelt wurde und mit der dem Drucker präzise mitgeteilt wird, was und vor allem wo genau auf der Seite er drucken soll; auch die Farbe. Weil Linux ein Nachfahr von Unix ist, formatieren Linux-Programme ihre Druckausgaben üblicherweise bereits in PostScript; dieser Output kann damit direkt auf PostScript-fähigen Druckern ausgegeben werden, ohne dass es weitere hersteller- oder gerätespezifische Druckertreiber braucht. Man kann sagen, der Druckertreiber ist im Drucker und im Betriebssystem eingebaut.

Abb. 1: Da freut sich der Drucker: Sein Profigerät versteht PostScript.

Andere Sprachen

Viele günstigere Drucker (vor allem Tintenstrahler) beherrschen PostScript nicht; stattdessen bieten sie eigene Seitenbeschreibungssprachen. In solchen Fällen ist unter Linux eine Konvertierung nötig: Ein Treiber, der die Beschreibungssprache des Druckers spricht, übersetzt PostScript-Dateien in dieses Format. Es haben sich einige Standards durchgesetzt, z. B. für Laserdrucker die PCL-Sprache (Printer Command Language) von HP.

GDI-Drucker

Teure Drucker sind unter anderem deswegen teuer, weil Elektronik eingebaut ist, die die Druckersprache PostScript (oder eine andere) versteht und umsetzt. Um für Heimanwender billige Geräte anbieten zu können, sind die Hersteller in den letzten Jahren dazu übergegangen, diese Elektronik einzusparen. Das, was Drucker sonst mit eigener Elektronik rechnen müssen, können inzwischen auch die PCs mit übernehmen, ohne dass diese Zusatzarbeit im Betrieb spürbar wäre -- das gilt natürlich nur für PCs mit aktueller Prozessorleistung.

Der Nachteil ist: Ohne eigene Elektronik versteht der Drucker keine Druckersprache mehr -- jetzt braucht der PC, der ihn ansteuert, einen besonderen Druckertreiber, der dem Drucker genau sagt, was er wohin drucken soll. Solche Geräte ohne eigene "Intelligenz" nennt man GDI-Drucker: GDI ist ein von Microsoft entwickeltes System zur gerätespezifischen Ansteuerung. Verkäufer beschönigen solche Billigprodukte gerne als "optimiert für Windows".

Der Filter

Die Steuerung von Druckern ohne PostScript-Fähigkeiten ist für jeden Hersteller, manchmal für jedes Gerät anders. Deshalb hinkt Linux hier dem Markt stets ein wenig hinterher. Wie unter Windows gibt es für die meisten dieser Geräte aber auch unter Linux Druckertreiber -- im Gegensatz zu den Windows-Treibern werden diese allerdings von Freiwilligen mit mehr oder weniger Herstellerinformationen entwickelt, und deswegen sind sie oft vom Funktionsumfang her nicht mit den Windows-Treibern vergleichbar.

Diese Treiber bindet der Druckerspooler in seine Arbeitsschritte ein, wenn ihm -- bei der Druckereinrichtung -- mitgeteilt wurde, dass es sich um ein Gerät handelt, das einen Treiber braucht. Auch für "echte" PostScript-Drucker kann es Treiber geben, die besondere Funktionen bieten, wie etwa die Auswahl des Druckerschachtes.

Abb. 2: Die von Linux unterstützten Geräte reichen vom einfachen Tintenstrahldrucker...

Abb. 3: ...bis zum Abteilungsdrucker mit Farblaser und integrierter Netzwerkschnittstelle. (Foto: HP)

Einrichten

Auf den folgenden sechs Seiten geht es um die Erstkonfiguration eines Druckers. Die drei Artikel besprechen die Einrichtung unter SuSE und Red Hat Linux sowie mit dem kostenpflichtigen Programm TurboPrint. Letzteres bietet eine Anlaufstelle für Besitzer von Druckern, die ansonsten unter Linux nicht unterstützt werden. (hge/fan)

LPR/LPD und CUPS

Das traditionelle Linux-Drucksystem mit dem Druckbefehl lpr ("line printer") und dem Drucker-Spooler lpd ("line printer daemon") wurde zwischenzeitlich verbessert (LPRng: ng für "new generation"), und ist jetzt durch das Drucksystem CUPS ("Common Unix Printing System") abgelöst worden.

CUPS unterstützt verteiltes Drucken im Netz besser, weil nicht jede Druckerwarteschlange auf jedem Rechner einzeln konfiguriert werden muss; zusätzlich implementiert das Programm die gerätespezifischen Treibereinstellungen so, dass der Benutzer Sie für jeden Druck individuell auswählen kann. Das Prinzip ist immer noch das alte: Sie schicken eine Datei mit lpr oder per Mausklick in die Druckerwarteschlange; der Spooler schickt sie -- gefiltert oder ungefiltert -- an den Drucker, und der bannt sie auf Papier.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-01-25 16:28

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]