Filter für CUPS-Drucker einbinden
Hallo nach einer Odysse durch unmengen widersprüchlicher Dokus und Exzessen mit CUPS habe ich es mit einem Druckfilter unter CUPS soweit gebracht, dass dieser endlich mal aus- geführt wird. Leider nicht bei allen Ausdrucken. Setze ich bspw. zum testen ein echo "HALLO WELT" | lpr -PDRUCKER wird der Druckfilter korrekt abgearbeitet: [error_log] [26/Nov/2007:14:39:29 +0100] print_job: auto-typing file... D [26/Nov/2007:14:39:29 +0100] print_job: request file type is text/plain. D [26/Nov/2007:14:39:29 +0100] CancelJob: id = 56378 D [26/Nov/2007:14:39:29 +0100] check_quotas: requesting-user-name = 'root' D [26/Nov/2007:14:39:29 +0100] print_job: requesting-user-name = 'root' I [26/Nov/2007:14:39:29 +0100] Adding start banner page "none" to job 56857. I [26/Nov/2007:14:39:29 +0100] Adding end banner page "none" to job 56857. I [26/Nov/2007:14:39:29 +0100] Job 56857 queued on 'PR_KOE32' by 'root'. D [26/Nov/2007:14:39:29 +0100] Job 56857 hold_until = 0 D [26/Nov/2007:14:39:29 +0100] StartJob(56857, 0x5ed1d0) D [26/Nov/2007:14:39:29 +0100] StartJob() id = 56857, file = 0/1 D [26/Nov/2007:14:39:29 +0100] job-sheets=none,none D [26/Nov/2007:14:39:29 +0100] banner_page = 0 D [26/Nov/2007:14:39:29 +0100] StartJob: argv = "PR_KOE32","56857","root","(stdin)","1","","/var/spool/cups/d56857-001" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[0]="PATH=/usr/lib64/cups/filter:/bin:/usr/bin" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[1]="SOFTWARE=CUPS/1.1" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[2]="USER=root" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[3]="CHARSET=iso-8859-1" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[4]="LANG=en" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[5]="PPD=/etc/cups/ppd/PR_KOE32.ppd" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[6]="CUPS_SERVERROOT=/etc/cups" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[7]="RIP_MAX_CACHE=8m" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[8]="TMPDIR=/var/spool/cups/tmp" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[9]="CONTENT_TYPE=text/plain" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[10]="DEVICE_URI=socket://pr-koe32:9100" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[11]="PRINTER=PR_KOE32" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[12]="CUPS_DATADIR=/usr/share/cups" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[13]="CUPS_FONTPATH=/usr/share/cups/fonts" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[14]="CUPS_SERVER=localhost" D [26/Nov/2007:14:39:29 +0100] StartJob: envp[15]="IPP_PORT=631" D [26/Nov/2007:14:39:29 +0100] StartJob: statusfds = [ 12 14 ] D [26/Nov/2007:14:39:29 +0100] StartJob: filterfds[1] = [ 15 -1 ] D [26/Nov/2007:14:39:29 +0100] StartJob: filter = "/usr/lib64/cups/filter/PR_KOE32" D [26/Nov/2007:14:39:29 +0100] StartJob: filterfds[0] = [ 16 17 ] D [26/Nov/2007:14:39:29 +0100] start_process("/usr/lib64/cups/filter/PR_KOE32", 0x7fbffee160, 0x7fbffed340, 15, 17, 14) I [26/Nov/2007:14:39:29 +0100] Started filter /usr/lib64/cups/filter/PR_KOE32 (PID 19646) for job 56857. D [26/Nov/2007:14:39:29 +0100] StartJob: backend = "/usr/lib64/cups/backend/socket" D [26/Nov/2007:14:39:29 +0100] StartJob: filterfds[1] = [ -1 15 ] D [26/Nov/2007:14:39:29 +0100] start_process("/usr/lib64/cups/backend/socket", 0x7fbffee160, 0x7fbffed340, 16, 15, 14) I [26/Nov/2007:14:39:29 +0100] Started backend /usr/lib64/cups/backend/socket (PID 19647) for job 56857. D [26/Nov/2007:14:39:29 +0100] ProcessIPPRequest: 9 status_code=0 D [26/Nov/2007:14:39:29 +0100] [Job 56857] + echo /var/spool/cups/d56857-001 D [26/Nov/2007:14:39:29 +0100] [Job 56857] + '[' -n /var/spool/cups/d56857-001 ']' D [26/Nov/2007:14:39:29 +0100] [Job 56857] + exec D [26/Nov/2007:14:39:29 +0100] [Job 56857] + sed s/f460y2X/-/g D [26/Nov/2007:14:39:29 +0100] [Job 56857] + cat /var/spool/cups/d56857-001 Mache ich das Gleiche aus einer Anwendung kommt der Filter (sed-Kommando) nicht zum Zuge: D [26/Nov/2007:14:49:36 +0100] ReadClient() 9 POST /printers/PR_KOE32 HTTP/1.1 D [26/Nov/2007:14:49:37 +0100] print_job: auto-typing file... D [26/Nov/2007:14:49:37 +0100] print_job: request file type is application/vnd.cups-raw. D [26/Nov/2007:14:49:37 +0100] CancelJob: id = 56405 D [26/Nov/2007:14:49:37 +0100] check_quotas: requesting-user-name = 'root' D [26/Nov/2007:14:49:37 +0100] print_job: requesting-user-name = 'root' I [26/Nov/2007:14:49:37 +0100] Adding start banner page "none" to job 56884. I [26/Nov/2007:14:49:37 +0100] Adding end banner page "none" to job 56884. I [26/Nov/2007:14:49:37 +0100] Job 56884 queued on 'PR_KOE32' by 'root'. D [26/Nov/2007:14:49:37 +0100] Job 56884 hold_until = 0 D [26/Nov/2007:14:49:37 +0100] StartJob(56884, 0x5ed1d0) D [26/Nov/2007:14:49:37 +0100] StartJob() id = 56884, file = 0/1 D [26/Nov/2007:14:49:37 +0100] job-sheets=none,none D [26/Nov/2007:14:49:37 +0100] banner_page = 0 D [26/Nov/2007:14:49:37 +0100] StartJob: argv = "PR_KOE32","56884","root","(stdin)","1","","/var/spool/cups/d56884-001" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[0]="PATH=/usr/lib64/cups/filter:/bin:/usr/bin" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[1]="SOFTWARE=CUPS/1.1" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[2]="USER=root" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[3]="CHARSET=iso-8859-1" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[4]="LANG=en" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[5]="PPD=/etc/cups/ppd/PR_KOE32.ppd" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[6]="CUPS_SERVERROOT=/etc/cups" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[7]="RIP_MAX_CACHE=8m" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[8]="TMPDIR=/var/spool/cups/tmp" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[9]="CONTENT_TYPE=application/vnd.cups-raw" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[10]="DEVICE_URI=socket://pr-koe32:9100" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[11]="PRINTER=PR_KOE32" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[12]="CUPS_DATADIR=/usr/share/cups" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[13]="CUPS_FONTPATH=/usr/share/cups/fonts" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[14]="CUPS_SERVER=localhost" D [26/Nov/2007:14:49:37 +0100] StartJob: envp[15]="IPP_PORT=631" D [26/Nov/2007:14:49:37 +0100] StartJob: statusfds = [ 11 12 ] D [26/Nov/2007:14:49:37 +0100] StartJob: filterfds[1] = [ 14 -1 ] D [26/Nov/2007:14:49:37 +0100] StartJob: backend = "/usr/lib64/cups/backend/socket" D [26/Nov/2007:14:49:37 +0100] StartJob: filterfds[0] = [ -1 15 ] D [26/Nov/2007:14:49:37 +0100] start_process("/usr/lib64/cups/backend/socket", 0x7fbffee160, 0x7fbffed340, 14, 15, 12) I [26/Nov/2007:14:49:37 +0100] Started backend /usr/lib64/cups/backend/socket (PID 32629) for job 56884. Habe in die entsprechende ppd-Datei die Einträge: *cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG" zugefügt. Bei text/plain wird der Filter auch korrekt abgearbeitet. Kommt der Druck aus der Anwendung als "application/vnd.cups-raw" wird der Filter nicht ausgeführt. Ich weiss jetzt ehrlich nicht mehr weiter. Was kann ich da noch machen ? -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Hi Jens, Am Montag 26 November 2007 14:58:03 schrieb Jens Strohschnitter:
Habe in die entsprechende ppd-Datei die Einträge:
*cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
zugefügt. Bei text/plain wird der Filter auch korrekt abgearbeitet. Kommt der Druck aus der Anwendung als "application/vnd.cups-raw" wird der Filter nicht ausgeführt.
könnte das evtl. an dem kleinen Wörtchen raw liegen? Imho wird bei raw queues grundsätzlich nichts aber auch gar nichts gefiltert und modifiziert, deswegen ist das ja eine raw queue bei der ich den output normalerweise genauso haben will wie den input. Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ... Gruss Falk -- 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
Habe in die entsprechende ppd-Datei die Einträge:
*cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
zugefügt. Bei text/plain wird der Filter auch korrekt abgearbeitet. Kommt der Druck aus der Anwendung als "application/vnd.cups-raw" wird der Filter nicht ausgeführt.
könnte das evtl. an dem kleinen Wörtchen raw liegen? Imho wird bei raw queues grundsätzlich nichts aber auch gar nichts gefiltert und modifiziert, deswegen ist das ja eine raw queue bei der ich den output normalerweise genauso haben will wie den input. Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ...
Hi also der Druck kommt direkt aus SAP auf die CUPS-Queue. Wie ich da den Druckout so konvertieren kann, dass da kein -raw rauskommt weiss ich ehrlich gesagt nicht. Habe mir mal alle Ausdrucke im Debug-mode des Lofiles angeschaut. Jeglicher Aus- druck aus SAP kommt im application/vnd.cups-raw Format raus. Denke da kann ich nix machen. Wie war das mit dem kaskadierten Druckspooler ? Kann ich mir momentan nix drunter vorstellen. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Hi Jens, Am Montag 26 November 2007 15:41:50 schrieb Jens Strohschnitter:
Habe in die entsprechende ppd-Datei die Einträge:
*cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
zugefügt. Bei text/plain wird der Filter auch korrekt abgearbeitet. Kommt der Druck aus der Anwendung als "application/vnd.cups-raw" wird der Filter nicht ausgeführt.
könnte das evtl. an dem kleinen Wörtchen raw liegen? Imho wird bei raw queues grundsätzlich nichts aber auch gar nichts gefiltert und modifiziert, deswegen ist das ja eine raw queue bei der ich den output normalerweise genauso haben will wie den input. Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ...
Hi
also der Druck kommt direkt aus SAP auf die CUPS-Queue. Wie ich da den Druckout so konvertieren kann, dass da kein -raw rauskommt weiss ich ehrlich gesagt nicht.
Habe mir mal alle Ausdrucke im Debug-mode des Lofiles angeschaut. Jeglicher Aus- druck aus SAP kommt im application/vnd.cups-raw Format raus. Denke da kann ich nix machen.
Wie war das mit dem kaskadierten Druckspooler ? Kann ich mir momentan nix drunter vorstellen.
Du versuchst, einen Drucker einzurichten der erstmal local filtert und zu dem eigentlichen Drucker verschickt, dann richtest du einen weiteren drucker ein der als ziel http://localhost:631/printers/printername hat wobei printername der name des ersten ist. Auf die Art sollte er beim 2. Durchgang gefiltert werden, hoffe ich. Zumindest war so ein konstrukt bei älteren Installationen meist erfolgreich. Gruss Falk -- 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
*cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
zugefügt. Bei text/plain wird der Filter auch korrekt abgearbeitet. Kommt der Druck aus der Anwendung als "application/vnd.cups-raw" wird der Filter nicht ausgeführt.
könnte das evtl. an dem kleinen Wörtchen raw liegen? Imho wird bei raw queues grundsätzlich nichts aber auch gar nichts gefiltert und modifiziert, deswegen ist das ja eine raw queue bei der ich den output normalerweise genauso haben will wie den input. Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ...
also der Druck kommt direkt aus SAP auf die CUPS-Queue. Wie ich da den Druckout so konvertieren kann, dass da kein -raw rauskommt weiss ich ehrlich gesagt nicht.
Habe mir mal alle Ausdrucke im Debug-mode des Lofiles angeschaut. Jeglicher Aus- druck aus SAP kommt im application/vnd.cups-raw Format raus. Denke da kann ich nix machen.
Wie war das mit dem kaskadierten Druckspooler ? Kann ich mir momentan nix drunter vorstellen.
Du versuchst, einen Drucker einzurichten der erstmal local filtert und zu dem eigentlichen Drucker verschickt, dann richtest du einen weiteren drucker ein der als ziel http://localhost:631/printers/printername hat wobei printername der name des ersten ist. Auf die Art sollte er beim 2. Durchgang gefiltert werden, hoffe ich. Zumindest war so ein konstrukt bei älteren Installationen meist erfolgreich.
Hi hm, also ich lege jetzt einen neuen Drucker an und gebe ihm als Pipe statt das übliche Socket den http://..../Drucker String an. Also den Drucker, der das Filterskript enthält ? Die printers.conf müsste demnach dann so aussehen: # <Printer DRUCKER01> Info Location DeviceURI socket://drucker01:9100 State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> # <Printer DRUCKER02> Info Location DeviceURI http://localhost:631/printers/DRUCKER01 State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> Für Drucker01 muss dann entsprechend der Filter auf text/plain gesetzt sein. Ist das so richtig ? Würde mich zwar wundern, dass das etwas bewirkt, lasse mich aber immer gerne positiv überraschen ... :-) -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
On Tue, 27 Nov 2007 14:32:57 +0100
Jens Strohschnitter
*cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ...
also der Druck kommt direkt aus SAP auf die CUPS-Queue. Wie ich da den Druckout so konvertieren kann, dass da kein -raw rauskommt weiss ich ehrlich gesagt nicht.
Du versuchst, einen Drucker einzurichten der erstmal local filtert und zu dem eigentlichen Drucker verschickt, dann richtest du einen weiteren drucker ein der als ziel http://localhost:631/printers/printername hat wobei printername der name des ersten ist. Auf die Art sollte er beim 2. Durchgang gefiltert werden, hoffe ich. Zumindest war so ein konstrukt bei älteren Installationen meist erfolgreich.
Hi habe die Drucker nun "kaskadiert" - leider ohne Erfolg. Die Config ist wie in der letzten Mail beschrieben. Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ? -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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 Nov 27 14:48 Jens Strohschnitter wrote (shortened):
Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ?
Ich habe jetzt nicht die Details der vorigen Mails angesehen, aber es liegt zu 99.9% nicht am Filter selbst, sondern an "application/vnd.cups-raw", was per Definition nicht gefiltert wird. Wie bekommt den der CUPS Server die Druckaufträge von SAP? Etwa via "Koppelart U" (oder wie das bei denen heißt), also per LPD Protokoll, also per cups-lpd? Wenn ja, dann siehe "man cups-lpd" bzgl. "-o document-format=application/octet-stream", denn standardmäßig verwendet cups-lpd den "l" Filter ("l" steht für "literal"), also "-o document-format=application/vnd.cups-raw" was "-o raw" entspricht, was per Definition nicht gefiltert wird. Gruß Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ?
Ich habe jetzt nicht die Details der vorigen Mails angesehen, aber es liegt zu 99.9% nicht am Filter selbst, sondern an "application/vnd.cups-raw", was per Definition nicht gefiltert wird.
Wie bekommt den der CUPS Server die Druckaufträge von SAP? Etwa via "Koppelart U" (oder wie das bei denen heißt), also per LPD Protokoll, also per cups-lpd? Wenn ja, dann siehe "man cups-lpd" bzgl. "-o document-format=application/octet-stream", denn standardmäßig verwendet cups-lpd den "l" Filter ("l" steht für "literal"), also "-o document-format=application/vnd.cups-raw" was "-o raw" entspricht, was per Definition nicht gefiltert wird.
Hi die Koppelart war auf "L: Druck via LP/LPR" gestellt. Wenn ich diese auf "U: Druck via Berkeley-Protokoll" umstelle wird der Druck statt über CUPS direkt an den Drucker (Printbox) gesendet. Somit wird dann leider auch kein Filterskript ausgeführt, da SAP nun den Druckspooler auf dem Host umgeht und direkt an die Ethernet Netzwerkkarte/Printbox des Druckers sendet. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Jens Strohschnitter [27.11.2007 15:45]:
Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ? Ich habe jetzt nicht die Details der vorigen Mails angesehen, aber es liegt zu 99.9% nicht am Filter selbst, sondern an "application/vnd.cups-raw", was per Definition nicht gefiltert wird.
Wie bekommt den der CUPS Server die Druckaufträge von SAP? Etwa via "Koppelart U" (oder wie das bei denen heißt), also per LPD Protokoll, also per cups-lpd? Wenn ja, dann siehe "man cups-lpd" bzgl. "-o document-format=application/octet-stream", denn standardmäßig verwendet cups-lpd den "l" Filter ("l" steht für "literal"), also "-o document-format=application/vnd.cups-raw" was "-o raw" entspricht, was per Definition nicht gefiltert wird.
Hi
die Koppelart war auf "L: Druck via LP/LPR" gestellt. Wenn ich diese auf "U: Druck via Berkeley-Protokoll" umstelle wird der Druck statt über CUPS direkt an den Drucker (Printbox) gesendet.
Nein. Als Vermittlungsrechner trägst Du localhost (oder den Namen/die IP Deines Printservers) ein und als Host-Drucker den Namen der Queue. Mache ich bei all meinen SAP-Druckern mit Koppelart U so. ...und die drucken! :-) grinst Werner -- Werner Flamme, Abt. WKDV Helmholtz-Zentrum für Umweltforschung GmbH - UFZ Permoserstr. 15 - 04318 Leipzig Tel.: (0341) 235-1921 - Fax (0341) 235-451921 http://www.ufz.de - eMail: werner.flamme@ufz.de -- 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
Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ? Ich habe jetzt nicht die Details der vorigen Mails angesehen, aber es liegt zu 99.9% nicht am Filter selbst, sondern an "application/vnd.cups-raw", was per Definition nicht gefiltert wird.
Wie bekommt den der CUPS Server die Druckaufträge von SAP? Etwa via "Koppelart U" (oder wie das bei denen heißt), also per LPD Protokoll, also per cups-lpd? Wenn ja, dann siehe "man cups-lpd" bzgl. "-o document-format=application/octet-stream", denn standardmäßig verwendet cups-lpd den "l" Filter ("l" steht für "literal"), also "-o document-format=application/vnd.cups-raw" was "-o raw" entspricht, was per Definition nicht gefiltert wird.
Hi
die Koppelart war auf "L: Druck via LP/LPR" gestellt. Wenn ich diese auf "U: Druck via Berkeley-Protokoll" umstelle wird der Druck statt über CUPS direkt an den Drucker (Printbox) gesendet.
Nein. Als Vermittlungsrechner trägst Du localhost (oder den Namen/die IP Deines Printservers) ein und als Host-Drucker den Namen der Queue. Mache ich bei all meinen SAP-Druckern mit Koppelart U so.
...und die drucken! :-)
Hi klar - drucken tun die auch bei mir, aber wenn ich Kopplungsart U auswähle localhost als Vermittlungsrechner eintrage, kommt die Meldung "entfernter Host nicht erreichbar". Wenn ich hingegen die IP des Printservers eintrage, wird nicht mehr über Cups sondern direkt auf die Netzwerkschnittstelle gedruckt und somit dann der Filter nicht ausgeführt. Oder gibt es noch eine andere Möglichkeit, dass SAP als Vermittlungsrechner bei Koppelart U den localhost bzw. 127.0.0.1 annimmt ? -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Jens Strohschnitter [29.11.2007 09:03]:
die Koppelart war auf "L: Druck via LP/LPR" gestellt. Wenn ich diese auf "U: Druck via Berkeley-Protokoll" umstelle wird der Druck statt über CUPS direkt an den Drucker (Printbox) gesendet.
Nein. Als Vermittlungsrechner trägst Du localhost (oder den Namen/die IP Deines Printservers) ein und als Host-Drucker den Namen der Queue. Mache ich bei all meinen SAP-Druckern mit Koppelart U so.
...und die drucken! :-)
Hi
klar - drucken tun die auch bei mir, aber wenn ich Kopplungsart U auswähle localhost als Vermittlungsrechner eintrage, kommt die Meldung "entfernter Host nicht erreichbar".
grep localhost /etc/hosts ergibt bei Dir was? Da muss die Adresse 127.0.0.1 kommen! telnet localhost 631 ist tot? Bei mir kommt ---snip--- # telnet localhost 631 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ^] telnet> quit Connection closed. ---pins--- Wenn da nichts kommt (bzw. ein "Connection refused"), solltest Du CUPS so konfigurieren, dass er auf localhost lauscht.
Wenn ich hingegen die IP des Printservers eintrage, wird nicht mehr über Cups sondern direkt auf die Netzwerkschnittstelle gedruckt und somit dann der Filter nicht ausgeführt. Bitte? Ein Printserver ist bei Dir die Netzwerkschnittstelle des Druckers? Ein Printserver ist - in der in meiner Umgebung gebräuchlichen Terminologie - eine Maschine, die verschiedene Drucker bedient, also deren Daten aufbereitet. CUPS halt :-)
Oder gibt es noch eine andere Möglichkeit, dass SAP als Vermittlungsrechner bei Koppelart U den localhost bzw. 127.0.0.1 annimmt ?
Habe ich doch gerade geschrieben!? Mein produktives System ist gleichzeitig CUPS-Server. In /etc/hosts habe ich die Zeile 127.0.0.1 sapdruck und habe als Vermittlungsrechner für alle Drucker sapdruck eingetragen. Und jeder einzelne Auftrag geht brav über meinen CUPS. Wegen der Portabilität der Drucker - so kann ich alle Drucker landschaftsweit transportieren, nur das jeweilige System hat eine andere IP bei sapdruck in der /etc/hosts. Ach ja, Aufbereitungsserver ist jeweils "LogischerServer1" :-) HTH Werner -- Werner Flamme, Abt. WKDV Helmholtz-Zentrum für Umweltforschung GmbH - UFZ Permoserstr. 15 - 04318 Leipzig Tel.: (0341) 235-1921 - Fax (0341) 235-451921 http://www.ufz.de - eMail: werner.flamme@ufz.de -- 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
die Koppelart war auf "L: Druck via LP/LPR" gestellt. Wenn ich diese auf "U: Druck via Berkeley-Protokoll" umstelle wird der Druck statt über CUPS direkt an den Drucker (Printbox) gesendet. Nein. Als Vermittlungsrechner trägst Du localhost (oder den Namen/die IP Deines Printservers) ein und als Host-Drucker den Namen der Queue. Mache ich bei all meinen SAP-Druckern mit Koppelart U so.
...und die drucken! :-)
klar - drucken tun die auch bei mir, aber wenn ich Kopplungsart U auswähle localhost als Vermittlungsrechner eintrage, kommt die Meldung "entfernter Host nicht erreichbar".
grep localhost /etc/hosts ergibt bei Dir was? Da muss die Adresse 127.0.0.1 kommen!
telnet localhost 631 ist tot? Bei mir kommt
---snip--- # telnet localhost 631 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ^] telnet> quit Connection closed. ---pins---
Wenn da nichts kommt (bzw. ein "Connection refused"), solltest Du CUPS so konfigurieren, dass er auf localhost lauscht.
Wenn ich hingegen die IP des Printservers eintrage, wird nicht mehr über Cups sondern direkt auf die Netzwerkschnittstelle gedruckt und somit dann der Filter nicht ausgeführt. Bitte? Ein Printserver ist bei Dir die Netzwerkschnittstelle des Druckers? Ein Printserver ist - in der in meiner Umgebung gebräuchlichen Terminologie - eine Maschine, die verschiedene Drucker bedient, also deren Daten aufbereitet. CUPS halt :-)
Oder gibt es noch eine andere Möglichkeit, dass SAP als Vermittlungsrechner bei Koppelart U den localhost bzw. 127.0.0.1 annimmt ?
Habe ich doch gerade geschrieben!? Mein produktives System ist gleichzeitig CUPS-Server. In /etc/hosts habe ich die Zeile 127.0.0.1 sapdruck und habe als Vermittlungsrechner für alle Drucker sapdruck eingetragen. Und jeder einzelne Auftrag geht brav über meinen CUPS. Wegen der Portabilität der Drucker - so kann ich alle Drucker landschaftsweit transportieren, nur das jeweilige System hat eine andere IP bei sapdruck in der /etc/hosts. Ach ja, Aufbereitungsserver ist jeweils "LogischerServer1" :-)
Hi also telnet auf localhost 631 klappt bei mir. In der Hosts steht auch 127.0.0.1 localhost. Als Koppelart in SAP ist U: Druck via Berkeley-Protokoll eingetragen. Als Host-Drucker ist der unter CUPS verwendete Druckername eingetragen Als Vermittlungsrechner habe ich 127.0.0.1, localhost, servername und alles erdenkliche ausprobiert. Es kommt immer die Meldung, dass er den Vermittlungsrechner nicht erreichen kann. Erst wenn ich den Namen/IP der Netzwerkschnittstelle des Druckers angebe, kann ich die Einstellungen unter SAP speichern. Die Einstellungen ändere ich in SAP unter der Transaktion /spad. Denke mal da kann man anderswo auch nix einstellen oder ? -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Hi Jens, Am Dienstag 27 November 2007 14:48:31 schrieb Jens Strohschnitter:
On Tue, 27 Nov 2007 14:32:57 +0100
Jens Strohschnitter
wrote: *cupsFilter: "text/plain 0 FILTERPRG" *cupsFilter: "application/vnd.cups-raw 0 FILTERPRG"
Wenn du diesen Kram auch gefiltert haben willst musst du imho irgendwie dafür sorgen das es letztendlich eben keine raw queue ist in die da gedruckt wird. Notfalls 2 (logische) Drucker im Cups kaskadieren ...
also der Druck kommt direkt aus SAP auf die CUPS-Queue. Wie ich da den Druckout so konvertieren kann, dass da kein -raw rauskommt weiss ich ehrlich gesagt nicht.
Du versuchst, einen Drucker einzurichten der erstmal local filtert und zu dem eigentlichen Drucker verschickt, dann richtest du einen weiteren drucker ein der als ziel http://localhost:631/printers/printername hat wobei printername der name des ersten ist. Auf die Art sollte er beim 2. Durchgang gefiltert werden, hoffe ich. Zumindest war so ein konstrukt bei älteren Installationen meist erfolgreich.
Hi
habe die Drucker nun "kaskadiert" - leider ohne Erfolg. Die Config ist wie in der letzten Mail beschrieben. Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ?
mit filter sollte eigentlich dann Drucker 1 laufen, nach dem Lesen von Johannes Mail bin ich noch auf folgende mögliche Lösung gekommen, nämlich das du auf dem weg von drucker 2 zu drucker 1 statt dem http://localhost:631 mal ein lpd protokoll zwischen den druckern versuchst wimni kann man dort explizit die optionen setzen so das du dort mit einer anderen oder leeren option versuchst das raw wegzubekommen. Schließlich müsste er die info über das -raw an der stelle dann verlieren. Gruss Falk -- 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
Du versuchst, einen Drucker einzurichten der erstmal local filtert und zu dem eigentlichen Drucker verschickt, dann richtest du einen weiteren drucker ein der als ziel http://localhost:631/printers/printername hat wobei printername der name des ersten ist. Auf die Art sollte er beim 2. Durchgang gefiltert werden, hoffe ich. Zumindest war so ein konstrukt bei älteren Installationen meist erfolgreich.
habe die Drucker nun "kaskadiert" - leider ohne Erfolg. Die Config ist wie in der letzten Mail beschrieben. Schicke ich ein ASCII-File auf den Drucker wird der Filter ausgeführt, schicke ich aus SAP den Druck auf den Drucker02, der dann über die Pipe Drucker01 anspricht, bleibt das Format bei "application/vnd.cups-raw". Muss ich beim Drucker ohne Filter noch was einstellen ?
mit filter sollte eigentlich dann Drucker 1 laufen, nach dem Lesen von Johannes Mail bin ich noch auf folgende mögliche Lösung gekommen, nämlich das du auf dem weg von drucker 2 zu drucker 1 statt dem http://localhost:631 mal ein lpd protokoll zwischen den druckern versuchst wimni kann man dort explizit die optionen setzen so das du dort mit einer anderen oder leeren option versuchst das raw wegzubekommen. Schließlich müsste er die info über das -raw an der stelle dann verlieren.
Hi, wie sollte so eine Config aussehen. Habe mal die Anpassung in der printers.conf so vollzogen: <Printer DRUCKER01> Info HP LJ 4000 TN Location DeviceURI socket://drucker01:9100 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> <Printer DRUCKER02> Info HP LJ 4000 TN Location DeviceURI lpd://drucker01/DRUCKER01 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> Zusätzlich habe ich mal den Drucker01 mit der lpd:// Pipe angepasst: </Printer> <Printer DRUCKER01> Info HP LJ 4000 TN Location DeviceURI lpd://drucker01/DRUCKER01 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> Leider auch ohne Erfolg - das Format bleibt noch immer bei -raw :-( -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Hi Jens, Am Mittwoch 28 November 2007 13:02:28 schrieb Jens Strohschnitter:
mit filter sollte eigentlich dann Drucker 1 laufen, nach dem Lesen von Johannes Mail bin ich noch auf folgende mögliche Lösung gekommen, nämlich das du auf dem weg von drucker 2 zu drucker 1 statt dem http://localhost:631 mal ein lpd protokoll zwischen den druckern versuchst wimni kann man dort explizit die optionen setzen so das du dort mit einer anderen oder leeren option versuchst das raw wegzubekommen. Schließlich müsste er die info über das -raw an der stelle dann verlieren.
Hi,
wie sollte so eine Config aussehen. Habe mal die Anpassung in der printers.conf so vollzogen:
<Printer DRUCKER01> Info HP LJ 4000 TN Location DeviceURI socket://drucker01:9100 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> <Printer DRUCKER02> Info HP LJ 4000 TN Location DeviceURI lpd://drucker01/DRUCKER01 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer>
Zusätzlich habe ich mal den Drucker01 mit der lpd:// Pipe angepasst:
</Printer> <Printer DRUCKER01> Info HP LJ 4000 TN Location DeviceURI lpd://drucker01/DRUCKER01 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer>
Leider auch ohne Erfolg - das Format bleibt noch immer bei -raw :-(
kann es sein das ich entweder nicht verstehe was du da konfiguriert hast oder ich mich nicht klar genug ausgedrückt habe: das da oben schaut so aus als würde drucker1 direkt an den netzwerkdrucker mit namen drucker01 drucken, das soll er aber gerade nicht. er soll sap->drucker2->lpd->drucker1->drucker01:9100 ich hoffe jetzt wird es etwas klarer. Gefiltert wird dann bei drucker1. deine URI bei drucker2 müsste bei deinem Beispiel lpd://localhost/DRUCKER01 lauten oder wie auch immer DRUCKER01 lokal per lpd erreicht werden kann. Wie gesagt das hab ich schon lange nicht mehr gemacht aber so ging das früher immer als der lpd noch der Standard war. ps: mir ist klar das der druckjob dann 2x durch den cups muß ... Gruss Falk -- 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
mit filter sollte eigentlich dann Drucker 1 laufen, nach dem Lesen von Johannes Mail bin ich noch auf folgende mögliche Lösung gekommen, nämlich das du auf dem weg von drucker 2 zu drucker 1 statt dem http://localhost:631 mal ein lpd protokoll zwischen den druckern versuchst wimni kann man dort explizit die optionen setzen so das du dort mit einer anderen oder leeren option versuchst das raw wegzubekommen. Schließlich müsste er die info über das -raw an der stelle dann verlieren.
Hi,
wie sollte so eine Config aussehen. Habe mal die Anpassung in der printers.conf so vollzogen:
kann es sein das ich entweder nicht verstehe was du da konfiguriert hast oder ich mich nicht klar genug ausgedrückt habe:
das da oben schaut so aus als würde drucker1 direkt an den netzwerkdrucker mit namen drucker01 drucken, das soll er aber gerade nicht.
er soll sap->drucker2->lpd->drucker1->drucker01:9100
ich hoffe jetzt wird es etwas klarer. Gefiltert wird dann bei drucker1.
deine URI bei drucker2 müsste bei deinem Beispiel lpd://localhost/DRUCKER01 lauten oder wie auch immer DRUCKER01 lokal per lpd erreicht werden kann. Wie gesagt das hab ich schon lange nicht mehr gemacht aber so ging das früher immer als der lpd noch der Standard war.
ps: mir ist klar das der druckjob dann 2x durch den cups muß ...
Hi, also meine Config ist doch so eingerichtet, dass ich erst per SAP auf DRUCKER02 drucke, dieser per lpd auf den Drucker01 geht, der dann über den unter der .ppd Datei eingetragenen Filter auf Drucker01 druckt. Hier mal der Logoutput: [..] ReadClient() 10 POST /printers/DRUCKER02 HTTP/1.1 print_job: auto-typing file... print_job: request file type is CancelJob: id = 59280 check_quotas: requesting-user-name = 'sapadm' print_job: requesting-user-name = 'sapadm' Adding start banner page "none" Job 59778 queued on 'DRUCKER02' Job 59778 hold_until = 0 StartJob(59778, 0x5f0930) StartJob() id = 59778, file StartJob: Sending job to queue job-sheets=none banner_page = 0 StartJob: argv = "DRUCKER02","59778","sapadm","(stdin)","1","","/var/spool/cups/d59778-001" StartJob: envp[0]="PATH=/usr/lib64/cups/filter:/bin:/usr/bin" StartJob: envp[1]="SOFTWARE=CUPS/1.1" StartJob: envp[2]="USER=root" StartJob: envp[3]="CHARSET=utf-8" StartJob: envp[4]="LANG=en_US" StartJob: envp[5]="PPD=/etc/cups/ppd/DRUCKER02.ppd" StartJob: envp[6]="CUPS_SERVERROOT=/etc/cups" StartJob: envp[7]="RIP_MAX_CACHE=8m" StartJob: envp[8]="TMPDIR=/var/spool/cups/tmp" StartJob: envp[9]="CONTENT_TYPE=application/vnd.cups-raw" StartJob: envp[10]="DEVICE_URI=lpd://localhost/DRUCKER01" StartJob: envp[11]="PRINTER=DRUCKER02" StartJob: envp[12]="CUPS_DATADIR=/usr/share/cups" StartJob: envp[13]="CUPS_FONTPATH=/usr/share/cups/fonts" StartJob: envp[14]="CUPS_SERVER=localhost" StartJob: envp[15]="IPP_PORT=631" StartJob: statusfds = [ 11 StartJob: filterfds[1] = [ 13 StartJob: backend = "/usr/lib64/cups/backend/lpd" StartJob: filterfds[0] = [ -1 start_process("/usr/lib64/cups/backend/lpd", 0x7fbffee160, 0x7fbffed340, 13, 14, Started backend /usr/lib64/cups/backend/lpd (PID 32492) ProcessIPPRequest: 10 status_code=0 [Job 59778] Network host 'localhost' [..] [printers.conf] <Printer DRUCKER01> Info HP LJ 4000 TN Location DeviceURI socket://drucker01:9100 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> <Printer DRUCKER02> Info HP LJ 4000 TN Location DeviceURI lpd://localhost/DRUCKER02 State Idle StateTime 1184660367 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer> -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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
Hi Jens, Am Mittwoch 28 November 2007 15:29:07 schrieb Jens Strohschnitter:
also meine Config ist doch so eingerichtet, dass ich erst per SAP auf DRUCKER02 drucke, dieser per lpd auf den Drucker01 geht, der dann über den unter der .ppd Datei eingetragenen Filter auf Drucker01 druckt.
Hier mal der Logoutput:
[..]
ok anscheinend hast du recht und ich hab deine Konfig falsch interpretiert. Hast du denn mal den Vorschlag von johannes verfolgt mit der Weiterleitung von drucker2 nach 1 per lp und -o document-format=text/plain ? Im prinzip laufen unsere beiden Vorschläge darauf hinaus einen logischen drucker aka zus. Warteschlange dazwischen zu klemmen und das -raw aus dem optionsstring zu bekommen. Bei meiner vermeintlichen Lösung hätte ich nicht gedacht das der optionsstring es unversehrt bis zum drucker 1 schafft. Gruss Falk -- 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 Nov 28 13:02 Jens Strohschnitter wrote (shortened):
Leider auch ohne Erfolg - das Format bleibt noch immer bei -raw :-(
Ohne die Details verfolgt zu haben, scheint es darum zu gehen, dem Drucksystem hier ein gewisses Format aufzuzwingen. Siehe in http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS die Infos zu "-o document-format=..." womit das Format via Kommandozeile erzwungen werden kann, z.B. um eine PostScript Datei als PostScript Quelltext auszudrucken: lp -d <queue> -o document-format=text/plain \ /usr/share/ghostscript/8.15/examples/colorcir.ps Wenn man so einen Druckbefehl an passender Stelle festlegen kann, sollte es funktionieren. Evtl. mit einer speziellen "Weiterleitungswarteschlange" in die (nur) SAP druckt und die ein "System V style interface script" hat, was etwa wie folgt aussieht - vergl. die Beispiele in http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS -------------------------------------------------------------------- #! /bin/bash # debug info in /var/log/cups/error_log set -x # set inputfile to where the input comes from inputfile="-" [ -n "$6" ] && inputfile="$6" # printing lp -d <queue> -o document-format=text/plain $inputfile -------------------------------------------------------------------- so dass die Weiterleitungswarteschlange den Druckauftrag via "lp" Befehl mit passend gesetztem Format an die eigentliche Warteschlange weiterleitet. Gruß Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
Leider auch ohne Erfolg - das Format bleibt noch immer bei -raw :-(
Ohne die Details verfolgt zu haben, scheint es darum zu gehen, dem Drucksystem hier ein gewisses Format aufzuzwingen.
die Infos zu "-o document-format=..." womit das Format via Kommandozeile erzwungen werden kann, z.B. um eine PostScript Datei als PostScript Quelltext auszudrucken:
lp -d <queue> -o document-format=text/plain \ /usr/share/ghostscript/8.15/examples/colorcir.ps
Wenn man so einen Druckbefehl an passender Stelle festlegen kann, sollte es funktionieren.
Evtl. mit einer speziellen "Weiterleitungswarteschlange" in die (nur) SAP druckt und die ein "System V style interface script" hat, was etwa wie folgt aussieht - vergl. die Beispiele in
#! /bin/bash # debug info in /var/log/cups/error_log set -x # set inputfile to where the input comes from inputfile="-" [ -n "$6" ] && inputfile="$6" # printing lp -d <queue> -o document-format=text/plain $inputfile -------------------------------------------------------------------- so dass die Weiterleitungswarteschlange den Druckauftrag via "lp" Befehl mit passend gesetztem Format an die eigentliche Warteschlange weiterleitet.
Hi wäre sicher ein guter Ansatz, aber wenn der Druck bereits bei der Weiterleitungsqueue mit -raw ankommt, wird ja da auch schon kein Filter ausgeführt. Demnach kann das Skript mit dem lpd -d ... Kommando nicht ausgeführt werden. Habe ich bereits mal ausprobiert - leider ohne Erfolg. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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 Nov 28 15:49 Jens Strohschnitter wrote (shortened):
wäre sicher ein guter Ansatz, aber wenn der Druck bereits bei der Weiterleitungsqueue mit -raw ankommt, wird ja da auch schon kein Filter ausgeführt. Demnach kann das Skript mit dem lpd -d ... Kommando nicht ausgeführt werden.
Ich schrieb "System V style interface script". Meines Wissens wird ein "System V style interface script" immer ausgeführt, denn meines Wissens findet hierbei auch keine Bestimmung des Formats der Daten im Druckjob statt. Es wird einfach alles wie es daherkommt durch das "System V style interface script" geleitet. Siehe http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS bzgl. "System V style interface script". Zumindest mit CUPS 1.2.12 auf openSUSE 10.3 funktioniert das noch genau so, wie damals, als ich den Artikel gemacht habe: lj1220ps ist eine übliche Warteschlange für einen HP LaserJet 1220 mit der PPD "HP LaserJet 1220 Postscript (recommended)". root@host# cat /tmp/myInterfaceScript #! /bin/bash # debug info in /var/log/cups/error_log set -x # set inputfile to where the input comes from inputfile="-" [ -n "$6" ] && inputfile="$6" # printing lp -d lj1220ps -o document-format=text/plain $inputfile root@host# lpadmin -p lj1220text -v file:/dev/null \ -i /tmp/myInterfaceScript -E user@host$ lp -d lj1220text \ /usr/share/doc/packages/ghostscript-library/examples/colorcir.ps => Ausdruck des PostScript Quelltextes => o.k. user@host$ lp -d lj1220text -o raw \ /usr/share/doc/packages/ghostscript-library/examples/colorcir.ps => Auch Ausdruck des PostScript Quelltextes => auch o.k. Gruß Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
Ohne die Details verfolgt zu haben, scheint es darum zu gehen, dem Drucksystem hier ein gewisses Format aufzuzwingen.
Siehe in http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS die Infos zu "-o document-format=..." womit das Format via Kommandozeile erzwungen werden kann, z.B. um eine PostScript Datei als PostScript Quelltext auszudrucken:
lp -d <queue> -o document-format=text/plain \ /usr/share/ghostscript/8.15/examples/colorcir.ps
Wenn man so einen Druckbefehl an passender Stelle festlegen kann, sollte es funktionieren.
Evtl. mit einer speziellen "Weiterleitungswarteschlange" in die (nur) SAP druckt und die ein "System V style interface script" hat, was etwa wie folgt aussieht - vergl. die Beispiele in http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS -------------------------------------------------------------------- #! /bin/bash # debug info in /var/log/cups/error_log set -x # set inputfile to where the input comes from inputfile="-" [ -n "$6" ] && inputfile="$6" # printing lp -d <queue> -o document-format=text/plain $inputfile -------------------------------------------------------------------- so dass die Weiterleitungswarteschlange den Druckauftrag via "lp" Befehl mit passend gesetztem Format an die eigentliche Warteschlange weiterleitet.
Hi habe mir mal zwischenzeitlich den Druckoutout als File gesichert und mal auf der Kommandozeile ein: lp -d <queue> -o document-format=text/plain $inputfile ausgeführt. Dann wird das Format korrekt in text/plain ausgegeben und der Filter ausgeführt. Leider gibts unter SAP keine Möglichkeit ein Kommando statt einer Kopplungsart anzugeben. Kann ich evtl. in CUPS als DeviceURI sowas angeben ? -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun ------------------------------------- __________________________________________________________ Raiffeisen Waren-Zentrale Rhein-Main eG 50668 Koeln, Altenberger Str. 1a Tel: 0221/1638-0 Fax: 0221/1638-254 Sitz: Koeln Amtsgericht Koeln, GnR 728 Geschaeftsfuehrender Vorstand: Hans-Josef Hilgers (Sprecher) Markus Stuettgen Dr. Karl-Heinrich Suemmermann Vorstand: Friedhelm Decker (Vorsitzender) Ingo Steitz Vorsitzender des Aufsichtsrates: Peter Bleser (MdB) St.Nr.: 215/5938/0152 Bankverbindung: WGZ Bank AG, Duesseldorf (BLZ 300 600 10) Konto-Nr.: 300 011 -- 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 (4)
-
Falk Sauer
-
Jens Strohschnitter
-
Johannes Meixner
-
Werner Flamme