themuck
Goto Top

PrintMulti mit CUPS ablösen?

Hallo in die Runde,
für die Druckaufträge habe ich PrintMulti eingerichtet damit Aufträge mit einem Rutsch auf zwei verschiedenen Druckern und in verschiedener Anzahl gedruckt werden können. Problem dabei, oder besser das unelegante daran ist, das es auf einem User PC läuft der dann auch immer an sein muss. Das tolle und einfache daran ist das ich vier verschiedene Virtuelle Drucker habe und die User mit einem Klick die Dokumente in erfordertet Anzahl und auf dem passenden Papier in der Hand haben.

http://www.lvbprint.de/html/printmulti.html

Ich würde gerne eine kleine Kiste wie den raspberry pi dafür missbrauchen, mit einem schmalen Linux, aber das scheint nicht so einfach zu sein, denn PrintMulti stellt ja anscheinend einen eigenen Print Prozessor zur Verfügung während CUPS nur die Anschlüsse für die Drucker im Netz bereit stellt? Oder hab ich das falsch verstanden...

Grüße Malte

Content-Key: 219877

Url: https://administrator.de/contentid/219877

Printed on: April 24, 2024 at 04:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Oct 19, 2013 at 20:35:51 (UTC)
Goto Top
Zitat von @themuck:
Ich würde gerne eine kleine Kiste wie den raspberry pi dafür missbrauchen, mit einem schmalen Linux, aber das scheint
nicht so einfach zu sein, denn PrintMulti stellt ja anscheinend einen eigenen Print Prozessor zur Verfügung während CUPS
nur die Anschlüsse für die Drucker im Netz bereit stellt? Oder hab ich das falsch verstanden...


man kann in CUPS vershieden backends und "printprozessoren" dranklatschen., so daß Du z.b. PCl auf Postcript-Druckern oder Postcript auf PCL-Druckern oder beides auf Nadeldruckern ausgeben kannst.

Man kann da sehr vieles machen, ich habe da z.B. bei einem Kunde einen mehrere print-verdoppler laufen. Eine druckerqueue gibt Aufträge auf zwei Druckern aus, eine andere druckt den Auftrag einmal aus dem einen Druckerschacht udn einmal aus dem anderen Druckerschacht, weil die Warenwirtschaft des Kunden das nicht kann.

Ich benutze zwar ein linux (debian) in einer HyperV-VM dafür, sollte aber prinzipiell mit einem raspi auch gehen.

lks
Member: themuck
themuck Oct 19, 2013 at 21:50:56 (UTC)
Goto Top
Hallo,
danke für die Antwort, das hört sich super an... hast du eine Doku oder ein Tutorial, so richtig hab ich noch nichts gefunden. Das was du bei dem Kunden umgesetzt hast geht ja genau in die Richtung... nur das wir keine 2 schächte sondern 2 Drucker da stehen haben... na ich werde mich mal dran versuchen... zumindest hört es sich umsetzbar an face-smile
Kann CUPS auch PDFs mit Wasserzeichen erzeugen, also das auf einen Briefbogen gedruckt wird?

grüße und danke Malte
Member: aqui
aqui Oct 20, 2013 updated at 08:10:48 (UTC)
Goto Top
Ein ausführliches Tutorial mit allen Erklärungen zur Installation auf dem Raspberry findest du hier:
https://www.heise.de/artikel-archiv/ct/2013/14/166_Pi-macht-Druck
Damit lassen sich deine Anforderungen problemlos umsetzen.
Member: Lochkartenstanzer
Lochkartenstanzer Oct 20, 2013 updated at 09:52:33 (UTC)
Goto Top
Zitat von @themuck:
Hallo,
danke für die Antwort, das hört sich super an... hast du eine Doku oder ein Tutorial, so richtig hab ich noch nichts
gefunden. Das was du bei dem Kunden umgesetzt hast geht ja genau in die Richtung... nur das wir keine 2 schächte sondern 2
Drucker da stehen haben... na ich werde mich mal dran versuchen... zumindest hört es sich umsetzbar an face-smile

