Mit Java Drucken

Giecha

Mitglied
Hallo,

mein Java Programm überprüft, ob sich in einem Ordner eine bestimmte Datei befindet. Trifft dies zu, wird der Dateipfad in einem String gespeichert, soweit funktioniert das ganze natürlich, anschließend möchte ich diese Datei aber drucken.

Wie sage ich dem Programm nun, dass ich genau diese Datei drucken will?

Vielen Dank 🙂
mfg Giecha
 
Hallo Giecha,

wenn Du ein Programm kennst, das die Datei drucken kann, könntest Du es u.U. einfach mit [c]Runtime.getRuntime().exec(cmd)[/c] starten und dabei den Dateipfad übergeben.

Gruß,
André

PS: herzlich willkommen bei "java-forum.org"!
 
Zuletzt bearbeitet:
Hallo,

mit
Code:
Runtime.getRuntime().exec(cmd)
kann ich doch aber lediglich das Programm starten, und muss den Druckvorgang dann von Hand ausführen, oder sehe ich das falsch?
 
Du kannst in cmd ja alles mögliche reintun, nicht nur den Namen des zu öffnenden Programmes, typischweise also auch noch haufenweise Parameter (z.B. den Namen einer Funktion des Programmes oder in deinem Fall die gwünschte Druckauflösung, oder...), die das Programm benötigt. Musst du mal in der Doku des Programmes suchen, ob es Konsolenbefhele dafür gibt...
 
hast du Desktop schonmal ausprobiert?

Java:
Desktop desktop = Desktop.getDesktop();
		try {
			desktop.print(ausgabedatei);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
Falls es nicht mit einen installkierten Programm geht, musst du schauen, ob es irgendwo sowas wie ´nen Druckertreiber gibt, über den du dann mit dem Drucker kommunizieren kannst. Anders macht Word das ja auch nicht, du steuerst eigtl. nicht das Gerät an, sondern fragst den zugehörigen Treiber und der wendet sich dann an den Drucker (es würde allerdings auch ohne Treiber gehen, aber dann müsstest du die Sprache des Druckers sprechen, was bedeutet, du müsstest Dokumentbeschreibungssprachen, Seitenbeschreibungssprachen, Postscript und und und lernen...)
 
Hallo,

mit
Code:
Runtime.getRuntime().exec(cmd)
kann ich doch aber lediglich das Programm starten, und muss den Druckvorgang dann von Hand ausführen, oder sehe ich das falsch?

Wenn Du über die Kommandozeile (cmd) die Druckfunktion des Programms (oder Treibers) startest, sollte in der Regel sofort der Druckdialog erscheinen. Wenn Du direkt drucken willst (d.h. ohne Druckdialog), musst Du untersuchen, ob das mit den angebotenen Kommando-Parametern möglich ist.

Gruß,
André

PS: Zum Testen von Kommandozeilen mit java.lang.Runtime findest Du hier ein fertiges Programm: RuntimeDemo
 
Zuletzt bearbeitet:
eine .sff Datei (ein Fax)

Vielleicht kann dein Drucker die .ssf Datei direkt verarbeiten (falls diese beireits in einer Druckersprache ist). Dann bräuchtest du nur einen Socket verwenden und die Datei zum Drucker senden.

Gruß
t_fuchs005
 
Hallo zunächst einmal herzlichen Dank für die vielen Tipps,

@jgh: kann man bei der Desktop Methode auch irgentwie einen bestimmten Drucken wählen?
@HimBromBeere: Auf den Treiber zugreifen müsste ich dan mit JNI oder? Hm, damit habe ich noch nicht gearbeitet, sieht auch nicht gerade einfach aus.
@t_fuchs005: Was meinst du genau? Konnte jetzt im ersten Moment nur das hier finden Java ist auch eine Insel – 16.7 Mit dem Socket zum Server
 
soviel ich weiß -und das ist nicht viel- wird nur der default-drucker unterstützt.

Prints a file with the native desktop printing facility, using the associated application's print command.
 

Zurück
Oben