# Drucken über bestimmten Drucker



## roque (9. Mrz 2009)

Hi Zusammen,

bin auf der Suche nach der Möglichkeit, über einen bestimmten Drucker im Netzwerk zu drucken..
über die Windows Eingabeaufforderung würde mans wohl über lpr -S Servername -P Druckername machen, gibts die Möglichkeit auch in Java?
Hab leider bis jetzt nur die Möglichkeit gefunden nach den installierten Druckern zu suchen..
Haut mich nicht falls die Lösung offensichtlich ist 

Grüße 
Tom


----------



## MiDniGG (9. Mrz 2009)

String cmd = "...";
Runtime.getRuntime().exec(cmd);

Im cmd dann eben das lpr -S Servername -P Druckername


----------



## roque (9. Mrz 2009)

ja die Idee hatte ich auch schon, will aber irgendwie nicht so richtig klappen.. 
vllt stell ich mich auch nur sau blöd an 

aber über Java direkt gibts dafür keine Funktion?


----------



## MiDniGG (9. Mrz 2009)

Wie in dem anderen Thread hier. Kannst Dir ja ma die FAQ anschaun 
http://www.java-forum.org/java-faq-beitraege/7159-drucken-von-vielen-dokumentarten.html


----------



## roque (9. Mrz 2009)

ja das hab ich gelesen.. hilft aber nichts wenn ich über nen bestimmten Drucker drucken will, der nicht unbedingt installiert ist aufm Betriebssystem, oder irr ich mich?


----------



## thE_29 (9. Mrz 2009)

Und wie willste auf nem Drucker drucken der nicht installiert ist?


----------



## roque (9. Mrz 2009)

ich hab mich wohl unglücklich ausgedrückt..
der Drucker ist nicht lokal installiert, sondern eben nur über seine ip adresse bzw eben server name und drucker name zu erreichen!

im moment hab ichs so versucht:

```
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/C", "Pfad der .CMD datei", "Pfad der Datei");
```

in der .cmd steht dann der lpr befehl.

problem dabei ist, dass die cmd an sich funktioniert, wenn ichs über das java programm aufruf allerdings nur manchmal


----------



## Ebenius (9. Mrz 2009)

roque hat gesagt.:


> problem dabei ist, dass die cmd an sich funktioniert, wenn ichs über das java programm aufruf allerdings nur manchmal


Siehe: [post=491950]Wenn der mit exec gerufene Prozess hängt[/post]

Damit will ich allerdings nicht sagen, dass ich die Lösung über CMD bevorzuge oder ablehne...

Ebenius


----------



## thE_29 (10. Mrz 2009)

Der DRUCKER MUSS installiert sein!
Selbst wenn er nicht lokal bei dir ist, er MUSS installiert sein (also im Druckermenü aufscheinen).

Windows selbst kann nicht auf Drucker drucken die NICHT INSTALLIERT sind. Warum sollte das Java dann können?


----------



## roque (10. Mrz 2009)

thx @ ebenius, das hat mein problem gelöst!
und nein, der drucker erscheint definitiv nicht in der windows drucker liste!
is ja möglich, dass das nur über cmd geht, darum hab ich ja gefragt ob es evtl eine andere möglichkeit gibt.. aber hat sich ja jetz erledigt!
thx euch allen,
grüße


----------



## thE_29 (10. Mrz 2009)

Oho!
Na gut über lpr habe ich das nie probiert 

Der Drucker musst dann aber ohne User/PW Abfrage zugänglich sein oder?


----------



## roque (11. Mrz 2009)

jep stimmt, ist ohne user/pw zugänglich!


----------