2 (oder mehr) Drucker geht relativ einfach. Du legst die Zieldrucker an und machst dann einen neuen Drucker, den Du "freigibst", der einfach seine Ausgaben auf die anderen Zieldrucker raushaut. Wie es genau im Detail war, kann ich dir nciht auswendig sagen, aber ich schau nachher mal nach. Es war ziemlich "straightforward".

Kann CUPS auch PDFs mit Wasserzeichen erzeugen, also das auf einen Briefbogen gedruckt wird?

Mit cups-pdf geht das. einfach mit google nach cups-pdf und watermark suchen. dann findet man z.B. Watermarking printouts in the Linux world oder PDF mit Wasserzeichen erstellen und anderes.

Wie man den RasPi einrichtet, hat aqui schon ausführlich dargelegt. Da das ein standard-debian ist, funktiniert das cups genauso wie auf den "großen" Kisten. zur Not reicht auch ein server, auf dem eien kleine linux-VM mitläuft.

lks

Edit: Typo & Ergänzung
Member: themuck
themuck Oct 20, 2013 at 14:03:19 (UTC)
Goto Top
Hallo,
danke für deine Mühe... nach gefühlten 10 Stunden ist mal eine Seite aus den Druckern gekommen face-sad. ich kann sie also einzeln ansprechen... und die Testseite kommt raus. Läuft zur zeit auf einem EEEPc mit Xubuntu 10.04 LTS... der lag hier noch in der ecke...

man googlet sich bei den 1000 Fehlermeldungen bei Linux ja zu Tode...

http://www.henningweiler.de/2009/01/20/cups-and-multiple-identical-prin ... und die Filter noch Kopiert face-sad

http://aplawrence.com/Unixart/dual_print.html

Hab ich versucht umzusetzen es fehlte aber das Verzeichnis etc/cups/interfaces/ hab ich angelegt...

das Script wird auch kopiert aber es gab eine Fehlermeldung beim Drucker... also in der /etc/cups/cups-files.conf folgendes geändert...

    1. Do we allow file: device URIs other than to /dev/null?
    FileDevice Yes

    /etc/cups/interfaces/2BBrief: Permission denied kommt als fehle im log und es wird nicht gedruckt...
    im Webinterface steht

    gestoppt
    "/etc/cups/interfaces/2BBrief failed"

    ändere ich die rechte...
    Unable to execute /etc/cups/interfaces/2BBrief: insecure file permissions (0100777)


    #!/bin/bash
    1. if you don't have bash, use /bin/sh
    2. don't leave off the first line - absolutely needed for cups!
    /usr/bin/lp -dprinter1 $6
    /usr/bin/lp -dprinter2 $6
    /usr/bin/lp -dprinter3 $6

    hab ich geändert

    #!/bin/sh
    1. if you don't have bash, use /bin/sh
    2. don't leave off the first line - absolutely needed for cups!
    /usr/bin/lp -dBlanco $6
    /usr/bin/lp -dBriefpapier $6

    Nun komme ich nicht mehr weiter :/...

    irgendwas passt mit den rechten anscheinend nicht...
Member: Lochkartenstanzer
Lochkartenstanzer Oct 20, 2013 at 14:17:31 (UTC)
Goto Top
Zitat von @themuck:

Moin,

Übrigens: Das Forum kennt code-tags, die das Lesen etwas vereinfachen.

Hab ich versucht umzusetzen es fehlte aber das Verzeichnis etc/cups/interfaces/ hab ich angelegt...

das Script wird auch kopiert aber es gab eine Fehlermeldung beim Drucker... also in der /etc/cups/cups-files.conf folgendes
geändert...

    1. Do we allow file: device URIs other than to /dev/null?
    FileDevice Yes

    /etc/cups/interfaces/2BBrief: Permission denied kommt als fehle im log und es wird nicht gedruckt...

Prüfe mal den owner und die group.

im Webinterface steht

gestoppt
"/etc/cups/interfaces/2BBrief failed"

ändere ich die rechte...
Unable to execute /etc/cups/interfaces/2BBrief: insecure file permissions (0100777)

Eventuell nciht die Rechte, sondern eher owner/group ändern.

#!/bin/sh
  1. if you don't have bash, use /bin/sh
  2. don't leave off the first line - absolutely needed for cups!
