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