Drucken in K

KDEPrint

01.10.2001
Mit dem neuen Print-Framework KDEPrint macht KDE 2.2 in Drucksachen einen Riesensprung nach vorn – Grund genug für eine Erkundungstour.

Michael Goffiouls KDEPrint verschafft dem gesamten KDE-Projekt schlagartig Druck-Fähigkeiten, von denen man bislang nur träumen konnte. Als Vermittlungsschicht, die zwischen die Anwendungsprogramme und das vorgefundene Print-Subsystem geschaltet ist, ersetzt es nicht das vorhandene Druck-Framework des Rechners. Es übernimmt also nicht selbst das Spoolen und Filtern von Jobs. Stattdessen bietet es eine einheitliche Schnittstelle für jedes Programm, das einen Druckjob übergeben will, unabhängig davon, wie unterschiedlich die darunter liegenden Drucksysteme auch sind oder was künftige Entwicklungen bringen.

Modular aufgebaut, unterstützt KDEPrint derzeit folgende Print-Subsysteme:

  • CUPS (Common Unix Printing System)
  • LPR (das Standard-BSD-Print-System)
  • das generische Unix-LPD-Drucksystem (die Voreinstellung)
  • RLPR-Umgebung (Druck auf entferntem LPD-Server von der Kommandozeile) Die Entwicklung eines Moduls für LPRng ist in Arbeit.

Nach Entgegennahme eines Druckjobs übergibt ihn eines der KDEPrint-Module in geeigneter Weise an das Subsystem. KDEPrint ist in dieser Hinsicht sehr flexibel und weitgehend konfigurierbar, wie wir im Folgenden noch sehen werden. Wenn dabei häufig von CUPS die Rede ist, hat dies einen einfachen Grund: Über die anderen Druck-Subsysteme gibt es nicht so viel zu berichten, da sie viele Optionen nicht unterstützen.

Ein Kprinter für alles

Den neuen Druckdialog, wie ihn jede KDE 2.2-Anwendung nutzt, können Sie auch von Hand aufrufen, um ihn als komfortablen Ersatz für das lpr-Kommando zu nutzen. Geben Sie dazu einfach den Befehl

kprinter zu_druckende_Datei

auf einer Kommandozeile ein (Abbildung 1).

Abbildung 1: Der kprinter-Dialog mit CUPS-Optionen

In der nächsten KDE-Release (2.2.1) wird es möglich, kprinter auch ohne Angabe einer Druckdatei aufzurufen und im offenen Dialog nach dem File zu browsen, das Sie drucken möchten. Sie können dann sogar mehrere Files nacheinander anwählen, die anschließend alle "in einem Rutsch" gedruckt werden.

Bereits heute kümmert sich kprinter um mehrere Dateien gleichzeitig, wenn Sie ihm dies beim Aufruf mitteilen:

kurt@etransmeta:~$ kprinter ../cups.pdf ./screenshots/kprinter.png linux-user-artikel.txt

Das hier gezeigte Kunststückchen, drei auch vom Format verschiedene Dateien (PDF, PNG-Grafik und Text) aus drei unterschiedlichen Verzeichnissen gleichzeitig zum Drucker zu schicken, schaffen Sie derzeit weder unter Windows noch unter MacOS.

Wenn Sie CUPS als Drucksystem installiert haben, entdecken KDEPrint und kprinter diesen Umstand beim ersten Start selbst. Sie erkennen dies an der Meldung Print System currently used: CUPS.... Zu einem aktiven CUPS-Daemon lässt sich nämlich über den TCP-Port 631 Kontakt aufnehmen. Dies können Sie mit jedem Web-Browser selbst nachprüfen: http://localhost:631/ zeigt eine Seite an, die vom CUPS-Server stammt. Wenn dieser Test unbeantwortet bleibt, untersucht KDEPrint das System im nächsten Schritt auf die Datei /etc/printcap. Findet es diese, schaltet es auf Generisches UNIX LPD Drucksystem um. Damit kann man dann in 98% der Fälle drucken.

Fliegender Wechsel

KDEPrint erlaubt es im Druckdialog, direkt vor der Absendung eines Jobs manuell von einem auf ein anderes Druck-Subsystem umzuschalten. Voraussetzung ist natürlich, dass das andere System auf dem Rechner tatsächlich vorhanden ist, und dass parallel installierte Druckprogramm-Pakete sich nicht gegenseitig "beißen". Beispielsweise darf man bei SuSE die Pakete lprold und cups nicht gemeinsam installieren. RLPR kann mit jedem anderen Subsystem koexistieren.

