# Druckprozess überwachen / Druckerwarteschlange



## schinni (21. September 2007)

Hallo zusammen, 

ich starte den Acrobat Reader mit folgender Befehlszeile: 

Code: 
Process p =Runtime.getRuntime().exec(acrread + " /h /t " +  filepath +   " " +  printerName); 


d.h. ich will ein PDF File Drucken (möglichst) ohne, dass der reader sichtbar ist. So funktioniert es zwar, allerdings bleibt der Acrobat Reader geöffnet... 

Eine Möglichkeit wäre: 

Thread.sleep(10000);       
p.destroy(); 

aber da fängt es dann an richtig pervers zu werden. Selbst der Aufruf über getRuntime.exec finde ich nicht wirklich als saubere Lösung, aber anscheinend gibt es hier wirkich keine einheitliche Möglichkeit. 

wenn ich mit p.waitfor() auf den Prozess warte müsste der User den Reader manuell schliessen was ich vermeiden will!! 

Falls es keine Möglichkeit gibt de Prozess vernünftig zu überwachen kommt man dann irgendwie an den gestartetet Druckauftrrag ran oder kann man die Druckerwarteschlange überwachen? 

Danke und Gruß 
Stefan


----------



## Florian Strienz (22. September 2007)

Hi,
ich würde das ganz anders angehen. Öffne das PDF direkt in Java und drucke es auch direkt aus Java. Dafür muss es doch bestimmt ne Java PDF Lib geben. Habe mal ein bisschen gegoogelt. Vielleicht hilft dir das weiter.

http://javamagazin.de/itr/online_artikel/psecom,id,441,nodeid,11.html

Gruß
Flo


----------



## schinni (24. September 2007)

Hallo Flo,

danke für die Antwort, aber da ich das ganze in einem Applet in einem Intranet laufen lassen muss kann ich keine Drittanbieter verwenden. Das ist ja das Problem!

Mal sehen, vielleicht kann ich iText doch irgendwie verwenden.

Aber abgesehen von der PDF generierung bzw. Steuerung muss es odch eine Möglichkeit geben direkt die Eigenschaften eines Druckers anzusprechen.


siehe diesen thread hier:
http://www.tutorials.de/forum/java/289037-druckerport-auslesen.html

lg
Stefan


----------



## Florian Strienz (24. September 2007)

In einem Applet kannst du auch mehrer Jars mit reinladen. Das geht über den Archiv Tag. Habe das zwar noch nie gemacht, sollte aber en (würde mich zumindest schwer wundern wenn nicht. ).

http://htmlhelp.com/reference/html40/special/applet.html

Ich bin mir relativ sicher, dass du mit nativ Java nicht die Windows Druckerqueque ansprechen kannst. Java ist Plattform unabhängig. Die Windows Druckerwarterschlange nicht (Windows druckt auch anders als Linux und co. Versuche mal einen nicht Postscript fähigen Windows-Drucker unter Linux einzurichten, dass ist ein Glücksspiel).

Daher würde ich auf jedenfall den Weg, das PDF in Java zu öffnen probieren. Ich glaube da hast du eher erfolgt (ist aber nur ein Bauchgefühl). 

Alternativ könntest du auch nach einer anderen Lösung suchen, die dir das PDF unter Windows druckt, ohne einen Gui zu starten (das geht vielleicht sogar auch mit dem Acrobat).

Gruß
Flo


----------