/usr/bin/lp -dBlanco $6
/usr/bin/lp -dBriefpapier $6

Nun komme ich nicht mehr weiter :/...

Sieht imho o.K. aus.

irgendwas passt mit den rechten anscheinend nicht...

Mach mal ein "ls -lsaF" auf das Verzeichnis und poste das ergebnis.

lks

PS. Wenn die Kiste natürlich noch RIP spielen muß, sollte sie einen ordentlichen Prozessor haben, Sonst wartet man ewig.
Member: themuck
themuck Oct 20, 2013 updated at 16:23:26 (UTC)
Goto Top
Hallo
ich hab an den rechten aber schon etwas viel rum gespielt :D... ich denke mal nun passt alles nicht.

4 drwx------ 2 root root 4096 2013-10-20 13:32 ./
4 drwxr-xr-x 5 root lp   4096 2013-10-20 16:56 ../
4 -rwx--x--x 1 root root  133 2013-10-20 15:42 2BBrief*
4 -rwx--x--x 1 root root  166 2013-10-20 15:42 dual*

Hab es mal so geändert... kommt auch der Fehler /etc/cups/interfaces/2BBrief: Permission denied
4 drwxr-xr-x 2 root lp 4096 2013-10-20 13:32 ./
4 drwxr-xr-x 5 root lp 4096 2013-10-20 17:21 ../
4 -rwxr-xr-x 1 root lp  133 2013-10-20 15:42 2BBrief*
4 -rwxr-xr-x 1 root lp  166 2013-10-20 15:42 dual*

sudo /etc/init.d/apparmor stop

hab ich auch mal ausgeführt weil ich in den weiten des Netzes auch darüber gestolpert bin...


Edit... Wooowww nach einem Tag Arbeit geht nun schon mal das Duale...