Wofür ist das gut? Wenn Sie Ihren Laptop "mobil" in verschiedenen Umgebungen einsetzen, die nicht durchgängig CUPS verwenden, ist ein zusätzlich installiertes RLPR-Packet [2] ideal. RLPR ermöglicht es, einen Druckjobs per LPR/LPD-Protokoll direkt von der Kommandozeile aus abzuschicken – und zwar ohne dauerhafte Einrichtung einer printcap. kprinter stellt sogar einen Wizard bereit, der Ihnen bei der Installation neuer RLPR-Drucker hilft.

Auch wenn Sie nicht zwischen echten Druck-Subsystemen wechseln brauchen, können Sie jederzeit (und ohne zusätzlich etwas zu installieren) auf Print through an external program (generic) umschalten.

"External program" akzeptiert alle Druckbefehle, die bereits vor KDEPrint auf Ihrem System funktionierten. Dazu können auch selbstgeschriebene Shell-Skripte gehören. So lassen sich Utilities wie a2ps, mpage und enscript nutzen, um ASCII-Texte aller Art in eine hübsche Form zu bringen und beispielsweise mit Syntax-Highlighting zu versehen.

Tragen Sie das entsprechende Kommando hinter Print command ein (Abbildung 2), und ändern Sie Ihr Druck-Subsystem in "external program". Leider merkt sich kprinter das externe Kommando nicht bis zum nächsten Mal. Sollten Sie es öfter benötigen, installieren Sie es besser dauerhaft über das KDE-Kontrollzentrum als Special (oder Pseudo-)Printer.

Abbildung 2: a2ps als Druckkommando in kprinter

Was lässt sich einstellen?

In Abhängigkeit vom gerade aktiven Druck-Subsystem bekommen sie unterschiedliche Druckoptionen zu Gesicht. Beispielsweise kann CUPS eine Datei auszugsweise drucken. Sie aktivieren hierfür die Auswahl Range und geben etwas in der Art 5-9,11,15,22-25 ein. CUPS schickt dann nur die angegebenen Seiten zum Drucker. Da andererseits die LPD- oder RLPR-Subsysteme keine Selektion von Seitenbereichen innerhalb einer Druckdatei unterstützen, wird hier der entsprechende Teil des Dialogs ausgegraut und die Datei immer "am Stück" gedruckt. Tabelle 1 gibt einen Überblick über gängige Optionen, von denen allerdings nur CUPS alle unterstützt.

Tabelle 1: Gängige Druckoptionen im <C>kprinter<C>-Dialog

Copies Auflagenhöhe definieren, festlegen, ob in umgekehrter Reihenfolge gedruckt werden und ob der Output der Reihenfolge nach (1-2-3-…, 1-2-3-…, 1-2-3-….) oder seitenweise (1-1-1-…, 2-2-2-…, 3-3-3-…) erfolgen soll.
Set as default Macht den gegenwärtigen Drucker zum Standard-Drucker; jeder Benutzer kann diese Einstellung unterschiedlich vornehmen.
Output file mit Browse... Ermöglicht die Angabe der (PostScript-)Datei, in die gedruckt werden soll, falls man als Special Printer Print to File wählt.
Preview Schickt die Datei nicht zum Zieldrucker, sondern zeigt sie in einer Vorschau mit kghostview an.

Der vermutlich wichtigste Eintrag lautet Properties... Wenn Sie darauf klicken, informiert Sie ein Dialog mit drei Karteikarten über mögliche Job-Optionen (Abbildung 3).

Abbildung 3: Job-Optionen

Drucker-Eigenschaften

Die Karte General ist die Heimat der Eigenschaften, die bei allen Druckern gleichermaßen eingestellt werden können. Bei manchen Print-Subsystemen ist sie allerdings nicht vorhanden. Alle Drucksysteme bieten jedoch die Karteikarte Filters, eventuell als einzige. Beim ersten Aufruf erscheint hier ein leeres Fenster (Abbildung 4).

Abbildung 4: Der passende Filter für Ihre Druckjobs

Über das "Trichter-Icon" aktivieren Sie für den entsprechenden Druckjob einen von derzeit drei vorinstallierten Filtern:

  • enscript verschönert den Ausdruck von Nur-Text-Dateien beispielsweise durch Syntax-Highlighting,
  • Generic image to PS filter dreht, skaliert und zentriert den Ausdruck einer Grafikdatei und
  • der PDF Writer erzeugt PDF.

Jeder der vordefinierten Filter ist über einen kleinen Dialog beeinflussbar (Abbildung 5).

Abbildung 5: Beeinflussung des Enscript-Filters

