PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : via samba pdf erzeugen?



sklasse
27.02.03, 13:09
hi,
habe versucht, so wie in der aktuellen ix beschrieben,
pdf übers netz zu erzeugen.
Wenn ich in eine datei drucke und das script für diese datei aufrufe klappt alles hervorragend.
Nachdem ich mich unter win mit dem freigegebenen Drucker
verbinde geschieht nichts. Samba legt keine Datei an,
wer kann mir helfen?

hier die einträge aus meiner smb.conf

[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No

[pdfprinter]
comment = Treiber: Minolta Color PageWorks/Pro PS
path = /server/test
printable = Yes
guest ok = yes
print command = /server/test/pdfscript "%s"



danke für eure hilfe

stefaan
28.02.03, 11:35
Servus!

Schau dir einmal den Thread an bzw im Archiv findest du noch einiges dazu.
Einfach mal nach Samba und PDf suchen.
http://www.linuxforen.de/forums/showthread.php?s=&threadid=31311&highlight=samba+pdf

Grüße, Stefan

chr
04.03.03, 19:37
ich hab das gleiche problem. im heise forum wurde anscheinend darüber philosophiert das das script fehlerhaft wäre

http://www.heise.de/ix/foren/go.shtml?read=1&msg_id=2969075&forum_id=10536

hilft mir aber auch nicht.

mal eine verständnisfrage generell:

windows ps treiber schickts nach samba, samba legt die ps datei ab? oder _muss_ das zwingend nur lprng oder cups gejagt werden vorher?

Stormbringer
06.03.03, 11:02
Hi,

ich weiß zwar nicht, ob dies hilft, aber ich habe die Anleitung dieser Seite http://www.linux-als-server.de/html/special-pdfprinter.php benutzt, um einen PDF Drucker via Cups bereit zu stellen.
Als PS Drucker auf den MS Clients (inkl. W2K Advanced Server) habe ich den HP Color Laserjet 8100 PS angegeben.

Gruß

sklasse
06.03.03, 17:17
Danke

danjelsan
17.04.03, 14:44
*threadaufwärm*

Trotz der vielen oben genannten ausführlichen Aufführungen hab ich es nicht geschafft,
das Samba meine PDF druckt... :(

Die Linux Kiste hängt in der NT-Dömäne, und zugreifen und Dateien erstellen kann ich auch
(hab erstmal chmod 777 für mein pdfshare + pdfscript gemacht).

Wenn ich ein Dokument drucke, schiebt er es in die Druckerwarteschlange wo
es dann ewig verbleibt.

die log.nmbd sag dazu folgendes:

Copyright Andrew Tridgell and the Samba Team 1994-2002
[2003/04/17 14:24:47, 0] nmbd/nmbd.c:terminate(59)
Got SIGTERM: going down...
[2003/04/17 14:24:47, 0] nmbd/nmbd.c:main(794)
Netbios nameserver version 2.2.5 started.
Copyright Andrew Tridgell and the Samba Team 1994-2002
[2003/04/17 14:24:51, 0] nmbd/nmbd_responserecordsdb.c:find_response_record(235)
find_response_record: response packet id 6789 received with no matching record.
[2003/04/17 14:24:51, 0] nmbd/nmbd_responserecordsdb.c:find_response_record(235)
find_response_record: response packet id 6790 received with no matching record.

Kann leider nix mit der Fehlermeldung anfangen...

hier mal meine smb.conf:

[global]
workgroup = MM
netbios name = soft-11
os level = 0
time server = yes
unix extensions = yes
encrypt passwords = yes
printing = CUPS
printcap name = CUPS
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
local master = no
wins server = 130.1.10.2
character set = ISO8859-15
client code page = 850
veto files = /*.eml/*.nws/riched20.dll/*.{*}/

[homes]
comment = Home Directories
valid users = %S
browseable = no
writeable = yes
create mask = 0640
directory mask = 0750

[printers]
comment = All Printers
path = /var/tmp
printable = yes
create mask = 0600
browseable = no

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
#dw
#[pdfprinter]
#
# print command = /smbhome/pdfprinter/pdfscript "%s"
# path = /smbhome/pdfprinter
# printable = yes
# read only = no
# guest ok = yes
#
# comment = Treiber: Minolta Color PageWorks/Pro PS

[pdfprinter2]

print command = /smbhome/pdfprinter/pdfscript "%s"
path = /smbhome/pdfprinter
printable = yes
read only = yes
guest ok = yes
comment = Treiber: HP Color LaserJet PS

______________________________________________

. . . any hints?

wie immer TIA

danjelsan

Stormbringer
17.04.03, 21:20
Dann laß doch einfach einmal die Rubrik [pdfprinter] weg, und richte es entsprechend dem oben genannten Link ein.
Funzt einwandfrei in einer NT4 Domäne, und auch aus einem AD heraus.

Gruß

danjelsan
22.04.03, 13:26
so, bin schon mal einen Schritt weiter...

die erzeugte Datei mit dem Potscriptinhalt landet in meinem pdfshare-VZ,
verschwindet aber noch bevor das script es als PDF umwandelt.
(ich hab die überarbeitet Version genommen, die Kip hier ->http://www.linuxforen.de/forums/showthread.php?s=&threadid=72340&highlight=pdf+AND+drucker+OR+pdf+AND+printer postet.)

Warum wandelt das Script den Auswurf nicht um?

script:
#!/bin/bash
# Generate PDFs via Samba
#
# 1:find the file name

FILE=$(egrep "^%%Title:" "$1" | head -n -1 |
sed -e 's/^%%Title:" //g' |
sed -e 's/^(//g' |
sed -e 's/\(.*\)\..*$/\1/g' |
tr -d "\r\n")
FILE=`echo -n -e $FILE`

# 2:remove crap from the beginning and end of the ps
file
POS_S=`egrep -n "^%\!PS-Adobe" "$1" | cut -d ; -f 1`
POS_E=`egrep -n "^%\EOF "$1" | cut -d ; -f 1`
sed 1, $[POS_S - 1]d "$1" | head -n $[$POS_E - $POS_S + 1] > "${FILE}.ps

# 3:now we can remove the smb file
rm -f "$1"

# 4:make a pdf
gs -q -dCompatibilityLevel=1.3 .dNOPAUSE -dBATCH -sDEVICE =
pdfwrite -sOutputFile="${FILE}.pdf" -c save pop -f"${FILE}.ps


------------------------------------------------------------------------------------------
smb.conf:

[global]
workgroup = MM
netbios name = soft-11
os level = 0
log file = /var/log/samba/log.%m
max log file = 50
log level = 3
time server = yes
unix extensions = yes
encrypt passwords = yes
workgroup = MM
netbios name = soft-11
os level = 0
log file = /var/log/samba/log.%m
max log file = 50
log level = 3
time server = yes
unix extensions = yes
encrypt passwords = yes
printing = CUPS
printcap name = CUPS
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
local master = no
wins server = 130.1.10.2
character set = ISO8859-15
client code page = 850
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
[homes]
comment = Home Directories
valid users = %S
browseable = no
writeable = yes
create mask = 0640
directory mask = 0750
[printers]
comment = All Printers
path = /var/tmp
printable = yes
create mask = 0600
browseable = no
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
#dw
[pdfprinter]

print command = /smbhome/pdfprinter/pdfscript %s
path = /smbhome/pdfprinter
printable = yes
guest ok = yes
comment = Treiber: Minolta Color PageWorks/Pro PS

[pdfshare]

path = /smbhome/pdfprinter
admin users = root
force group = users
read only = No
force create mode = 0777
delete veto files = Yes
delete readonly = Yes
dos filetimes = Yes
nt acl support = No

danjelsan
24.04.03, 10:46
:D kurz vor dem Durchbruch...


Das Script workte nicht weil ich es per copy&paste unter win in den pdfshare einfügte,
denn M$ generiert versteckte Steuerzeichen, die falsch oder fehlerhaft interpretiert werden... :ugly:

Beim Ausführen des Scriptes (ohne die ps-Datei!) gibt es noch einen syntaktischen Fehler, den ich nicht vestehe.
Ich hab der Übersicht halber Haltepunkte in meinen Script eingefügt....

pdfscript:

#!/bin/bash

# find the file name
echo -e "1\n"
FILE=$(egrep "^%%Title:" "$1" | head -n 1 | sed -e 's/^%%Title: //g' | sed -e 's/^(//g' | sed -e 's/\(.*\)\..*$/\1/g' | tr -d "\r\n")
FILE=`echo -n -e $FILE`

echo -e "2\n"
# remove crap from the beginning and end of the ps file
POS_S=`egrep -n "^%\!PS-Adobe" "$1" | cut -d = -f 1`
POS_E=`egrep -n "^%%EOF" "$1" | cut -d : -f 1`
sed 1,$[$POS_S - 1]d "$1" | head -n $[$POS_E - $POS_S + 1] > "${FILE}.ps"

echo -e "3\n"
# now we can remove the smb file
rm -f "$1"

echo -e "4\n"
# make a pdf
gs -q -dCompatibilityLevel=1.3 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite - sOutputFile="${FILE}.pdf" -c save pop -f "${FILE}.ps"

echo -e "5\n"
# remove the ps
rm -f "${FILE}.ps"
---------------------------------------------------------------------------------------------------

wenn ich es übersetze kommt folgendes:

soft-11:/smbhome/pdfprinter # ./pdfscript
1

grep: : Datei oder Verzeichnis nicht gefunden
2

grep: : Datei oder Verzeichnis nicht gefunden
grep: : Datei oder Verzeichnis nicht gefunden
sed: -e Ausdruck #1, Zeichen 3: Unerwartetes `,'
head: -1: ungültige Anzahl von Zeilen
3

4

**** Unable to open the initial device, quitting.
5



Was muss ich denn statt des "," schreiben?


greetz

danjelsan

Columbo0815
25.04.03, 14:02
Hi,

bin gerade zufällig über diesen Thread gestoßen. Hört sich sehr interessant an! Ich habe von script uä überhaupt keine Ahnung, mich würde aber interessieren ob folgendes möglich ist:

Ich drucke in Win auf (wie oben beschrieben) einen Linux(Samba)drucker als File. Der Linuxrechner konvertiert das file in ein PDF, erkennt wer das File gedruckt hat und schickt diesem User das PDF als Email zu?

Sollte sowas möglich sein, werd ich zukünftig nur noch über "auf-MS-Schwörer" lachen... :ugly: ;)

Gruß Columbo

dipesh
25.04.03, 14:46
@ Columbo0815

Eine gute Idee. Wäre es nicht möglich den Aufruf des Scripts in der smb.conf noch ein %u als Parameter mitzugeben und in dem Script selbst dieses dann wie gewünscht auszuwerten?!

danjelsan
25.04.03, 15:14
Ich drucke in Win auf (wie oben beschrieben) einen Linux(Samba)drucker als File. Der Linuxrechner konvertiert das file in ein PDF, erkennt wer das File gedruckt hat und schickt diesem User das PDF als Email zu?

Sollte sowas möglich sein, werd ich zukünftig nur noch über "auf-MS-Schwörer" lachen...


Ist bestimmt möglich, aber warum so kompliziert?

Du kannst auch einfach ein Netzlaufwerk mit dem Ordner verbinden...



BOT: MISSION COMPLETED,

war nur ein dummer Rechtschreibfehler :rolleyes: :rolleyes: :rolleyes:

-> POS_S=`egrep -n "^%\!PS-Adobe" "$1" | cut -d : -f 1`



greetz

danjelsan