--- printingorig.sgml	2004-08-20 00:27:27.000000000 +0200
+++ printingde.sgml	2004-08-20 00:48:00.000000000 +0200
@@ -1701,12 +1701,13 @@
   </sect1>
 
   <sect1 id="printing-advanced">
-    <title>* Erweiterte Drucker-Konfiguration</title>
+    <title>Erweiterte Drucker-Konfiguration</title>
 
-    <para>Dieser Abschnitt ist noch nicht &uuml;bersetzt.  Lesen Sie
-      bitte <ulink
-      url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-advanced.html">
-      das Original in englischer Sprache</ulink>.</para>
+    <para>In diesem Abschnitt werden Filter zum Drucken speziell formatierter Dateien</para>
+
+<para>This section describes filters for printing specially formatted
+      files, header pages, printing across networks, and restricting and
+      accounting for printer usage.</para>
 
     <sect2 id="printing-advanced-filter-intro">
       <title>* Filter</title>
@@ -1898,22 +1899,376 @@
   </sect1>
 
   <sect1 id="printing-lpd-alternatives">
-    <title>* Alternativen zum
+    <title>Alternativen zum
       Standard-<application>LPD</application>-System</title>
 
-    <para>Dieser Abschnitt ist noch nicht &uuml;bersetzt.  Lesen Sie
-      bitte <ulink
-      url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-lpd-alternatives.html">
-      das Original in englischer Sprache</ulink>.</para>
+    <para>Wenn Sie dieses Kapitel bis zu dieser Stelle komplett gelesen
+      haben, dann wissen Sie jetzt so ziemlich alles, was es &uuml;ber das
+      Standard-<application>LPD</application>-System von FreeBSD zu wissen
+      gibt. Und wahrscheinlich sind Ihnen auch viele seiner
+      Unzul&auml;nglichkeiten aufgefallen. Dies führt naturgem&auml;&szlig;
+      zu der Frage: <quote>Welche anderen Drucksysteme gibt es sonst noch
+      f&uuml;r FreeBSD?</quote></para>
+
+    <variablelist>
+      <varlistentry>
+	<term>LPRng</term>
+
+ 	<indexterm><primary>LPRng</primary></indexterm>	  
+	<listitem>
+	  <para><application>LPRng</application> steht f&uuml;r
+	    <quote>LPR: the Next
+	    Generation</quote> und ist eine von Grund auf neu geschriebene Version
+        von PLP. Das Programm wurde gemeinsam von Patrick
+        Powell und dem haupts&auml;chlichen Maintainer von PLP, Justin
+        Mason, entwickelt .  Die offizielle Webseite von
+	    <application>LPRng</application> ist unter <ulink
+	      url="http://www.lprng.org/"></ulink> zu finden.</para>
+	</listitem>
+      </varlistentry>
+      <varlistentry>
+	<term>CUPS</term>
+
+ 	<indexterm><primary>CUPS</primary></indexterm>	  
+	<listitem>
+
+      <para><application>CUPS</application>, das Common UNIX Printing
+	    System, stellt eine portable Abstraktionsschicht zum
+        Drucken f&uuml;r alle auf &unix; basierenden Betriebsysteme bereit.
+        Es ist von Easy Software entwickelt worden, um f&uuml;r alle
+        &unix;-Hersteller und -Benutzer
+        eine einheitliche Standardl&ouml;sung zum Drucken
+        bereitzustellen.</para>
+
+	  <para><application>CUPS</application> verwendet das Internet Printing
+	    Protocol (<acronym>IPP</acronym>) als Grundlage f&uuml;r die Verwaltung
+	    von Druckauftr&auml;gen und -warteschlangen.  Das Protokoll des
+        Line Printer Daemon (<acronym>LPD</acronym>), Server Message Block
+	    (<acronym>SMB</acronym>), und AppSocket (bzw. JetDirect)
+	    werden zus&auml;tzlich unterst&uuml;tzt, allerdings mit
+        verringerter Funktionalit&auml;t. CUPS erm&ouml;glicht
+        zus&auml;tzlich das Durchst&ouml;bern der Liste der Netzwerkdrucker
+        sowie das Drucken mit Hilfe auf PostScript Printer Description
+	    (<acronym>PPD</acronym>) basierender Druckeroptionen und
+        erlaubt damit zeitgem&auml;&szlig;es Drucken unter&unix;.</para>
+
+	  <para>Die offizielle Webseite von <application>CUPS</application> ist <ulink
+	    url="http://www.cups.org/"></ulink>.</para>
+	</listitem>
+      </varlistentry>
+    </variablelist>
   </sect1>
 
   <sect1 id="printing-troubleshooting">
