20.08.2012 Aufrufe

8 Das SWT

8 Das SWT

8 Das SWT

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

8.9 Ausgabe auf Drucker<br />

Zunächst wird die startJob()-Methode der Printer-Instanz aufgerufen,<br />

um einen neuen Druckauftrag zu erzeugen. Dann wird für<br />

jede Seite zunächst die startPage()-Methode aufgerufen, die grafischen<br />

Ausgaben auf den Grafikkontext durchgeführt und dann die<br />

endPage()-Methode aufgerufen. Sind alle Seiten ausgedruckt, wird der<br />

Druckauftrag mit endJob() geschlossen. Zum Schluss müssen noch der<br />

Grafikkontext und das Printer-Objekt mit dispose() entsorgt werden.<br />

Der folgende Beispielcode zeigt, wie es geht:<br />

// Taste für Druckausgabe erzeugen<br />

final Button primtButton = new Button(composite, <strong>SWT</strong>.PUSH);<br />

primtButton.setText("Drucken");<br />

// Auf Klickereignisse reagieren<br />

primtButton.addSelectionListener(new SelectionAdapter() {<br />

public void widgetSelected(SelectionEvent e) {<br />

// Shell holen<br />

Shell shell = composite.getShell();<br />

// Druckdialog erzeugen<br />

PrintDialog printDialog = new PrintDialog(shell);<br />

// und ausführen<br />

PrinterData printerData = printDialog.open();<br />

// Prüfen, ob OK gedrückt<br />

if (printerData != null) {<br />

// Neue Printer-Instanz erzeugen<br />

Printer printer = new Printer(printerData);<br />

// Grafikkontext für diesen Drucker erzeugen<br />

GC gc = new GC(printer);<br />

// Druckauftrag öffnen<br />

if (!printer.startJob("Hello"))<br />

System.out.println("Printer start job failed");<br />

else {<br />

// Erste Seite drucken<br />

if (!printer.startPage())<br />

System.out.println("Printer start page 1 failed");<br />

else {<br />

// grüne Systemfarbe vom Drucker holen und setzen<br />

Color green =<br />

printer.getSystemColor(<strong>SWT</strong>.COLOR_DARK_GREEN);<br />

gc.setForeground(green);<br />

// Text zeichnen<br />

gc.drawText("Hello World", 4, 4, true);<br />

// Seite beenden<br />

printer.endPage();<br />

}<br />

211

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!