Druckausgabe auf zwei Drucker parallel durchführen
![](https://seccdn.libravatar.org/avatar/edd47c6e26c86e326dad5e057069397b.jpg?s=120&d=mm&r=g)
Moin moin, hat vielleicht jemand von euch eine(n) Lösung/Lösungsansatz wie ich folgende Problematik erschlagen kann? Ich hätte gerne jeden Druckvorgang der in einem Samba Netzwerk (Arbeitsgruppe, kein PDC) aufläuft auf zwei verschiedenen Druckern ausgegeben. CUPS bietet zwar die Möglichkeit von Klassen, das hilft mir aber nicht weiter. Konkret, druckt jemand auf den Netzwerkdrucker \\server\hplj5n dann soll dieser Druckvorgang sowohl auf diesem Drucker wie auch auf dem Drucker \\server\PDFprinter erscheinen. Ich hätte also gerne von jedem Druckvorgang eine Kopie als PDF. Der "PDFprinter" ist korrekt eingerichtet und funktioniert standalone problemlos. Achja, das ganze soll natürlich OHNE irgendeine ZUSÄTZLICHE Nutzerinteraktion passieren. Cu Achim -- Am texanischen Wesen soll die Welt genesen. (c) by G.(W.) Bush 1992+2003 -- 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
![](https://seccdn.libravatar.org/avatar/b616838ebed8ad5a698e5ba205f7571a.jpg?s=120&d=mm&r=g)
Hallo, On 11/29/2006 9:47 PM, Achim Theobald wrote:
Moin moin,
hat vielleicht jemand von euch eine(n) Lösung/Lösungsansatz wie ich folgende Problematik erschlagen kann?
Ich hätte gerne jeden Druckvorgang der in einem Samba Netzwerk (Arbeitsgruppe, kein PDC) aufläuft auf zwei verschiedenen Druckern ausgegeben. CUPS bietet zwar die Möglichkeit von Klassen, das hilft mir aber nicht weiter. Konkret, druckt jemand auf den Netzwerkdrucker \\server\hplj5n dann soll dieser Druckvorgang sowohl auf diesem Drucker wie auch auf dem Drucker \\server\PDFprinter erscheinen. Ich hätte also gerne von jedem Druckvorgang eine Kopie als PDF. Der "PDFprinter" ist korrekt eingerichtet und funktioniert standalone problemlos. Achja, das ganze soll natürlich OHNE irgendeine ZUSÄTZLICHE Nutzerinteraktion passieren.
Da würde ich mir mal ansehen wie sich da die Filter von CUPS einsetzen lassen. Ich hab' da lange nichts mehr dran rumgebaut, aber an sich müsste das gehen indem du in dem Ausgabefilter (der ein Script sein kann) eine entsprechende Behandlung einbaust. Ein erster Anhaltspunkt könnte mal ein Log von CUPS sein in dem du siehst welche Programme tatsächlich aufgerufen werden. Arno
Cu
Achim
-- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.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
![](https://seccdn.libravatar.org/avatar/5cb579e007565aed3737cebfdb46b608.jpg?s=120&d=mm&r=g)
Tach, Am Mittwoch, 29. November 2006 21:47 schrieb Achim Theobald:
hat vielleicht jemand von euch eine(n) Lösung/Lösungsansatz wie ich folgende Problematik erschlagen kann?
Ich hätte gerne jeden Druckvorgang der in einem Samba Netzwerk (Arbeitsgruppe, kein PDC) aufläuft auf zwei verschiedenen Druckern ausgegeben. CUPS bietet zwar die Möglichkeit von Klassen, das hilft mir aber nicht weiter. Konkret, druckt jemand auf den Netzwerkdrucker \\server\hplj5n dann soll dieser Druckvorgang sowohl auf diesem Drucker wie auch auf dem Drucker \\server\PDFprinter erscheinen. Ich hätte also gerne von jedem Druckvorgang eine Kopie als PDF. Der "PDFprinter" ist korrekt eingerichtet und funktioniert standalone problemlos. Achja, das ganze soll natürlich OHNE irgendeine ZUSÄTZLICHE Nutzerinteraktion passieren.
Prinzipiell geht das, wenn Du an den CUPS-Filtern rumbastelst. In der SDB von opensuse gibts dazu eigentlich einen ganz netten Ansatz, die arbeiten mit ghostscript, allerdings nur temporär und löschen die ps-Datei nach dem Druck wieder, aber theoretisch brauchst Du diese nur zu verschieben in das Ausgabeverzeichnis Deines \\server\PDFprinter Druckers. http://de.opensuse.org/SDB:Selbst_erstellte_Filter_zum_Ausdruck_mit_CUPS#Pos... -- Michael Herrmann -- 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
![](https://seccdn.libravatar.org/avatar/ba6138f793e72be6644854fdc3ec2f02.jpg?s=120&d=mm&r=g)
Hallo, On Nov 30 10:06 Michael Herrmann wrote (shortened):
Am Mittwoch, 29. November 2006 21:47 schrieb Achim Theobald:
Ich hätte gerne jeden Druckvorgang der in einem Samba Netzwerk (Arbeitsgruppe, kein PDC) aufläuft auf zwei verschiedenen Druckern ausgegeben. ... Prinzipiell geht das, wenn Du an den CUPS-Filtern rumbastelst.
Der Nachteil dabei ist, dass Änderungen am Filtersystem normalerweise alle Warteschlangen betreffen. Wenn es nur die oben genannten Warteschlangen gibt, sollte das kein Problem sein, aber wenn es noch andere Warteschlangen gibt, wird es kompliziert. Gruss Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
![](https://seccdn.libravatar.org/avatar/ba6138f793e72be6644854fdc3ec2f02.jpg?s=120&d=mm&r=g)
Hallo, On Nov 29 21:47 Achim Theobald wrote (shortened):
Ich hätte gerne jeden Druckvorgang der in einem Samba Netzwerk (Arbeitsgruppe, kein PDC) aufläuft auf zwei verschiedenen Druckern ausgegeben. CUPS bietet zwar die Möglichkeit von Klassen, das hilft mir aber nicht weiter. Konkret, druckt jemand auf den Netzwerkdrucker \\server\hplj5n dann soll dieser Druckvorgang sowohl auf diesem Drucker wie auch auf dem Drucker \\server\PDFprinter erscheinen. Ich hätte also gerne von jedem Druckvorgang eine Kopie als PDF. Der "PDFprinter" ist korrekt eingerichtet und funktioniert standalone problemlos.
Ausprobiert habe ich sowas noch nie, aber eine Idee: Wären es zwei identische Druckermodelle, könnte man ein eigenes Backend machen, was die druckerspezifischen Daten dupliziert und an die beiden Drucker schickt. Da es verschiedene "Druckermodelle" sind, muß man die Daten duplizieren, bevor sie in druckerspezifische Daten umgewandelt werden. Am einfachsten ist es wohl, die originalen zu druckenden Daten zu duplizieren. Dafür könnte man eine zusätzliche "raw" Warteschlange einrichten, die ein selbstgemachtes Backend hat, was die zu druckenden Daten zweimal als neue Druckjobs an die beiden eigentlichen Warteschlangen schickt. Dabei wird der Eigentümer der neuen Druckjobs der User, unter dem das Backend läuft (normalerweise "lp"). Die Benutzer drucken dann über die "raw" Warteschlange. Man könnte nur dem User "lp" erlauben, über die beiden eigentlichen Warteschlangen zu drucken, um zu verhindern, dass normale Benutzer diese Warteschlangen direkt verwenden (siehe "man lpadmin"). Natürlich ist es dann für einen normalen Benutzer kaum möglich, einen Druckjob zu löschen, sobald der an die beiden eigentlichen Warteschlangen weitergeschickt wurde (aber siehe "man cancel"). Als Hintergrundinfo siehe http://de.opensuse.org/SDB:CUPS_in_aller_K%C3%BCrze und http://de.opensuse.org/SDB:Selbst_erstellte_Filter_zum_Ausdruck_mit_CUPS Ein ganz simples Beispiel für ein selbstgemachtes Backend was die Daten an den Parallelport schickt wo alles hart im Code festgelegt ist: ------------------------------------------------------------------ #! /bin/bash # see the "CUPS Software Programmers Manual": # "Writing Filters" and "Writing Backends" # and see the man page "man backend". # debug info in /var/log/cups/error_log set -x # output "Device Discovery" information on stdout if test "$#" = "0" then echo 'direct lp0:/dev/lp0 "Unknown" "lp0 Printer"' exit 0 fi # have the input at fd0 (stdin) in any case if test -n "$6" then exec <"$6" fi # infinite retries to access the device until cat /dev/null >/dev/lp0 do echo 'INFO: cannot access /dev/lp0 - retry in 30 seconds' 1>&2 sleep 30 done echo 'INFO: sending the data to /dev/lp0' 1>&2 # forward the data from stdin to the device if cat - >/dev/lp0 then echo 'INFO:' 1>&2 exit 0 else echo 'ERROR: failed to send the data to /dev/lp0' 1>&2 exit 1 fi ------------------------------------------------------------------ Gruss Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
participants (4)
-
Achim Theobald
-
Arno Lehmann
-
Johannes Meixner
-
Michael Herrmann