-    <title>* Fehlersuche und Problembehebung</title>
+    <title>Fehlersuche und Problembehebung</title>
+
+    <para>Nachdem Sie einen einfachen Test mit &man.lptest.1;
+      durchgef&uuml;hrt haben, haben Sie vielleicht, anstatt des korrekten
+      Ausdrucks, eins der folgenden Resultate bekommen:</para>
+
+    <variablelist>
+      <varlistentry>
+	<term>Es hat erst nach einer gewissen Verzögerung funktioniert; oder
+    das Blatt ist nach dem Bedrucken im Drucker verblieben, als w&auml;re
+    der Druckvorgang noch nicht abgeschlossen.</term>
+
+	<listitem>
+	  <para>Der Drucker druckte zwar die obige Seite, hielt aber eine
+        Zeit lang inne und tat solange garnichts.
+        Tatsächlich mussten Sie vielleicht einen Knopf Ihres Druckers
+        wie PRINT REMAINING oder FORM FEED dr&uuml;cken, um den Drucker
+        zur Arbeit zu &uuml;berreden.</para>
+
+	  <para>Wenn das der Fall ist hat der Drucker vermutlich vor dem
+        eigentlichen Drucken gewartet, ob noch weitere Daten f&uuml;r
+        Ihren Druckauftrag gesendet werden. Um dieses Problem zu
+        beheben, k&ouml;nnen Sie den Text-Filter anweisen, ein
+        <quote>Form Feed</quote>-Zeichen (oder was auch immer sonst n&ouml;tig sein solllte)
+        an den Drucker zu senden. Dies reicht f&uuml;r gew&ouml;hnlich aus,
+        um den Drucker zum Ausdrucken des noch in seinem internen Puffer
+        verbliebenen Textes zu bewegen. Au&szlig;erdem ist dies auch
+        n&uuml;tzlich, um sicherzustellen dass jeder Druckauftrag eine
+        vollst&auml;ndige letzte Seite beansprucht, so dass der
+        n&auml;chste Auftrag nicht auf der selben Seite beginnt, auf
+        welcher der vorherige geendet hat.</para>
+
+	  <para>Der folgende Ersatzcode f&uuml;r das Shell-Skript
+	    <filename>/usr/local/libexec/if-simple</filename> gibt
+	    ein <quote>Form Feed</quote> aus, nachdem er den Auftrag an den Drucker
+        schickt:</para>
+
+	  <programlisting>#!/bin/sh
+#
+# if-simple - Einfacher Eingabefilter f&uuml;r lpd
+# Installiert unter /usr/local/libexec/if-simple
+#
+# Kopiert stdin einfach nach stdout. Ignoriert alle Filter-Argumente.
+# Schreibt ein Form-Feed-Zeichen (\f) nach dem Ende des Druckauftrages.
+
+/bin/cat &amp;&amp; printf "\f" &amp;&amp; exit 0
+exit 2</programlisting>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>Es kommt zum <quote>Treppeneffekt (Staircase Effect).</quote></term>
+
+	<listitem>
+	  <para>Sie haben den folgenden Effekt auf dem Ausdruck erhalten:</para>
+
+	  <programlisting>!"#$%&amp;'()*+,-./01234
+                "#$%&amp;'()*+,-./012345
+                                 #$%&amp;'()*+,-./0123456</programlisting>
+
+	  <indexterm><primary>MS-DOS</primary></indexterm>
+ 	  <indexterm><primary>OS/2</primary></indexterm>
+ 	  <indexterm><primary>ASCII</primary></indexterm>
+	  <para>Sie sind zu einem weiteren Opfer des <emphasis>Treppeneffekts
+	    </emphasis> geworden. Verursacht wird dieser Effekt von
+        unterschiedlichen Ansichten dar&uuml;ber, welche Zeichen den
+        Beginn einer neuen Zeile anzeigen sollen. &unix;-&auml;hnliche
+        Betriebssysteme verwenden daf&uuml;r ein einzelnes Zeichen:
+        ASCII-Code 10, bekannt als Line Feed (LF). &ms-dos;, &os2; und andere
+        verwenden stattdessen ein Zeichenpaar: ASCII-Code 10
+        <emphasis>und</emphasis> ASCII-Code 13, Carriage Return (CR).
+        Viele Drucker verwenden die Konvention von &ms-dos; zur Darstellung
+        von Zeilenumbr&uuml;chen.</para>
+
+	  <para>Wenn Sie nun unter FreeBSD drucken, dann verwendet Ihr Text
+        nur das Zeichen Line Feed. Der Drucker sieht nun das Line Feed
+        und erweitert den Druckbereich um eine Zeile bleibt aber zum
+        Drucken des n&auml;chsten Zeichens in der selben horizontalen
+        Position. Das ist der Grund f&uuml;r das Carriage Return:
+        Es setzt die Position f&uuml;r das folgende Zeichen zur&uuml;ck
+        auf den linken Rand der Seite.</para>
+
+	  <para>Folgendes Verhalten erwartet FreeBSD von Ihrem Drucker:</para>
+
+	  <informaltable frame="none">
+	    <tgroup cols="2">
+	      <tbody>
+		<row>
+		  <entry>Drucker empf&auml;ngt CR</entry>
+		  <entry>Drucker druckt CR</entry>
+		</row>
+
+		<row>
+		  <entry>Drucker empf&auml;ngt LF</entry>
+		  <entry>Drucker druckt CR + LF</entry>
+		</row>
+	      </tbody>
+	    </tgroup>
+	  </informaltable>
+
+	  <para>Es gibt mehrere M&ouml;glichkeiten dieses Verhalten zu erreichen:</para>
+
+	  <itemizedlist>
+	    <listitem>
+	      <para>
+            Benutzen Sie die Konfigurationsoptionen oder -schalter Ihres Druckers um die
+            Interpretation dieser Zeichen zu ver&auml;ndern.
+		    Mit Hilfe des Benutzerhanbuchs des Druckers k&ouml;nnen Sie
+            herausfinden, wie dies zu bewerkstelligen ist.</para>
+
+	      <note>
+	        <para>Wenn Sie Ihren Rechner auch unter anderen Betriebssystemen
+              als FreeBSD booten, m&uuml;ssen Sie Ihren Drucker
+              m&ouml;glicherweise
+		  <emphasis>neu konfigurieren</emphasis>, so dass er wieder die
+          selben Interpretation der Zeichen CR und LF wie die jeweiligen
+          anderen Betriebssysteme verwendet. In diesem Fall werden Sie
+          wohl eine der unten angef&uuml;hrten L&ouml;sungen vorziehen.</para>
+	      </note>
+	    </listitem>
+
+	    <listitem>
+	      <para>Lassen Sie FreeBSD's Treiber f&uuml;r die serielle
+          Schnittstelle das Zeichen LF automatisch in CR+LF konvertieren.
+          Selbstverst&auml;ndlich funktioniert dies nur mit Druckern, die
+          an einer seriellen Schnittstelle angeschlossen werden. Um dieses
+          Feature zu nutzen, m&uuml;ssen Sie die <literal>ms#</literal>
+          Capability verwenden und in <filename>/etc/printcap</filename> den
+          <literal>onlcr</literal>-Modus f&uuml;r den Drucker
+          aktivieren.</para>
+	    </listitem>
+
+	    <listitem>
+	      <para>Senden Sie einen <emphasis>Escape-Code</emphasis> an den
+          Drucker, so dass er das Zeichen LF zeitweilig anders behandelt.
+          Suchen Sie im Handbuch Ihres Druckers nach den Escape-Codes, die
+          Ihr Drucker unterst&uuml;tzt. Wenn Sie einen entsprechenden
+          Escape-Code finden, m&uuml;ssen Sie den Textfilter so anpassen,
+          dass er zuerst den Escape-Code und im Anschluss den Druckauftrag
+          sendet.</para>
+
+	      <indexterm><primary>PCL</primary></indexterm>
+	      <para>Hier folgt nun ein Beispiel-Textfilter f&uuml;r Drucker, die
+          die Hewlett Packard PCL Escape-Codes verstehen. Dieser Filter
+          veranlasst den Drucker LF-Zeichen wie Folgen von LF und CR
+          aufzufassen. Anschlie&szlig;end sendet er den Druckauftrag und
+          zu guter Letzt schickt er ein Form Feed, um die letzte Seite des
+          Druckauftrages auszuwerfen. Dieses Beispiel sollte mit nahezu allen
+          Druckern von Hewlett Packard funktionieren.</para>
+
+	      <programlisting>#!/bin/sh
+#
+# hpif - Einfacher Text-Eingabefilter f&uuml;r lpd f&uuml;r auf HP-PCL basierende Drucker
+# Installiert unter /usr/local/libexec/hpif
+#
+# Kopiert stdin einfach nach stdout.  Ignoriert alle Filterargumente.
+# Wei&szlig;t den Drucker an LF als CR+LF zu interpretieren.
+# Wirft die Seite nach dem Drucken aus.
+
+printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
+exit 2</programlisting>
+
+	      <para>Hier nun als weiteres Beispiel die Datei
+            <filename>/etc/printcap</filename>
+		    von einem Rechner namens <hostid>orchid</hostid>. Er besitzt
+            einen Drucker, welcher an seinen ersten Parallel-Port angeschlossen
+            ist. Der Drucker ist ein Hewlett Packard LaserJet 3Si und er
+            hat den Namen <literal>teak</literal>. Er benutzt das obige
+            Skript als Textfilter:</para>
+
+	      <programlisting>#
+#  /etc/printcap f&uuml;r den Rechner orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+        :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
+        :if=/usr/local/libexec/hpif:</programlisting>
+	    </listitem>
+          </itemizedlist>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>Jede Zeile wurde &uuml;berdruckt.</term>
+
+	<listitem>
+	  <para>Der Drucker hat niemals eine neue Zeile begonnen.
+        Alle Zeilen des Textes wurden auf einer einzigen Zeile aufeinander
+        gedruckt.</para>
+
+	  <para>Dieses Problem ist das <quote>Gegenteil</quote> des
+        oben beschriebenen Treppeneffekts und kommt wesentlich seltener
+        vor. Irgendwo werden die von FreeBSD zum Abschluss einer Zeile
+        benutzten LF-Zeichen als CR-Zeichen interpretiert. Dadurch wird
+        die Druckposition auf den linken Rand der Seite
+        zur&uuml;ck- aber nicht um eine Zeile nach unten gesetzt.</para>
+
+	  <para>Benutzen Sie die Konfigurationsoptionen oder -schalter des
+        Druckers um die folgende Interpretation der Zeichen LF und CR zu
+        erzwingen:</para>
+
+	  <informaltable frame="none">
+	    <tgroup cols="2">
+	      <thead>
+		<row>
+		  <entry>Drucker empf&auml;ngt</entry>
+		  <entry>Drucker druckt</entry>
+		</row>
+	      </thead>
+
+	      <tbody>
+		<row>
+		  <entry>CR</entry>
+		  <entry>CR</entry>
+		</row>
+
+		<row>
+		  <entry>LF</entry>
+		  <entry>CR + LF</entry>
+		</row>
+	      </tbody>
+	    </tgroup>
+	  </informaltable>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>Manche Zeichen wurden nicht gedruckt.</term>
+
+	<listitem>
+	  <para>Der Drucker hat in jeder Zeile ein paar Zeichen nicht gedruckt.
+        Vielleicht ist das Problem auch w&auml;hrend des Druckens schlimmer
+        geworden, so dass der Drucker immer mehr Zeichen ausgelassen hat.</para>
+
+	  <para>Das Problem besteht darin, dass der Drucker mit der Geschwindigkeit
+        mit der der Computer die Daten auf der seriellen Schnittstelle
+        (an einer parallelen Schnittstelle sollte das Problem nicht auftreten)
+        sendet nicht mithalten kann. Es gibt zwei M&ouml;glichkeiten dieses
+        Problem zu l&ouml;sen:</para>
+
+	  <itemizedlist>
+	    <listitem>
+	      <para>Wenn der Drucker die Flusskontrolle mit XON/XOFF
+          unterst&uuml;tzt, k&ouml;nnen Sie in der <literal>ms#</literal>
+          Capability den <literal>ixon</literal>-Modus aktivieren.</para>
+	    </listitem>
+
+	    <listitem>
+	      <para>Unterst&uuml;tzt der Drucker die Carrier-Flusskontrolle,
+            dann sollten Sie den <literal>crtscts</literal>-Modus in der
+		  <literal>ms#</literal> Capability aktivieren.
+          Stellen Sie aber sicher, dass das verwendete Druckerkabel auch
+          f&uuml;r die Carrier-Flusskontrolle geeignet ist.</para>
+	    </listitem>
+	  </itemizedlist>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>Es wurden nur wirre Zeichen gedruckt.</term>
+
+	<listitem>
+	  <para>Der Drucker druckt anstatt des gew&uuml;nschten Textes nur
+        zuf&auml;llige Zeichen.</para>
+
+	  <para>Dies ist f&uuml;r gew&ouml;hnlich ein weiteres Symptom von
+        falschen Kommunikationsparametern im Zusammenhang mit einem seriellen
+        Drucker.
+        Kontrollieren Sie noch einmal die bps-Rate in der
+        <literal>br</literal> Capability und die Parit&auml;tseinstellung
+        (Parity) in der <literal>ms#</literal> Capability. &Uuml;berpr&uuml;fen
+        Sie au&szlig;erdem, ob der Drucker auch tats&auml;chlich die selben
+        Einstellungen verwendet, die in <filename>/etc/printcap</filename>
+        konfiguriert sind.</para>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>Der Drucker hat nicht reagiert.</term>
+
+	<listitem>
+	  <para>
+        Wenn garnichts passiert ist, dann liegt das vermutlich an FreeBSD und
+        nicht an der Hardware. F&uuml;gen Sie die Log File
+        (<literal>lf</literal>) Capability f&uuml;r den Eintrag des
+        entsprechenden Druckers in der Datei <filename>/etc/printcap</filename>
+        hinzu. Hier ist ein Beispieleintrag f&uuml;r <literal>rattan</literal>
+        mit der <literal>lf</literal> Capability:</para>
+
+	  <programlisting>rattan|line|diablo|lp|Diablo 630 Line Printer:\
+        :sh:sd=/var/spool/lpd/rattan:\
+        :lp=/dev/lpt0:\
+        :if=/usr/local/libexec/if-simple:\
+        :lf=/var/log/rattan.log</programlisting>
+
+	  <para>Versuchen Sie jetzt noch einmal zu drucken. &Uuml;berpr&uuml;fen
+        Sie das Log File (in unserem Beispiel
+        <filename>/var/log/rattan.log</filename>) nach etwaigen
+        Fehlermeldungen. Versuchen Sie nun das Problem mit Hilfe der Meldungen
+        aus dem Log zu beheben.</para>
+
+
+	  <para>Wenn Sie keine <literal>lf</literal> Capability angeben,
+	    benutzt <application>LPD</application> standardm&auml;&szlig;ig
+	    <filename>/dev/console</filename>.</para>
+	</listitem>
+      </varlistentry>
+    </variablelist>
+
 
-    <para>Dieser Abschnitt ist noch nicht &uuml;bersetzt.  Lesen Sie
-      bitte <ulink
-      url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-troubleshooting.html">
-      das Original in englischer Sprache</ulink>.</para>
   </sect1>
 </chapter>
 

