PrintJob.getGraphics(); gibt null

Ok, das hätten wir ja dann so weit....!

Wenn mir jetzt noch jemand sagen könnte, wie ich denn meine Druckdaten an den Drucker bringe....! Ich denke mal, dass ich was mit dem PrinterJob machen muss.

Angenommen ich möchte einfach nur einen String s ausdrucken. Wie bekomme ich den zum Drucker....?

Gruss
Juri
 
Juri Schlönz hat gesagt.:
Ok, das hätten wir ja dann so weit....!

Wenn mir jetzt noch jemand sagen könnte, wie ich denn meine Druckdaten an den Drucker bringe....! Ich denke mal, dass ich was mit dem PrinterJob machen muss.

Schwere Geburt...
Hier steht doch schon fast alles:

Code:
	private void jbPrint_actionPerformed(ActionEvent actionEvent)
	{
		printer.getPrintJob().setPrintable(printer, printer.getPageFormat());

		if (printer.getPrintJob().printDialog())
		{
			try
			{
			  printer.getPrintJob().print(); // Drucken
			}
			catch (PrinterException e)
			{
			} // TODO Printer catch PrinterException
		}
		return;
	}

Das printDialog() öffnet den Druckdialog des Betriebssystems. Und die zweite fette Zeile sorgt für das Drucken.

Angenommen ich möchte einfach nur einen String s ausdrucken. Wie bekomme ich den zum Drucker....?

Gruss
Juri

Indem Du z.B. in der print(Graphics graphics, PageFormat pageFormat, int pageIndex) Methode des implementierten Interfaces ein simples graphics.drawString( "Hallo Welt", 10, 10 ); reinschreibst.
 
Das war die Antowort, die mir die ganze Zeit gefehlt hat...! Thx

Allerdings bekomme ich beim Aufruf von

printer.getPrintJob().print();

eine NullPointerException mit dem Hinweis: No page or printable exists.
Weißt du woran das wohl liegen kann?

Juri
 
Wenn Du nur das Interface "Printable" implementierst, passiert ja nicht gleich ein Wunder! :)

Du muß auch das "Printable" dem PrinterJob-Objekt übergeben:
Code:
printerjob.setPrintable(...);

Danach dürfte auch Dein Graphics-Objekt benutzbar sein:
Code:
public void print(Graphics g, PageFormat pf, int index) {
g.drawString("Ich drucke jetzt Text!", 20, 30);
}

Das war's schon!

CU schnuffie ;-)
 
Ich hatte das setPrintable(...) gemacht, nur auf ein Objekt, was ich nachher gar nicht mehr angefasst hab....!

Aber jetzt funktionierts...Juchu

Ich danke euch beiden

Gruss
Juri

Ps.: Die ersten Buchstaben werden noch abgeschnitten, aber ich denke das liegt am der Position des Druckbereiches. Werd mal gucken, ob ich es beheben kann....!
 
Zurück