<chapter id="technical-overview">
<title>Technische Übersicht</title>

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

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

<sect1 id="brief-description">
<title>Eine kurze Beschreibung von &tdeprint;</title>

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

<sect2 id="what-tdeprint-is-not">
<title>Was dieses Programm <emphasis>nicht</emphasis> ist</title>

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

</sect2>

<sect2 id="what-kde-print-is">
<title>Was dieses Programm <emphasis>ist</emphasis></title>
<para>&tdeprint; ist eine Schicht zwischen dem Druckauftragsspeicher, dem Daten verarbeitenden Drucksystem und der Anwendung, die drucken will. &tdeprint; 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.</para>

<para>&tdeprint; 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 &tdeprint; portieren. Benutzer können ihr Drucksystem einfach auswählen und einrichten.</para>

<para>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.</para>

</sect2>

</sect1>

<sect1 id="different-users">
<title>&tdeprint;: Eine Vielzahl von Möglichkeiten für eine Vielzahl von Personen</title>

<para>&tdeprint; bietet unterschiedlichen Personen unterschiedliche Möglichkeiten.</para>

<sect2 id="what-users-can-do">
<title>Was Benutzer und Systemverwalter mit &tdeprint; machen können</title>

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

<para>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 &tdeprint; mitgeliefert.</para>

</sect2>


<sect2 id="what-developers-can-do">
<title>Was &kde;-Entwickler mit &tdeprint; machen können ...</title>

<para>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 <classname>QPrinter</classname> der &Qt;-Bibliothek zur Verfügung gestellt. Die Klasse <classname>QPrinter</classname> basierte auf dem in die Jahre gekommenen <quote>Line Printer Daemon</quote> (<acronym>LPD</acronym>). Die &tdeprint;-Bibliothek basiert dagegen auf dem moderneren Common &UNIX; Printing System (&CUPS;), bleibt aber gleichzeitig abwärtskompatibel zu <acronym>LPD</acronym> und anderen weniger entwickelten Drucksystemen. Zudem ist &tdeprint; für alle künftigen Entwicklungen gerüstet.</para>

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

<para>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 <quote>Karteikarten</quote> hinzufügen, wo ihnen die Erweiterung des Standard-&tdeprint; sinnvoll erscheint.</para>


<para>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 <systemitem class="username">root</systemitem>) 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 &tdeprint; im folgenden Bildschirmphoto sehen.</para>

<para>Dieses Bildschirmphoto zeigt ein Beispiel des Dienstprogrammes &kcron;. <screenshot>
<screeninfo>&kcron;-Dienstprogramm: Ein kleines Beispiel eines Systemwartungsauftrags, wie er auf der Benutzeroberfläche von &kde; dargestellt wird.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kcron_to_be_printed.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Die &kcron;-Entwickler überlassen Ihnen die Wahl, ob Sie die ganze Tabelle oder nur den markierten Teil drucken wollen.</phrase></textobject>
</mediaobject>
</screenshot>
</para>

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


<screenshot>
<screeninfo>Die Erweiterung von &kcron; zum &tdeprint;-Dialog.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_with_kcron_developer_special.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Die Erweiterung von &kcron; zum &tdeprint;-Dialog.</phrase></textobject>
<caption>
<para>Die Erweiterung von &kcron; zum &tdeprint;-Dialog.</para>
</caption>
</mediaobject>
</screenshot>

</sect2>

<sect2>
<title>Welche Möglichkeiten &tdeprint; seinen Benutzern bietet ...</title>

<para>Die einfach zu benutzende Schnittstelle von &tdeprint; 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)</para>

<para>Die meisten &UNIX;-Anwender sind das Drucken über <acronym>LPD</acronym> gewohnt. <acronym>LPD</acronym> 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 <acronym>LPD</acronym> Funktionen wie Zweiwege-Kommunikation, Authentifizierung, Zugriffskontrolle und Verschlüsselung.</para>

<para>&tdeprint; kann &CUPS; benutzen, um folgendes zusätzlichen Funktionen anzubieten:</para>

<itemizedlist>
<listitem>
<para>Durchsuchen des <acronym>LAN</acronym> nach verfügbaren Druckern,</para>
</listitem>
<listitem>
<para>Basic- oder Digest-Authentifizierung und Authentifizierung über Zertifikate,</para>
</listitem>
<listitem>
<para>Zugriffskontrolle auf der Basis von <acronym>IP</acronym>-Adressen, Netzadressen, Netzmasken, Hostnamen und Domainnamen,</para>
</listitem>
<listitem>
<para>sowie 128-Bit-TLS- oder SSL3-Verschlüsselung von Druckdaten, um das Abhören von Daten zu verhindern oder es zumindest deutlich zu erschweren.</para>
</listitem>
</itemizedlist>

<para>Dies macht &tdeprint; zu einer viel robusteren und zuverlässigeren Lösung als die Benutzung des alten <acronym>LPD</acronym>.</para>

</sect2>
<sect2>
<title>Wie Sie auf &tdeprint; zugreifen können </title>

<para>Sie können auf vier verschiedenen Wegen auf &tdeprint; &mdash; oder Teile davon &mdash; zugreifen:</para>

<itemizedlist>
<listitem><para>Durch Ihre Anwendungen, wenn Sie den Druckdialog aufrufen (entweder durch <menuchoice><guilabel>Datei</guilabel> <guilabel>Drucken ...</guilabel></menuchoice> oder durch den Knopf mit dem kleinen Druckersymbol). Dies öffnet den Druckdialog.</para></listitem>

<listitem><para>Durch den eingegebenen Befehl <command>kprinter</command> in einem <application>Terminal</application>, in einem &konsole;-Fenster oder über das Fenster <guilabel>Befehl ausführen ...</guilabel>. Auch dies öffnet den Druckdialog.</para></listitem>

<listitem><para>Durch den <inlinemediaobject><imageobject> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject> </inlinemediaobject> Knopf, der das &kcontrolcenter; aufruft. Danach finden Sie die Verwaltungs-Einstellungen von &tdeprint; unter <menuchoice><guilabel>System</guilabel><guilabel>Druckerverwaltung</guilabel></menuchoice>.</para></listitem>

<listitem><para>Geben Sie an der Befehlszeile (&konsole; oder mini-<acronym>CLI</acronym>) <userinput> <command>tdecmshell</command> <option>printers</option></userinput> ein, um den administrativen Teil von &tdeprint; zu öffnen. </para></listitem>
</itemizedlist>
<screenshot>
<screeninfo>&kprinter;-Dialog, der vom Fenster <guilabel>Befehl ausführen ...</guilabel> aus gestartet wird</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_called_from_run_command.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Start des &kprinter;-Dialogs, aus dem Fenster <guilabel>Befehl ausführen ...</guilabel>.</phrase></textobject>
<caption><para>Start des &kprinter;-Dialogs, aus dem Fenster <guilabel>Befehl ausführen ...</guilabel>.</para></caption>
</mediaobject>
</screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para>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 <guiicon>Assistenten</guiicon>-Knopf klicken (gelb/rot in der Zeichnung).</para>
  
<screenshot>
<screeninfo>&kprinter;-Dialog gestartet (&kivio;-Zeichnung) </screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter-kivio.png"
format="PNG"/></imageobject>
<textobject>
<phrase>&kprinter;-Dialog gestartet (&kivio;-Zeichnung)</phrase></textobject>
<caption><para>&kprinter;-Dialog gestartet (&kivio;-Zeichnung)</para></caption>
</mediaobject>
</screenshot>

</sect2>

</sect1>

</chapter>