Die Karteikarte Advanced eröffnet den Zugriff auf alle in einer PPD (PostScript Printer Description", siehe Artikel ab Seite 38) definierten, gerätespezifischen Drucker-Features. Sie ist nur bei Verwendung von CUPS vorhanden. Abbildung 6 zeigt die Wahlmöglichkeiten bei einem HP Mopier 240, für dessen Ansteuerung die originale PPD des Windows-Treibers (mit zusätzlich ein-editierten Wasserzeichen) verwendet wird.

Abbildung 6: Drucker-Features für Fortgeschrittene

Wenn Sie mehr über die Verwendungsmöglichkeiten des kprinter-Kommandos erfahren wollen, können Sie sich über

kprinter --help

eine Kurz-Liste aller Möglichkeiten anzeigen lassen.

<C>kprinter<C> für Aliens

Ein Klick auf das Druckersymbol oder die Menüauswahl Datei / Drucken... fast jeder beliebigen KDE-2.2-Anwendung startet kprinter. Aber auch Nicht-KDE-Programme wie Netscape lassen sich damit ausstatten, sodass sich mehr Möglichkeiten als durch den anwendungseigenen Drucker-Dialog bieten.

Abbildung 7: Netscape mit kprinter

Netscape erinnert sich immer an das zuletzt verwendete Druck-Kommando. Dieser Eintrag ist jederzeit veränderlich. Bisher drucken Sie vermutlich mit einem einfachen lpr auf dem Standard-Drucker oder mit lpr -PName_meines_Druckers auf einem bestimmten logischen Drucker. Ersteren Befehl ersetzen Sie durch den Eintrag kprinter, letzteren durch kprinter -d Name_meines_Druckers (-d für "destination", Abbildung 7). Ein Klick auf Drucken führt nun geradewegs zum kprinter-Fenster.

Bei StarOffice ist die Umänderung des Druckbefehls nicht so offensichtlich. Sie müssen als root das Programm spadmin (Star Office Printer Administration) starten. Es befindet sich im Installationsverzeichnis von StarOffice im Unterverzeichnis program.

Prüfen Sie, ob unter Eingerichtete Drucker bereits der Eintrag Generic Printer vorhanden ist. Ansonsten wählen Sie diesen unter Installierte Druckertreiber aus. Klicken Sie dann auf Als neuen Drucker hinzufügen.

Markieren Sie den Generic Printer. Dann klicken Sie auf Verbinden.... Wählen Sie unter Verfügbare Queues die default_queue aus, und ändern Sie den Wert auf

default_queue=kprinter

Eventuell müssen Sie den absoluten Pfad verwenden, z. B.

default_queue=/opt/kde/bin/kprinter

Bestätigen Sie mit OK, und wählen Sie zum Abschluss Einrichten.... Stellen Sie Ihr Papierformat ein. Es bietet sich an, in einem Atemzug die Auflösung (Resolution) anzupassen, wenn Sie einen höheren Wert benötigen. Überprüfen Sie die übrigen Einstellungen, bevor Sie den Dialog schließen.

Abbildung 8: Auch StarOffice und kprinter vertragen sich

Sehr altmodische Programme – und dazu gehören in diesem Fall alle KDE-Programme bis Version 2.1.1 – benutzen leider lpr als "fest verdrahtetes" Druckkommando. Dieses Kommando sucht in der Printcap nach den dort definierten Druckern. Die grafische Bedienung beschränkt sich dabei darauf, per Mausklick einen der vorhandenen Drucker auszuwählen. In diesen Fällen besteht keine direkte Möglichkeit, kprinter als Druckkommando einzusetzen. Sie können lpr allerdings in z. B. lpr-alt umbenennen und einen symbolischen Link von lpr auf kprinter anlegen.

Neue Drucker

Ob "mitten im Druckdialog" (vgl. Tabelle 1) oder ganz in Ruhe im KDE-Kontrollzentrum – der Printer Wizard ist immer dabei, wenn es gilt, einen zusätzlichen Drucker über RLPR oder CUPS einzurichten. Für RLPR bedarf es in der Regel keine spezielle Berechtigung, sonst ist der Wizard meist nur mit root-Rechten zu erreichen.

Das Programm greift Ihnen bei Bedarf bei der Einrichtung von CUPS-Druckern kräftig unter die Arme, denn es kann das Netz "scannen". Die Parameter für die Netz-Durchsuchung lassen sich sogar genau einstellen (Abbildung 9).

Abbildung 9: Scannen nach HP-JetDirect-Druckern (Port 9100)

Dabei findet der Wizard freigegebene Windows-Drucker mit Hilfe von Samba ebenso wie HP JetDirect- oder IPP-Drucker (Abbildung 10).

Abbildung 10: Fündig geworden bei HP-JetDirect-Druckern

Print-Subsystem konfigurieren

Auch das Drucksystem selbst lässt sich über das KDE-Kontrollzentrum (System / Printing Manager) weitgehend konfigurieren (Abbildung 11).

Abbildung 11: Der Printing Manager im Kontrollzentrum

Selbst auf einem jungfräulichen System entdecken Sie hier mindestens vier Special- oder Pseudo-Drucker mit Namen, die ihren Zweck bereits nahelegen: Mail PDF File verschickt per E-Mail PDF-Dateien Ihrer "Ausdrucke". Dazu muss KMail vorhanden und konfiguriert sein, ebenso Ghostscript mit pstopdf. Dieser Pseudo-Drucker konvertiert die Druckdatei nach PDF und öffnet KMail. Nach Eingabe einer E-Mail-Addresse verschickt er das erzeugte PDF als Mail-Anhang.

Send To Fax funktioniert nur, wenn man ein entsprechendes Fax-Backend auf demselben Rechner installiert hat, etwa HylaFax. Die beiden Print To File-Drucker sind hingegen immer ansprechbar. Sie tun, was ihr Name suggeriert: die Druckdatei nach PDF bzw. PostScript konvertieren und abspeichern.

Gefällige Ansichten

Die Ansicht des Druckerfensters im Printing Manager können sie nach Ihrem Geschmack gestalten. Ein Klick mit der rechten Maustaste auf den Fenster-Hintergrund öffnet ein Kontextmenü. Um Zugang zu Informationen und Einstellungen zu erhalten, die auf den vier Karteikarten mit den Überschriften Information, Jobs, Properties und Instances stehen, wählt man View / Show Printer Info aus (Abbildung 12).

Abbildung 12: Verschiedene Ansichten zur Wahl

Am oberen Rand des Fensters ist eine Reihe von Icons zu sehen. Diese sind leider unbeschriftet. Wenn die Maus kurze Zeit über einem Icon geparkt wird, kommt ein Tooltipp zum Vorschein, der die Bedeutung des Buttons erklärt. Am wichtigsten sind der PrinterWizard, dessen Icon in Tabelle 1 gezeigt ist, und die Schraubenschlüssel-Icons, die der Konfiguration des Drucksystems bzw. des ausgewählten Druckers dienen.

Zähmung der Druck-Daemonen

Um den Drucker-Daemon über das KDE-Kontrollzentrum zu konfigurieren, sollten Sie root sein. Schneller zum Ziel kommen Sie mit dem Kommandozeilen-Befehl kcmshell printmgr, der nur das Printing-Manager-Modul ohne das restliche Kontrollzentrum startet (Abbildung 13).

Hier ändern und speichern Sie Druckereigenschaften. Drucker lassen sich hinzufügen oder löschen, anhalten und erneut starten. Jobs können gestoppt, neugestartet, gelöscht oder auf einen anderen Drucker geschoben werden.

Abbildung 13: Alleinstehend – das Printing Manager Modul des Kontrollzentrums

Die wichtigsten Einstellungen betreffen den CUPS-Daemon. Sie fehlen, wenn Sie andere Print-Subsysteme benutzen. Ihre Einstellungen schreibt der Printing Manager in eine neue Konfigurationsdatei /etc/cups/cupsd.conf. Damit Ihnen hier keine Daten verloren gehen, legen Sie eine Sicherheitskopie an, bevor Sie irgend etwas verändern.

cp /etc/cups/cupsd.conf ~/cupsd.conf.bak

kopiert diese wichtige Datei unter dem neuen Namen cupsd.conf.bak ins eigene Home-Verzeichnis.

CUPS macht Ihren Rechner normalerweise zuerst zum Client. Das heisst: Sie können automatisch solche Drucker mitbenutzen (ohne selbst Treiber zu installieren), die von anderen CUPS-Rechnern freigegeben wurden. Durch diese Drucker-Freigabe werden CUPS-Rechner zu Servern, da sie dann Aufträge anderer Clients bei sich verarbeiten (spoolen und filtern).

Wenn Sie Ihren Rechner zu einem CUPS-Server umstellen möchten, müssen Sie mindestens einen Drucker lokal installieren. Sie beginnen die Konfiguration durch Klicken auf das dritte Icon von rechts (Configure Server, Schraubenschlüssel).

Unter "Browsing" kreuzen Sie den Eintrag Enable Browsing auf der linken Seite des Dialogs an (Abbildung 14). Empfehlenswert ist es, die Option Use short names when possible abzuwählen, da dann deutlicher sichtbar wird, an welchem Rechner ein benutzter Drucker angeschlossen ist. Vergessen Sie nicht, die Sicherheitseinstellungen im Punkt Security zu überprüfen.

Bevor Sie Ihre Drucker in einem größeren Netz über CUPS freigeben wollen, sollten Sie sich unbedingt ein wenig mit der CUPS-Dokumentation beschäftigen, damit Sie die Software so einrichten, wie Sie es brauchen. Die Voreinstellungen sind nicht für alle Fälle ideal; sie lassen sich jedoch beinahe an jeden Zweck anpassen.

Abbildung 14: Ein neuer CUPS-Server

Einen ersten Einblick in die umfangreichen Konfigurationsmöglichkeiten des CUPS-Daemon erhalten Sie über den Short help...-Button. Dieser verwandelt den Mauszeiger in ein Fragezeichen. Auf einen Klick in ein Feld, das Einträge ermöglicht, erscheint eine Kurzhilfe.

Sollte Ihnen diese nicht detailliert genug sein, finden Sie Näheres in den offiziellen CUPS-Manuals. Derzeit leider nur in Englisch verfügbar, sind sie zu finden unter http://localhost:631/documentation.html (falls der CUPS-Daemon aktiv ist) oder im Verzeichnis /usr/shar/doc/cups/.

Glossar

Print-Subsystem

Linux kennt verschiedene Systemprogramme, die das system- und netzwerkweite Drucken organisieren. Da KDEPrint eine Zwischenstufe darstellt, unter der bildlich gesprochen das Drucksystem liegt, wird letzteres hier als Print- oder Druck-Subsystem bezeichnet.

Spoolen und Filtern

Ein Druckjob kann nicht immer sofort und nicht für jede Datei in ihrem Originalformat weitergegeben werden. Das Zwischenlagern von Druckjobs heisst "Spoolen", ihre Formatkonvertierung zur mundgerechten Aufbereitung für den Zieldrucker "Filtern".

LPRng

Eine Neu-Implementierung des alten Protokolls LPR/LPD; das "ng" steht für "new generation". Es baut zusätzlich eigene Erweiterungen ein, die zwar Schwächen von LPR/LPD beheben, jedoch nicht standardisiert sind und von anderen Systemen nicht verstanden werden.

Daemon

Ursprünglich "Disk and execution monitor"; ein ständig im Hintergrund laufendes Programm, das wichtige Dienste system- und eventuell netzwerkweit zur Verfügung stellt.

Port

Eine eindeutige (prinzipiell frei zuteilbare) Kenn-Ziffer, die jedem Netzwerkdienst zugeordnet wird, da über die Angabe einer IP-Adresse allein zwar ein Rechner, aber noch kein dort laufender Dienst gezielt angesprochen werden kann. Manche Dienste haben "angestammte" Ports, wie z. B. Webserver, die meist über Port 80 addressiert werden. CUPS verwendet Port 631.

printcap

Die Konfigurationsdatei für das klassische Drucksystem LPR/LPD beinhaltet u. a. vorhandene Drucker, ihre Anschlussart und welchen Filter der "Line Printer Daemon" lpd verwenden muss, bevor er Dateien an den entsprechenden Drucker weiterleiten darf. CUPS braucht selbst keine Printcap, kann jedoch eine solche Datei zur Verfügung stellen. Einige Minimaleinträge – die Druckernamen – genügen, und schon sind ältere Anwendungen, die ohne Printcap partout keinen Druckauftrag freigeben, zufrieden.

lprold

Bei SuSE die Paket-Bezeichnung für das klassische LPR/LPD-Drucksystem.

Syntax-Highlighting

Beim Drucken Hervorhebung von Schlüsselwörtern oder Kommentaren in Programm- oder Konfigurationsdateien durch Fett- oder Kursivdruck.

Samba

Mit Hilfe dieser Software werden Linux-Rechner in einem Windows-Netz als gleichwertige Partner akzeptiert. Sie beherrscht das SMB-Protokoll, das Windows für die Netz-Kommunikation benutzt.

Infos

[1] KDEPrint-Homepage: http://kdeprint.sourceforge.net/

[2] RLPR: http://www.truffula.com/rlpr/

[3] CUPS: http://www.cups.org/

[4] CUPS-FAQ (deutsch): http://www.danka.de/printpro/faq.html

[5] KDEPrint-Handbook-Aufruf im Konqueror http:// help:/printmgr

[6] LPRng: http://www.lprng.org/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare