# Technische Übersicht

Dieses Kapitel soll Ihnen eine technische Übersicht zu &kdeprint; geben, die für Nicht-Programmierer verständlich ist.

&kdeprint; ist ein neues, Maßstäbe setzendes Programmpaket, das sowohl &kde;-Benutzern als auch &kde;-Entwicklern einfachen Zugang zu den Druckdiensten bieten soll.

## Eine kurze Beschreibung von &kdeprint;

Zugriff auf die Funktionen von &kdeprint; erhalten Sie auf verschiedene Weise: über die Druckerverwaltung im &kcontrolcenter;, mit dem Befehl `kprinter` oder über den Dialog, der Ihnen beim Drucken angezeigt wird.

### Was dieses Programm nicht ist

&kdeprint; ersetzt nicht das Drucksystem. &kdeprint; enthält kein System für das Zwischenspeichern von Druckaufträgen und es kann auch nicht &PostScript; oder andere Daten verarbeiten.

### Was dieses Programm ist

&kdeprint; ist eine Schicht zwischen dem Druckauftragsspeicher, dem Daten verarbeitenden Drucksystem und der Anwendung, die drucken will. &kdeprint; stellt für &kde;-Entwickler und &kde;-Benutzer eine gemeinsame und einheitliche Schnittstelle für die verschiedenen unterstützten Drucksysteme zur Verfügung. Außerdem läßt es es sich den eigenen Bedürfnissen anpassen und ist in hohem Maße konfigurierbar.

&kdeprint; ist sowohl für &kde;-Entwickler als auch für normale Benutzer einfach zu handhaben. Entwickler können Ihre Anwendungen mit minimalen Änderungen vom alten &Qt;-Drucksystem zu &kdeprint; portieren. Benutzer können ihr Drucksystem einfach auswählen und einrichten.

Ein Hinweis für neue &kde;-Benutzer: &Qt; ist die grundlegende Bibliothek und für die grafische Darstellung zuständig, die von allen &kde;-Anwendungen benutzt wird. &Qt; wird von TrollTech, einer norwegischen Softwarefirma, entwickelt.

## &kdeprint;: Eine Vielzahl von Möglichkeiten für eine Vielzahl von Personen

&kdeprint; bietet unterschiedlichen Personen unterschiedliche Möglichkeiten.

### Was Benutzer und Systemverwalter mit &kdeprint; machen können

&kdeprint; ermöglicht Benutzern und/oder Systemverwaltern, abhängig von ihren Benutzerrechten, über eine graphische Benutzeroberfläche (&GUI;) den Zugriff auf Drucksysteme wie &CUPS;, LPD, RLPR, LPRng PDQ &etc;. Durch &kdeprint; können Sie auf komfortable Weise Drucken und Druckaufträge, Drucker und den Druckdämon verwalten.

Erfahrene Benutzer werden die Möglichkeit zu schätzen wissen, jeden funktionierenden Filter für Druckdaten zwischen die Ausgabe ihrer Anwendung und den Eingang des Drucksystems schalten zu können. Einige Beispiele dafür werden bereits mit dem vorinstallierten &kdeprint; mitgeliefert.

### Was &kde;-Entwickler mit &kdeprint; machen können ...

Benötigt ein &kde;-Entwickler für seine Anwendung Zugriff auf Druckfunktionen, programmiert er die diese nicht von Grund auf neu. Vor &kde; 2.2 wurden diese Funktionen von der Klasse `QPrinter` der &Qt;-Bibliothek zur Verfügung gestellt. Die Klasse `QPrinter` basierte auf dem in die Jahre gekommenen Line Printer Daemon (LPD). Die &kdeprint;-Bibliothek basiert dagegen auf dem moderneren Common &UNIX; Printing System (&CUPS;), bleibt aber gleichzeitig abwärtskompatibel zu LPD und anderen weniger entwickelten Drucksystemen. Zudem ist &kdeprint; für alle künftigen Entwicklungen gerüstet.

&kde;-Entwickler müssen den Quelltext in ihren Anwendungen nur minimal verändern, um die neue Klasse &kdeprint; zu benutzen: Jeden Aufruf von `QPrinter` müssen sie einfach durch `KPrinter` ersetzen. Durch Ersetzen eines einzigen Buchstabens an einigen wenigen Stellen sind sie schon fertig. Die Anwendungen können dann alle Fähigkeiten der neuen &kdeprint;-Bibliothek benutzen.

Entwickler, die größere Ambitionen oder spezielle Bedürfnisse haben, können aber noch mehr tun: Sie können den Druckdialog für ihreAnwendungen entsprechend anpassen, indem sie zusätzliche Karteikarten hinzufügen, wo ihnen die Erweiterung des Standard-&kdeprint; sinnvoll erscheint.

Ein Beispiel ist das Dienstprogramm &kcron;. Mit diesem Programm lassen sich regelmäßige Programmabläufe auf dem Rechner über eine graphische Oberfläche einrichten. Die Entwickler haben eine Druckfunktion eingebaut, die es Ihnen (oder dem Benutzer root) ermöglicht, selbst auszuwählen, ob Sie die ganze Tabelle (von allen Benutzern) oder nur einen markierten Teil ausdrucken wollen. Sie können die Auswirkung auf &kdeprint; im folgenden Bildschirmphoto sehen.

