Drucken mit Java

Bearbeiten

Seit Java1.2 ist es relativ einfach mit Java einen angeschlossenen Drucker anzusprechen. Dazu benutzt man, ähnlich wie bei der Verarbeitung von Bildern, die Klasse Toolkit. Zuerst wäre es ja einmal interessant die aktuellen Parameter des angeschlossenen Druckers zu ermitteln. Dazu holt man das Default-Toolkit, erzeugt einen dummy-Frame und ermittelt die Werte des Druckers. Dies könnte so geschehen:

import java.awt.*;

import javax.swing.UIManager;

public class PrinterInfo1 {
	public static void main( String[] args ) {
		try {
			// Natives Look&Feel verwenden
			UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
		} catch ( Exception e ) {}
		
		Toolkit tk = Toolkit.getDefaultToolkit();
		// Dialog mit Druckeroptionen erstellen
		PrintJob pj = tk.getPrintJob( new Frame(), "", null );
		
		if ( pj != null ) {
			// Aufloesung holen
			int aufloesung = pj.getPageResolution();
			Dimension dim  = pj.getPageDimension();
			
			System.out.println(
				"Druckerauflösung (DPI): " + aufloesung + "\n" +
				"breite : " + dim.width + "\n" +
				"hoehe  : " + dim.height + "\n" +
				"Pixel pro Seite: " + (aufloesung * dim.width * dim.height)
			);
		} else {
			System.out.println( "Ich kann leider keinen angeschlosssenen Drucker finden ..." );
		}
	}
}

Text auf dem Drucker ausgeben

Bearbeiten

Nachdem wir nun gesehen haben wie man ermittelt ob ein Drucker angeschlossen ist und welche physikalischen Parameter er besitzt möchten wir als nächstes ein paar Zeilen auf dem Drucker selbst ausgeben:


 import java.awt.Toolkit;
 class PrinterInfo2
 {
   public static void main( String args[] )
   {
     Toolkit tk = Toolkit.getDefaultToolkit();
     PrintJob pj = tk.getPrintJob( new Frame(), "", null );  //dummy-Frame erzeugen
     if ( pj != null )
     {  // FileOutputStream in PrintWriter packen
       PrintWriter pw = new PrintWriter( new FileOutputStream( "PRN:" ));
       pw.println( "Hallo lieber Drucker" );
       pw.println( "... und das ist Zeile2 ..." );
       pw.close();  // resource freigeben
     }
  }
 }