Inhaltsverzeichnis
Zusammenfassung
In diesem Kapitel wird Standardwissen zum Druckerbetrieb geliefert. Es dient insbesondere auch dazu, geeignete Problemlösungen für den Druckerbetrieb in Netzwerken zu finden.
Unter Linux werden Drucker über Druckerwarteschlangen angesprochen. Die zu druckenden Daten werden dabei in einer Druckerwarteschlange zwischengespeichert und durch den Druckerspooler nacheinander zum Drucker geschickt.
Meist liegen die zu druckenden Daten nicht in der Form vor, die direkt an den Drucker geschickt werden könnte. Eine Grafik beispielsweise muss normalerweise vorher in ein Format umgewandelt werden, das der Drucker direkt ausgeben kann. Die Umwandlung in die Druckersprache erfolgt durch den Druckerfilter, der vom Druckerspooler zwischengeschaltet wird, um die zu druckenden Daten ggf. so umzuwandeln, dass sie der Drucker direkt ausgeben kann.
Die meisten Drucker können wenigstens ASCII-Text direkt ausgeben. Die wenigen Ausnahmen, die keinen ASCII-Text direkt drucken können, werden über eine der folgenden Standarddruckersprachen angesprochen.
PostScript ist die Standardsprache unter Unix/Linux, in der Druckausgaben erstellt werden, die dann auf PostScript-Druckern direkt ausgegeben werden können. Diese Drucker sind relativ teuer, da PostScript eine mächtige aber komplexe Sprache ist, die im PostScript-Drucker einen hohen Rechenaufwand erfordert, wenn es zu Papier gebracht werden soll. Außerdem entstehen durch das Lizenzieren zusätzliche Kosten.
Wenn kein PostScript-Drucker angeschlossen ist, verwendet der Druckerfilter das Programm Ghostscript, um die Daten in eine dieser anderen Standarddruckersprachen umzuwandeln. Dabei wird ein möglichst gut zu dem jeweiligen Druckermodell passender Ghostscript-Treiber verwendet, um modellspezifische Besonderheiten (z. B. Farbeinstellungen) berücksichtigen zu können.
Der Anwender oder ein Anwendungsprogramm erzeugt einen neuen Druckauftrag.
Die zu druckenden Daten werden in der Druckerwarteschlange zwischengespeichert, von wo sie der Druckerspooler an den Druckerfilter weiterleitet.
Der Druckerfilter macht nun normalerweise Folgendes:
Der Typ der zu druckenden Daten wird bestimmt.
Wenn die zu druckenden Daten nicht PostScript sind, werden sie zuerst in die Standardsprache PostScript umgewandelt. Insbesondere ASCII-Text wird normalerweise auch nach PostScript umgewandelt.
Die PostScript-Daten werden, falls erforderlich, in eine andere Druckersprache umgewandelt.
Wenn ein PostScript-Drucker angeschlossen ist, werden die PostScript-Daten direkt an den Drucker (oder an eine andere Warteschlange) geschickt. Gegebenenfalls werden aber zusätzlich die Bash-Funktionen duplex und tray, die in /usr/lib/lpdfilter/global/functions definiert sind, aufgerufen, um Duplexdruck oder Papierschachtauswahl über PostScript-Kommandos zu ermöglichen — vorausgesetzt der PostScript-Drucker kann diese Kommandos entsprechend verarbeiten.
Wenn kein PostScript-Drucker angeschlossen ist, wird Ghostscript mit einem zur Druckersprache des jeweiligen Druckermodells passenden Ghostscript-Treiber verwendet, um die druckerspezifischen Daten zu erzeugen, die dann an den Drucker (oder an eine andere Warteschlange) geschickt werden.
Die druckerspezifischen Parameter für den Ghostscript-Aufruf sind an einer folgenden Stellen gespeichert:
In der Datei /etc/printcap direkt in der cm-Zeile.
Direkt in der Datei /etc/lpdfilter/warteschlange/upp (hier ist warteschlange durch den tatsächlichen Namen der Warteschlange zu ersetzen).
Indirekt in der Datei /etc/lpdfilter/warteschlange/ppd (hier ist warteschlange durch den tatsächlichen Namen der Warteschlange zu ersetzen). Dies ist der Fall, wenn der lpdfilter mit YaST konfiguriert wurde, denn dann erfolgt die eigentliche Umwandlung in druckerspezifische Daten auf dieselbe Art wie beim CUPS-Drucksystem mit dem Filter foomatic-rip, der den druckerspezifischen Ghostscript-Aufruf aus den Daten in derselben Foomatic PPD-Datei erzeugt, die auch für das CUPS-Drucksystem verwendet würde.
Die Ausgabe von Ghostscript kann ggf. nochmals umformatiert werden, sofern ein passendes Skript unter /etc/lpdfilter/warteschlange/post (hier ist warteschlange durch den tatsächlichen Namen der Warteschlange zu ersetzen) existiert.
Nachdem der Druckauftrag komplett an den Drucker geschickt wurde, löscht der Druckerspooler den Druckauftrag aus der Druckerwarteschlange.
Bei SUSE LINUX werden zwei verschiedene Drucksysteme unterstützt:
Das ist ein traditionelles Drucksystem bestehend aus dem Druckerspooler LPRng und dem Druckerfilter lpdfilter. Beim traditionellen Drucksystem wird die gesamte Konfiguration einer Warteschlange vom Systemverwalter festgelegt und der Benutzer kann nur zwischen verschiedenen Warteschlangen wählen. Um für einen Drucker zwischen verschiedenen Konfigurationen wählen zu können, müssen für denselben Drucker verschiedene Warteschlangen mit verschiedenen Konfigurationen eingerichtet werden. Bei einfachen Schwarzweiß-Druckern (z. B. den meisten Laserdruckern) ist eine Standardkonfiguration ausreichend, aber bei modernen Farb-Tintenstrahldruckern werden Konfigurationen für Schwarzweißdruck, Farbdruck und ggf. für hochauflösenden Farbdruck und Photodruck benötigt. Durch die festgelegten Konfigurationen ist einerseits automatisch sichergestellt, dass nur die vom Systemverwalter eingerichteten Konfigurationen benutzt werden können. Andererseits ist damit seitens des Drucksystems jegliche individuelle Einstellmöglichkeit durch den Benutzer verhindert, so dass der Systemverwalter entsprechend viele Warteschlangen einrichten muss, wenn die vielen Einstellmöglichkeiten, die moderne Drucker bieten, zur Verfügung stehen sollen.
Beim Drucksystem CUPS hat der Benutzer die Möglichkeit, für jeden Ausdruck druckerspezifische Einstellungen individuell festzulegen. Hier ist nicht die gesamte Konfiguration einer Warteschlange durch den Systemverwalter festgelegt, sondern die Möglichkeiten für druckerspezifische Einstellungen sind pro Warteschlange in einer PPD-Datei PostScript Printer Description hinterlegt; diese können so dem Benutzer in einem Druckdialog angeboten werden. Standardmäßig sind in der PPD-Datei alle Möglichkeiten hinterlegt, die der Drucker bietet. Durch Verändern der PPD-Datei kann der Systemverwalter die Möglichkeiten ggf. einschränken.
Da beide Drucksysteme in Konflikt miteinander stehen, ist es ist unter normalen Bedingungen nicht möglich, beide Drucksysteme gleichzeitig installiert zu haben, mit YaST2 kann jedoch zwischen beiden Drucksystemen hin und her gewechselt werden – siehe Benutzerhandbuch im Abschnitt YaST — Konfigurationen, Drucker.