Dieses Bildschirmphoto zeigt ein Beispiel des Dienstprogrammes &kcron;. &kcron;-Dienstprogramm: Ein kleines Beispiel eines Systemwartungsauftrags, wie er auf der Benutzeroberfläche von &kde; dargestellt wird. Die &kcron;-Entwickler überlassen Ihnen die Wahl, ob Sie die ganze Tabelle oder nur den markierten Teil drucken wollen.

Der Dialog zur Änderung der Druckeinstellungen von &kcron;: Die zusätzliche Karteikarte Cron Optionen gehört zu &kcron;, nicht zu &kdeprint;. Es ist eine spezielle Erweiterung, die von den &kcron;-Entwicklern hinzugefügt wurde und nicht von &kdeprint; stammt, aber von diesem ausgeführt wird. Entwickler anderer Anwendungen können so bei Bedarf ihre eigenen zusätzlichen Funktionen einbauen.

Die Erweiterung von &kcron; zum &kdeprint;-Dialog.
Die Erweiterung von &kcron; zum &kdeprint;-Dialog.

Die Erweiterung von &kcron; zum &kdeprint;-Dialog.

### Welche Möglichkeiten &kdeprint; seinen Benutzern bietet ...

Die einfach zu benutzende Schnittstelle von &kdeprint; zu den unterstützten Drucksystemen beseitigt natürlich nicht die traditionellen Schwächen mancher dieser Systeme. Es beseitigt aber manche störenden Ecken und Kanten. Verschiedene Benutzer können verschiedene Drucksysteme auf derselben Maschine benutzen. Ein Benutzer hat über den Druckdialog die Möglichkeit im laufenden Betrieb das Drucksystem für den nächsten Druckauftrag zu wechseln. (Dies ist nur möglich, wenn die verschiedenen Drucksysteme so installiert sind, dass die sich nicht gegenseitig in die Quere kommen)

Die meisten &UNIX;-Anwender sind das Drucken über LPD gewohnt. LPD stellt nur einfache, unflexible Druckfunktionen zur Verfügung und lässt viele Funktionen modernererDrucksysteme wie &CUPS; vermissen. Trotz der Möglichkeit über eine beliebige Distanz zu drucken (&zb; TCP/IP basiert), fehlen LPD Funktionen wie Zweiwege-Kommunikation, Authentifizierung, Zugriffskontrolle und Verschlüsselung.

&kdeprint; kann &CUPS; benutzen, um folgendes zusätzlichen Funktionen anzubieten:

- Durchsuchen des LAN nach verfügbaren Druckern,

- Basic- oder Digest-Authentifizierung und Authentifizierung über Zertifikate,

- Zugriffskontrolle auf der Basis von IP-Adressen, Netzadressen, Netzmasken, Hostnamen und Domainnamen,

- sowie 128-Bit-TLS- oder SSL3-Verschlüsselung von Druckdaten, um das Abhören von Daten zu verhindern oder es zumindest deutlich zu erschweren.

Dies macht &kdeprint; zu einer viel robusteren und zuverlässigeren Lösung als die Benutzung des alten LPD.

### Wie Sie auf &kdeprint; zugreifen können

Sie können auf vier verschiedenen Wegen auf &kdeprint; — oder Teile davon — zugreifen:

- Durch Ihre Anwendungen, wenn Sie den Druckdialog aufrufen (entweder durch Datei Drucken ... oder durch den Knopf mit dem kleinen Druckersymbol). Dies öffnet den Druckdialog.

- Durch den eingegebenen Befehl `kprinter` in einem Terminal, in einem &konsole;-Fenster oder über das Fenster Befehl ausführen .... Auch dies öffnet den Druckdialog.

- Durch den Knopf, der das &kcontrolcenter; aufruft. Danach finden Sie die Verwaltungs-Einstellungen von &kdeprint; unter System Druckerverwaltung.

- Geben Sie an der Befehlszeile (&konsole; oder mini-CLI) ``kcmshell` `printers`` ein, um den administrativen Teil von &kdeprint; zu öffnen.

&kprinter;-Dialog, der vom Fenster Befehl ausführen ... aus gestartet wird
Start des &kprinter;-Dialogs, aus dem Fenster Befehl ausführen ....

Start des &kprinter;-Dialogs, aus dem Fenster Befehl ausführen ....

Hier sehen Sie eine &kivio;-Zeichnung des &kprinter;-Dialogs, wie dieser nach dem Start erscheint. Sie können jederzeit neue Drucker hinzufügen, indem Sie auf den kleinen Assistenten-Knopf klicken (gelb/rot in der Zeichnung).

&kprinter;-Dialog gestartet (&kivio;-Zeichnung)
&kprinter;-Dialog gestartet (&kivio;-Zeichnung)

&kprinter;-Dialog gestartet (&kivio;-Zeichnung)