# mit "gsprint" und "system" unter php drucken



## daniu (13. Mai 2004)

Hallo!

Ich wuerde gerne direkt aus php raus auf dem Server eine pdf-Datei zum Drucker senden (es geht um ein Intranetprogramm).

Die Umgebung ist ein Win2000 Pro Server mit IIS (wobei ich aber auch schon mit Apache auf Win XP mit sehr aehnlichem Ergebnis getestet habe). 

Zu diesem Zweck erstelle ich mir eine bat-Datei, in welche ich folgende Zeile (pro zu druckender Datei) schreibe:

"C:\Programme\Gsview\gsview\gsprint.exe" -printer "Drucker Name" -grey "datei.pdf"

Diese Batchdatei druckt auch tatsaechlich, wenn man sie auf dem Server ausfuehrt.
Sobald ich aber die Batchdatei per system, exec, shell_exec, passthru oder einfach nur `backticks` aufrufe geht nichts mehr. Manchmal kommt noch die Fehlermeldung:
Couldn't open Windows GDI printer

Der IIS laeuft unter dem selben user wie die Konsole von der aus getestet wurde, daran kann es also nicht liegen.

Wenn man das php-script (in welchem die batch-Datei aufgerufen wird) direkt unter der Konsole an php.exe weitergibt, klappt es auch.

Die doppelten '\' backslashes, die bei system auf der php.net-Seite empfohlen werden, habe ich auch schon ausprobiert ... leider ohne Erfolg.

Angefangen hatten wir mit dem Versuch, ueber Acrobat Reader zu drucken, was genau mit den selben Symptomen fehlschlug ... ghostview/gsprint ist natuerlich die edlere Loesung, von daher wuerde ich das gern beibehalten ...

Hat einer eine Idee, wie man das loesen koennte?

Gruss
Daniel


----------



## daniu (13. Mai 2004)

Hallo!

Es lag doch an dem user, der den IIS ausfuehrt ... Sorry.
Bei Win2000 ist es gar nicht ao leicht rauszufinden, wer einen Prozess ausfuehrt (zumal der Win2000 Rechner von jemand anderes und nur mit WinVNC zu erreichen ist ...)

Danke fuer saemtlichen Hirnschmalz.

Die Frage ist jetzt nur noch, wie man dem user, unter dem der IIS laeuft das Drucken erlauben kann ... Aber das klingt einfach 

Gruss
Daniel


----------



## Sven Petruschke (13. Mai 2004)

Systemsteuerung -> Drucker -> Eigenschaften -> Registerkarte "Sicherheitseinstellungen"

Das passt dann allerdings nicht mehr ins PHP-Forum.

snuu


----------



## daniu (13. Mai 2004)

Hallo!

Lange Zeit spaeter ...

Das ist der Unterschied zwischen Theorie und Praxis. Theoretisch sollte IIS drucken koennen, wenn man dem User unter dem er normalerweise laeuft auf die beschriebene Weise Druckrechte verpasst. Leider ist das aber in der Praxis nicht so ... Drucken darf er nur dann, wenn er als Administrator laeuft. Oder hat jemand anderes erlebt?
Sogar ein neuer spezieller User half da leider nichts ...
Morgen teste ich das ganze nochmal mit einem anderen aehnlichen Kandidaten.

Naja ... 

Gruss
Daniel


----------

