Hallo, ich stehe vor dem Problem einen Labeldrucker vom Typ Intermec Easycoder PC4 ans laufen zukriegen. In unserem alten LPRNG-System hatten wir einen selbst-erstellten Filter. War ein Shell-Script durch das der ganze Job lief. Das was das Shell-Script ausgab wurde dann direct auf die serielle Schnittstelle des entprechenden Rechners ausgegeben. Bei Cups bin ich hier leider etwas hilflos. Die Doku die ich bis jetzt gelesen habe bringt wenig hilfreiches (oder ich verstehe es einfach nicht). Hat sowas schon jemand gelöst und kann mir hier evtl. Tips geben? Gruß Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 7. Januar 2008 08:45:11 schrieb Daniel Spannbauer:
Hallo,
ich stehe vor dem Problem einen Labeldrucker vom Typ Intermec Easycoder PC4 ans laufen zukriegen.
In unserem alten LPRNG-System hatten wir einen selbst-erstellten Filter. War ein Shell-Script durch das der ganze Job lief. Das was das Shell-Script ausgab wurde dann direct auf die serielle Schnittstelle des entprechenden Rechners ausgegeben.
Bei Cups bin ich hier leider etwas hilflos. Die Doku die ich bis jetzt gelesen habe bringt wenig hilfreiches (oder ich verstehe es einfach nicht).
Hat sowas schon jemand gelöst und kann mir hier evtl. Tips geben?
Cups kann auch mit Scripten umgehen. So habe ich ein PDF- und PSI (Postscript 2 Image)-Filter am Laufen. Du musst Cups nur die Verwendung des file-Filters erlauben und dann kannst du deinen Labeldrucker wieder verwenden. Ich habe unter http://linux.singollo.de/cups:mit_cups_scripten_-_pdf-_und_ps2image die beiden Scripte von mir beschrieben, kann man als Anhaltspunkt nehmen. Gruß Udo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Udo Neist schrieb:
Cups kann auch mit Scripten umgehen. So habe ich ein PDF- und PSI (Postscript 2 Image)-Filter am Laufen. Du musst Cups nur die Verwendung des file-Filters erlauben und dann kannst du deinen Labeldrucker wieder verwenden.
Ich habe unter http://linux.singollo.de/cups:mit_cups_scripten_-_pdf-_und_ps2image die beiden Scripte von mir beschrieben, kann man als Anhaltspunkt nehmen.
Hallo Udo, das Script habe ich schon. Nur wie bringe ich dem Cups bei das er für einen bestimmten Drucker dieses Script nehmen soll. Hierzu habe ich leider noch nichts gefunden. Wie hast du das gelöst? Gruß Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 7. Januar 2008 20:51:23 schrieb Udo Neist:
Cups kann auch mit Scripten umgehen. So habe ich ein PDF- und PSI (Postscript 2 Image)-Filter am Laufen. Du musst Cups nur die Verwendung des file-Filters erlauben und dann kannst du deinen Labeldrucker wieder verwenden.
Ich habe unter http://linux.singollo.de/cups:mit_cups_scripten_-_pdf-_und_ps2image die beiden Scripte von mir beschrieben, kann man als Anhaltspunkt nehmen.
Hallo Udo,
das Script habe ich schon. Nur wie bringe ich dem Cups bei das er für einen bestimmten Drucker dieses Script nehmen soll. Hierzu habe ich leider noch nichts gefunden. Wie hast du das gelöst?
Ich fasse es kurz zusammen und stell das auch noch ins Wiki. Cups 1.3.4 von opensuse 10.3: * Drucker hinzufügen * Gerät: "Printing to any command via pipe" oder ein selbstgeschriebenes Backend (bei mir ps2image bzw. ps2pdf) auswählen. Backends sind nach meiner Meinung die bessere Möglichkeit. Bei meinen Backends wird ein Pfad für die Ablage der Dateien benötigt. * Treiber "Postscript" einstellen Fertig. Bei mir mailen die Backends das Ergebnis zum entsprechenden User oder speichern es im angegebenen Verzeichnis. Gruß Udo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, On Jan 7 08:45 Daniel Spannbauer wrote (shortened):
ich stehe vor dem Problem einen Labeldrucker vom Typ Intermec Easycoder PC4 ans laufen zukriegen.
In unserem alten LPRNG-System hatten wir einen selbst-erstellten Filter. War ein Shell-Script durch das der ganze Job lief. Das was das Shell-Script ausgab wurde dann direct auf die serielle Schnittstelle des entprechenden Rechners ausgegeben.
Zuerst http://en.opensuse.org/SDB:CUPS_in_a_Nutshell lesen, um Hintergrundwissen zu haben, wie CUPS organisiert ist (insbes. "The Filter" versus "The Backends" lesen) und dann http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS durcharbeiten und da insbes. das Zeug bzgl. "Printing Plain ASCII Text in Printer-Specific Encoding" und dabei auf "System V style interface script" achten. Kurz: Das vorhandene Filterscript in ein "System V style interface script" umbauen (normalerweise genügt dazu, es so zu ändern, dass es sowohl von stdin als auch von der Datei via argv[0] einlesen kann) und damit die Warteschlange via "lpadmin ... -i ..." einrichten. Bzgl. dem "serial" Backend siehe z.B. in http://www.cups.org/doc-1.1/sam.html ------------------------------------------------------------------- For a dot matrix printer connected to the serial port, this might look like: /usr/sbin/lpadmin -p DotMatrix -E -m epson9.ppd \ -v serial:/dev/ttyS0?baud=9600+size=8+parity=none+flow=soft Here you specify the serial port (e.g. S0,S1, d0, d1), baud rate (e.g. 9600, 19200, 38400, 115200, etc.), number of bits, parity, and flow control. If you do not need flow control, delete the "+flow=soft" portion. ------------------------------------------------------------------- Wenn das Filterscript bereits auf die serielle Schnittstelle ausgibt (passende Rechte setzen, denn es läuft als Benutzer "lp"), genügt ein Dummy-Backend, z.B. "lpadmin ... -v file:/dev/null", zusammen also etwa lpadmin -p <queue-name> -v file:/dev/null -i /tmp/myscript -E Gruß Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
Johannes Meixner schrieb:
Hallo,
On Jan 7 08:45 Daniel Spannbauer wrote (shortened):
ich stehe vor dem Problem einen Labeldrucker vom Typ Intermec Easycoder PC4 ans laufen zukriegen.
In unserem alten LPRNG-System hatten wir einen selbst-erstellten Filter. War ein Shell-Script durch das der ganze Job lief. Das was das Shell-Script ausgab wurde dann direct auf die serielle Schnittstelle des entprechenden Rechners ausgegeben.
Bzgl. dem "serial" Backend siehe z.B. in http://www.cups.org/doc-1.1/sam.html ------------------------------------------------------------------- For a dot matrix printer connected to the serial port, this might look like:
/usr/sbin/lpadmin -p DotMatrix -E -m epson9.ppd \ -v serial:/dev/ttyS0?baud=9600+size=8+parity=none+flow=soft
Here you specify the serial port (e.g. S0,S1, d0, d1), baud rate (e.g. 9600, 19200, 38400, 115200, etc.), number of bits, parity, and flow control. If you do not need flow control, delete the "+flow=soft" portion. -------------------------------------------------------------------
Wenn das Filterscript bereits auf die serielle Schnittstelle ausgibt (passende Rechte setzen, denn es läuft als Benutzer "lp"), genügt ein Dummy-Backend, z.B. "lpadmin ... -v file:/dev/null", zusammen also etwa lpadmin -p <queue-name> -v file:/dev/null -i /tmp/myscript -E
Ok, das hat alles Funktioniert, gerade eben hat der Drucker sas erste Label ausgespuckt das ich mit "lpr -P" auf dem 10er System an den Barcode-Drucker geschickt habe. Versuche ich das gleiche auf einem älteren Rechner mit dem plp-Durcksystem installiert sehe ich im Log nur: D [21/Feb/2008:14:13:14 +0100] cupsdAcceptClient: 5 from localhost:631 (IPv4) D [21/Feb/2008:14:13:14 +0100] cupsdReadClient: 5 POST / HTTP/1.1 D [21/Feb/2008:14:13:14 +0100] cupsdAuthorize: No authentication data provided. D [21/Feb/2008:14:13:14 +0100] Get-Printer-Attributes ipp://localhost/printers/barcode_b D [21/Feb/2008:14:13:14 +0100] cupsdProcessIPPRequest: 5 status_code=0 (successful-ok) D [21/Feb/2008:14:13:14 +0100] cupsdCloseClient: 5 Mehr nicht. Es schint nichts gefiltert zu werden. In der etc/printcap des alten Systems steht: :rm=neuer-Rechner:lp=/dev/ttyS0:ty=9600 cs8 cstopb -parenb ixon:\ Der Filter ist da ebenfalls angegeben. Cups scheint damit irgendwie nicht zurecht zu kommen. Den LPD hat die angabe herzlich wenig interessiert, er hats einfach an den Rechner weitergeleitet der mit rm angegeben wurde. War er es selber hat er das duch den Filter gejagt. BTW: Ist es möglich dem Cups-Aufruf irgendwelche Parameter mitzugeben die er an den Filter weiterreicht? Gruß Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Daniel Spannbauer
-
Johannes Meixner
-
Udo Neist