===== Line-Printer-Daemon ===== Einige Konverter und Gateways des (c4p)-Systems verfügen eingangsseitig über eine sogenannte RAW-Schnittstelle. Damit ist gemeint, daß ein Programm eine direkte, bidirektionale TCP/IP-Verbindung zum Konverter oder Gateway aufnehmen kann, über die die Druckdaten übertragen, und gemäß einem festgelegten Protokoll, zum Beispiel PJL, Druckerstati zurückgemeldet werden. Für **Windows**-Rechner, aber auch viele Host-Systeme wie **i5/OS** oder **z/OS** stellt diese Art der Übertragung wegen der Bidirektionalität eine gute Lösung dar. Systeme wie **Unix**, **AIX**, **Linux** oder **MAC-OS X** bieten zwar ebenfalls RAW-Schnittstellen, diese sind aber der Ausnahmefall und benötigen zusätzlichen Verwaltungsaufwand. Die Standardlösung dieser Systeme zur Übertragung von Druckdaten ist die Nutzung des Protokolls LPR (Line Printer Requester) / LPD (Line Printer Daemon). Auch einige ERP-Systeme wie beispielsweise **SAP** nutzen dieses Protokoll direkt aus der Anwendung heraus. Für solche Anwendungsfälle ist ein besonderes Gateway gedacht: der **Line-Printer-Daemon**. Seine Aufgabe besteht im Prinzip darin, auf dem Netzwerk unter Port 515 auf Verbindungsanforderungen zu warten und die übertragenen Daten an die Konverter oder Gateways zur Bearbeitung durch (c4p) weiterzuleiten. Dabei läuft der LPR-Teil des Protokolls auf dem druckenden Rechner und der LPD-Teil des Protokolls läuft im (c4p). \\ Dabei gibt es zwei mögliche Szenarien: zum einen sind die übertragenen Daten direkt vom Konverter oder Gateway zu verarbeiten und können direkt weitergeleitet werden. {{convert4print:tutorial:lpd1.gif}} \\ Im zweiten Fall werden Datenformate übertragen, die nicht direkt verwertbar sind. Hier bietet der **Line-Printer-Daemon** die Möglichkeit, mit Hilfe externer Skripte oder Programme, die Druckdaten erst aufzuarbeiten, bevor sie an den Konverter oder das Gateway weitergeleitet werden. {{convert4print:tutorial:lpd2.gif}} Ein Anwendungsfall für dieses Szenario ist beispielsweise, wenn Java-Applikationen PDF-Dateien als Druckdaten anliefern. Der **Line-Printer-Daemon** schreibt die empfangenen Daten in eine Datei, und übergibt diese zum Drucken dem Adobe Reader, der dann seinerseits die Druckdaten an den gewünschten (c4p) Konverter oder ein Gateway weitergibt. \\ Da das LPR/LPD-Protokoll nicht bidirektional ist, werden der druckenden Anwendung natürlich auch keine Statusmeldungen bezüglich des Druckauftrags zurückübermittelt. Da der **Line-Printer-Daemon** so wie in diesen Fällen üblich, ein vollwertiges Spool-System darstellt, weiss die Applikation nicht einmal, ob und wann überhaupt gedruckt wurde. Für jeden Konverter oder Gateway wird durch den **Line-Printer-Daemon** eine sogenannte Warteschlange angelegt, in der Druckaufträge auch dann gesammelt werden, wenn der zugehörige Drucker nicht betriebsbereit sein sollte. Dadurch entsteht automatisch eine zeitliche Entkopplung zwischen der Applikation und dem Druckprozess - die Applikation wird nicht ausgebremst, selbst wenn sie nicht über ein Spool-System druckt. Daß der **Line-Printer-Daemon** immer nur auf dem Port 515 hört, bedeutet natürlich nicht, daß jeweils immer nur eine Druckdatei zu einer Zeit übertragen werden kann. Aktuell sind 16 gleichzeitige eingehende und bis zu 256 ausgehende Verbindungen möglich - entsprechend leistungsfähige Hardware und eine Windows-Server-Version vorausgesetzt. \\ Falls sich der druckende Rechner trotzdem für den Status eines Druckauftrages interessieren sollte, unterstützt der **Line-Printer-Daemon** auch das Windows/Unix/Linux-Kommando **lpq**, mit dem Statusinformationen zurückgelesen werden können. Konverter oder Gateways, die eingangsseitig nicht das RAW-Protokoll, sondern wie etwa im Falle von IPDS das proprietäre PPR/PPD-Protokoll benötigen, können nicht über den **Line-Printer-Daemon** angesprochen werden.