PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drucken über Netzwerkdrucker



Jor
05-03-2007, 12:12
Hallo zusammen,

ich möchte auf einen angeschlossenen Netzwerkdrucker drucken. Dazu verwende ich zum Test folgenden Code:
Toolkit tk = Toolkit.getDefaultToolkit();
PrintJob pj = tk.getPrintJob( new Frame(), "", null );
if ( pj != null )
{
PrintWriter pw = new PrintWriter( new FileOutputStream(
"IP_192.168.1.167" ));
pw.println( "Hallo lieber Drucker" );
pw.println( "... und das ist Zeile2 ..." );
pw.close(); // resource freigeben
}

Den obigen Code habe ich bei meiner Recherche im Internet gefunden, aber er funzt nicht bei mir. Was mache ich falsch? :confused:
Bin für jeden Tipp dankbar.

peschmae
05-03-2007, 12:18
Naja, das was du hier machst ist eigentlich nur in eine Datei mit Namen "IP_192.168.1.167" schreiben.

Im Normalfall ist die Frage Netzwerkdrucker<->lokaler Drucker und ähnliche Abstraktionen eh Sache des Betriebssystems.

Drucken tust du dann halt wie immer (siehe z.B: "Handbuch der Java-Programmierung" oder so), mit dem einzigen Unterschied dass der Nutzer dann halt einen Neztwerkdrucker auswählt, aber davon merkt dein Programm gar nichts.

MfG Peschmä

Jor
05-03-2007, 12:52
Hi Peschmä,

vielen Dank für deine Antwort! Yep, ich habe tatsächliche eine Datei wie du schon sagtest, eine Datei gefunden. :rolleyes: Ich habe nicht daran gedacht, das ich damit so einfach in eine Datei drucken kann. Aber wie kann ich den Ausgabestrom auf den Drucker lenken? Zumal da es ein Netzwerkdrucker ist, und er somit nicht an LPT1 hängt?

P.S.: Ich möchte reinen Text drucken, kein Bild oder ähnliches.

Waxolunist
05-03-2007, 13:06
Du musst dir den Printservice vom System holen. Dieses bietet dir die Printservices an. Ob LPT oder irgendwas anderes, ist egal.

Kennst du das schon? http://www.torsten-horn.de/techdocs/java-print.htm#J2SE14

Ausserdem solltest du nicht einen eigenen PrintWriter verwenden. Der hat, auch wenn er PrintWriter heißt, rein gar nichts mit drucken zu tun.

Das drucken erledigt die Methode print von PrintJob.

Die ersten 2 Zeilen hast du anscheinend von Galileo: http://www.galileocomputing.de/openbook/javainsel6/javainsel_15_010.htm#Xxx1000653

Wenn du unten weitergelesen hättest, dann hättest du ohnehin die Lösung bekommen.

mfg, christian

Jor
05-03-2007, 13:42
Hi Christian,
vielen Dank für deine Antwort!
Ich habe mehrere Artikel gefunden, der mir am besten zu scheinende war auf : http://de.wikibooks.org/wiki/Java_Standard:_Drucken
Ich habe mir die von dir genannten Links angeschaut und werde mir besonders die Inhalte auf der Seite von Torsten Horn erarbeiten. :)

Waxolunist
05-03-2007, 14:00
Tja in diesem Fall sind die Wikibooks leider falsch. Der Autor hätte sich einmal die Definition eines FileOutputStreams ansehen sollen.

Zu den Seiten von Thorsten Horn:

Falls du mit einer Version von Java höher als 4 arbeitest sind die Codebeispiele von Galileo besser. In der Firma bei mir arbeiten wir noch mit Java 1.4, weshalb ich mir die Seite gebookmarked habe, und sie ausserdem auch die APIS 1.3 und 1.2 umfasst. Für alle Versionen danach ist Galileo meine Nummer 1.


mfg, christian

Jor
05-03-2007, 14:56
Yep, ich habe mir die Seite auch direkt gebookmarked. Installiert habe ich die Java Version 5 (oder 5x ). Schade das ich erst ab morgen wieder Zeit habe die Routine weiter zu proggen, :mad: , aber immerhin jetzt komme ich weiter! :)