sudo chmod 755 /etc/cups/interfaces/*
sudo chmod 755 /usr/lib/cups/*

und dieses AppArmor Paket entfernt... Nun noch mit Windows7 Kämpfen :D und die Seiten Anzahl in den Griff bekommen

grüße und dank dir!

ach so sieht das script aus wo er das Dokument zwei mal drucken soll auf einem Drucker...

#!/bin/sh
# don't leave off the first line - absolutely needed for cups! 
/usr/bin/lp -dBlanco  -n$2 $6
/usr/bin/lp -dBriefpapier   $6

Returning IPP client-error-attributes-or-values-not-supported for Create-Job (ipp://localhost:631/printers/Blanco) from localhost

#!/bin/sh
# don't leave off the first line - absolutely needed for cups! 
/usr/bin/lp -dBlanco   $6
/usr/bin/lp -dBlanco   $6
/usr/bin/lp -dBriefpapier   $6

Hab es jetzt so geändert... sicher nicht ganz sauber :D
Member: Lochkartenstanzer
Lochkartenstanzer Oct 20, 2013 at 16:22:59 (UTC)
Goto Top
Moin,


habe mal gerade nachgeschaut.

Das backend liegt bei mir in :

/usr/lib/cups/backend/l-liefer-doppel
/usr/lib/cups/backend-available/l-liefer-doppel

Die Berechtigungen sind:

drwxr-xr-x 2 root root 4096 2013-01-22 12:13 /usr/lib/cups/backend/
drwxr-xr-x 2 root root 4096 2013-01-22 11:52 /usr/lib/cups/backend-available/
-rwxr-xr-x 2 root root  791 2013-01-22 12:13 /usr/lib/cups/backend-available/l-liefer-doppel
-rwxr-xr-x 2 root root  791 2013-01-22 12:13 /usr/lib/cups/backend/l-liefer-doppel

Die Datei selbst ist

#! /bin/bash
 # Have debug info in /var/log/cups/error_log:
 set -x
 # Output "device discovery" information on stdout:
 if test "$#" = "0"
 then echo 'direct l-liefer-doppel  "Unknown" "l-liefer-doppel:/"'
#  then echo 'network mysocket://192.168.1.2:9100 "Unknown" "192.168.1.2:9100"'
      exit 0
 fi
 # Set INPUTFILE to where the input comes from:
 INPUTFILE="-"
 if test -n "$6"
 then INPUTFILE="$6"
 fi
 # Send the data to the remote port:
# echo 'INFO: sending data to 192.168.1.2:9100' 1>&2
 DATUM="`date +%F.%T.%N`"
 echo $DATUM
 echo 'INFO: sending data to temp-file' 1>&2
 if cat $INPUTFILE >/tmp/$DATUM
 then echo 'INFO:' 1>&2
	lpr -P l-liefer-3 /tmp/$DATUM 
	lpr -P l-liefer-2 /tmp/$DATUM 
      exit 0
 else echo 'ERROR: failed writing to /tmp/' $DATUM 1>&2
      exit 1
 fi

Das habe ich mal vor Jahren schnell als Provisorium "hingerotzt" und da es sich als stabil erwies läuft es immer noch.

lks
Member: Lochkartenstanzer
Lochkartenstanzer Oct 20, 2013 at 16:27:00 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
> Zitat von @themuck:
> ----

> /usr/bin/lp -dBlanco $6
> /usr/bin/lp -dBriefpapier $6
>
> Nun komme ich nicht mehr weiter :/...

Sieht imho o.K. aus.


Nachdem ich mein Script angeschaut habe, sieht das nicht mehr o.k. aus.

Du bekommst ggf. den Input über stdin und der ist natürlich nach dem ersten Druck weg. Dann kannst du auf dem zweiten Drucker nichts mehr drucken. Schau Dir mal meine Variante an.

lks
Member: themuck
themuck Oct 20, 2013 at 21:18:30 (UTC)
Goto Top
Hallo und danke für deine Bemühungen,
ich muss mich in dein Script mal einarbeiten denn so firn bin ich in der ganzen Materie nicht...

von der Seite des Tutorials...

I know someone is bound to ask "Why didn't you use a backend script?". You absolutely could, but that involves putting the script into /usr/libexec/cups/backend/ and restarting cups. As we aren't doing a darn thing that needs any other functionality we could get with a backend script, why go to all that trouble? The interface file method works just as well, and requires no restart of Cups.

Nun hab ich eben mal eine PDF Datei gedruckt eine Seite 43MB...da kann man ja nen Kaffee trinken gehen :D. Alles andere lief aber ganz gut bis jetzt... in Win7 läuft es auch... Denke mal der PI ist dafür etwas schlapp auf der Brust was? Wenn ich daran denke das da PDFs mit einige 100 seiten drüber laufen könnten...
Member: aqui
aqui Oct 21, 2013 at 09:54:22 (UTC)
Goto Top
Nein, der Raspberry macht sowas mit Links ! Wichtig ist aber das du ihm unter CUPS einen RAW Printer definierst und die Treiber auf den Endgeräten installierst, dann muss er nur "durchreichen" was dann in Wirespeed bzw. auf Tastendruck funktioniert !
Member: themuck
themuck Oct 21, 2013 at 12:15:53 (UTC)
Goto Top
Hallo,
das Funktioniert dann auch mit den Virtuellen Druckern wenn ich auf dem Client das Dokument verarbeite und an zwei unterschiedliche Drucker weiterreiche ?
Member: themuck
themuck Oct 22, 2013 at 17:18:04 (UTC)
Goto Top
Noch ein Nachtrag...
heute musste ich mich damit beschäftigen das die Skalierung bei PDFs nicht passt, nach dem ich 3h versucht habe in CUPS und dem Treiber (MS Publisher Printer...) Einstellungen und Formate zu ändern zu verschieben... blablabla.. hat es mir irgendwann gereicht und ich hab Foxit Reader installiert...

Dokument gedruckt... hääää... warum geht das so schnell? Und siehe da alles passt ohne etwas um zu stellen. Im Netz hab ich das Thema irgendwo überflogen und bin dann auf einer Adobe Fehler Seite gewesen... finde das aber gerade nicht mehr.

Das Dokument aus dem Adobe Reader was ich zum Drucker schicke ist 14MB groß aus Foxit nur noch 255KB. Zeit aus Foxit zum verarbeiten 10s, aus dem Adobe Reader 40s. Das sehe ich an der Prozessor Auslastung am eeePC die nach einem Druckauftrag sofort auf 100% geht.