# Kapitel 3. Der Einsatz von KLJetTool

Die Dienstprogramme für die Interpretation von Daten, die für den Ausdruck bestimmt sind, sind bei einige Linux-Distributionen besonders "eifrig". Dies führt dazu, dass Dateien mit PJL-Befehlen, die KLJetTool erzeugt, nicht richtig erkannt werden. Daher kommt es mitunter vor, dass diese PJL-Dateien durch verschiedene Filter modifiziert werden und zu Fehlfunktionen führen.

Dieser Abschnitt beschreibt die notwendigen Schritte, um KLJetTool auf einem pre5.0 RedHat Linux System zum Laufen zu bringen (KLJetTool sollte direkt mit RedHat Linux Systemen funktionieren, die auf der Version 5.0 basieren). Ich gehe davon aus, dass Sie vergleichbare Schritte bei anderen Distributionen vornehmen müssen. Aber gleich vorweg: die benötigten Modifikationen sind sehr einfach vorzunehmen! Alles, wofür Sie sorgen müssen, ist, dass die PJL-Dateien unverändert zu Ihrem Drucker gelangen!

Ein RedHat Linux-System kann frisch nach der Installation keine PJL-Dateien erkennen. Daher macht es die unterschiedlichsten Dinge mit der Datei - nur nicht, es einfach unverändert zum Drucker zu senden. Wir müssen dem System also zunächst beibringen, wie es mit einer PJL-Datei umgehen soll. Aber: Bevor Sie jetzt irgendwelche Änderungen an Ihrem bestehenden System vornehmen, sollten Sie sicherstellen, dass KLJetTool auch tatsächlich nicht richtig funktioniert! RedHat und andere Distributionen können zu dem Zeitpunkt, zu dem Sie diese Informationen lesen, bereits Vorkehrungen getroffen haben, dass KLJetTool problemlos arbeitet.

Ich gehe davon aus, dass Linux-Distributionen, die vergleichbar "eifrige" Dienstprogramme für die Druckausgabe verwenden, ebenfalls der richtige Umgang mit PJL-Dateien, die direkt für den Drucker bestimmt sind, beigebracht werden muss.

Bei einem RedHat-Linux System wird bei jedem Ausdruck, der über den Befehl "lpr" läuft, das Skript `/var/spool/lpd/lp/filter` aus dem Verzeichnis `/etc/printcap` aufgerufen. Die integrierten Filter überprüfen zunächst mit Hilfe des Befehls "file", welche Art von Daten in der zu druckenden Datei enthalten sind. Je nachdem, was "file" als richtigen Datentyp erkennt, werden unterschiedliche Programme ausgeführt, die die zu druckenden Daten in ein Format verwandeln, welches der Drucker verstehen kann. Das Programm "file" widerrum verwendet die Datei `/etc/magic`, mit dessen Hilfe es den richtigen Datentyp der zu druckenden Datei zu ermitteln versucht (z.B. PostScript, dvi, text, etc.).

Wenn Sie beispielsweise die PostScript-Datei "meine_datei.ps" drucken wollen, so teilt das Programm "file" dem Skript "filter" mit, dass es sich bei der zu druckenden Datei um eine Datei im PostScript-Format handelt. "Filter" ruft seinerseits daraufhin das Programm "GhostScript" auf, welches "meine_datei.ps" in eine Datei mit der Formatierung PCL5 (die Druckersprache, die alle LaserJet-Drucker verstehen) umwandelt, bevor die Datei dann an den Drucker gesendet wird.

Unglücklicherweise erkennen RedHat-Systeme keine PJL-Dateien und verwenden so meist falsche Programme, die die PJL-Dateien unnötig verändern.

Um also KLJetTool richtig zum Laufen zu bekommen, müssen Sie folgende zwei Änderungen vornehmen:

- Fügen Sie zwei Zeile in der Datei `/etc/magic` ein, so dass das Programm "file" Ihre PJL-Dateien korrekt als solche erkennt. Die Position dieser beiden Zeilen innerhalb der Datei spielt dabei keine Rolle:

       # HP Printer Job Language, Bernd Wuebben (wuebben@math.cornell.edu)
       0	string		\033%-12345X	 HP PJL printer commands

- Bringen Sie dem Skript /var/spool/lpd/lp/filter bei, was es mit den PJL-Datei zu machen hat, indem Sie die folgenden zwei Zeilen dem Skript "filter" hinzufügen:

          *pjl* )
                                                     startpnt="INPUT-to-prdata";;

  Wenn Sie sich das Skript "filter" näher ansehen, so sollten Sie leicht erkennen können, wo diese beiden Zeilen eingefügt werden müssen (bei meiner Version ist es etwa bei Zeile 220). Diese beiden Zeilen sagen dem Skript nichts weiter, als PJL-Dateien unverändert zu lassen und sie direkt zum Drucker zu schicken.

Falls Sie sich nicht sicher sind, können Sie sich zwei Beispieldateien für das Skript "filter" und für die Datei "magic" ansehen, die zusammen mit dieser Dokumentation in dasselbe Verzeichnis installiert wurden.

Ich würde mich sehr darüber freuen, wenn Sie Modifikationen herausfinden sollten, die den problemlosen Betrieb von KLJetTool mit Ihrer speziellen Linux-Distribution ermöglichen. Bitte schreiben Sie mir, durch welche Veränderungen, die von den hier beschriebenen abweichen, Sie Ihrem Drucksystem beigebracht haben, PJL-Dateien unmodifiziert zum Drucker zu schicken.