[SuSE] CUPS und SAMBA...Hab die Lösung, für die, die es interessiert.

cyberghost

kennt sich schon aus
CUPS und SAMBA...Hab die Lösung, für die, die es interessiert.

ich habe im ordner /etc/cups das cups-pdf.1.7.3 reingeladen...

dort gibt es einen unterordner welcher (src) dort geht man rein und editiert die cups-pdf.h so wie man es halt haben will.
in meinem fall hab ich eben das #define CPOUT so angepasst:

#define CPOUT "/var/spool/cups-pdf/OUT

Achtung die #-zeichen bedeuten nicht, das was auskommentiert ist...daher diese nicht löschen.

kontrollieren ob der ordner cups-pdf in /var/spool/ existiert (bin mir jetzt nicht sicher ob der automatisch angelegt wird oder nicht)...wenn nein, anlegen.

dann kompiliert man sich das file:

root@odin:/etc/cups/cups-pdf.1.7.3 #gcc -o9 -s -o cups-pdf cups-pdf.c

dieses erzeugte backend kopiert man dann zu seinen cups-backends.

root@odin:/etc/cups/cups-pdf.1.7.3 #chmod u+x cups-pdf

root@odin:/etc/cups/cups-pdf.1.7.3 #cp cups-pdf /usr/lib/cups/backends

root@odin:/ #rccups restart

danach legt man den drucker an (die ADISTILL.PPD bekommt man von Adobe):

root@odin:/ #mkdir /var/spool/cups-pdf/IN
root@odin:/ #mkdir /var/spool/cups-pdf/OUT

root@odin:/ #lpadmin -p PDF_Printer -v pdf:/var/spool/cups-pdf/OUT -P /usr/share/cups/model/ADISTILL.PPD

so, der Drucker wurde jetzt erfolgreich angelegt und nimmt jobs entgegen (bitte die sicherheitseinstellungen in /etc/cupsd.config überprüfen)

jetzt legt man in samba einfach ein share an welches per path= an /var/spool/cups-pdf verweist und setzt die rechte so das jeder alles darf (einfach mal zum testen) sollte dann natürlich angepasst werden.

also:

root@odin:/ #vi /etc/samba/smb.conf

folgendes einfügen:


[pdf-directory]
comment = ETM - PDF_DIRECTORY
path = /var/spool/cups-pdf
read only = No
guest ok = yes
browseable = yes

jetzt kann jeder user via browser das dir sehen...in welchem der IN und OUT ordner drin ist.
wenn man jetzt .jpg .ps oder was auch immer in den ordner IN stellt, will man natürlich das der pdf drucker diese dateien in pdf umwandelt und dies dann in den Ordner OUT übergibt und danach das file im Ordner IN wieder löscht.

Dafür benötigen wir ein kleines script:

root@odin:/ #vi ps2pdf.sh
#!/bin/bash
cd /var/spool/cups-pdf/IN
for ps in *.*
do
test -f $ps && /usr/bin/lpr -P PDF_Printer $ps && rm $ps
done


root@odin:/ #chmod u+x ps2pdf.sh

jetzt noch ein cronjob:

root@odin:/ #crontab -e

0-59/02 * * * * /root/ps2pdf.sh 2>&1 >/var/log/ps2pdf

fertig...

jetzt läuft alle 2 minuten das script via cronjob und überprüft ob im ordern IN ein file liegt...wenn ja, dann generiert er ein pdf daraus und stellt es in den ordner OUT. Danach löscht er das File im Ordner IN (sonst würde es wieder zu einem pdf umgewandelt werden.
Geile Sache das, vor allem da man sich die Installation der Treiber auf den Clients sparen kann und die Ordner wie ein ein normaler samba share gemountet werden können.
wenn zugriff für apple-clients ermöglicht werden soll dann muß natürlich zusätzlich in /etc/netatalk die AppleVolumes.default angepasst werden.

Thats it...

vielleicht kanns ja jemand brauchen.

lg
 
Oben