Print Dialog Example : Dialog « SWT JFace Eclipse « Java





Print Dialog Example

Print Dialog Example

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.printing.PrintDialog;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.printing.PrinterData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class PrintDialogExample {
  Display d;

  Shell s;

  PrintDialogExample() {
    d = new Display();
    s = new Shell(d);
    s.setSize(400, 400);
    
    s.setText("A PrintDialog Example");
    s.setLayout(new FillLayout(SWT.VERTICAL));
    final Text t = new Text(s, SWT.BORDER | SWT.MULTI);
    final Button b = new Button(s, SWT.PUSH | SWT.BORDER);
    b.setText("Print");
    b.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        PrintDialog printDialog = new PrintDialog(s, SWT.NONE);
        printDialog.setText("Print");
        PrinterData printerData = printDialog.open();
        if (!(printerData == null)) {
          Printer p = new Printer(printerData);
          p.startJob("PrintJob");
          p.startPage();
          Rectangle trim = p.computeTrim(0, 0, 0, 0);
          Point dpi = p.getDPI();
          int leftMargin = dpi.x + trim.x;
          int topMargin = dpi.y / 2 + trim.y;
          GC gc = new GC(p);
          Font font = gc.getFont();
          String printText = t.getText();
          Point extent = gc.stringExtent(printText);
          gc.drawString(printText, leftMargin, topMargin
              + font.getFontData()[0].getHeight());
          p.endPage();
          gc.dispose();
          p.endJob();
          p.dispose();
        }

      }
    });
    s.open();

    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }

  public static void main(String[] argv) {
    new PrintDialogExample();
  }
}


           
       










Related examples in the same category

1.TitleAreaDialog: MailDialog
2.Dialog ShellDialog Shell
3.MessageBox ExampleMessageBox Example
4.Number Input DialogNumber Input Dialog
5.Dialog ExamplesDialog Examples
6.Demonstrates FileDialogDemonstrates FileDialog
7.A facade for the save FileDialog
8.How to create your own dialog classesHow to create your own dialog classes
9.Demonstrates the FontDialog classDemonstrates the FontDialog class
10.Demonstrates the ColorDialog classDemonstrates the ColorDialog class
11.Demonstrates the DirectoryDialog classDemonstrates the DirectoryDialog class
12.Demonstrates the custom InputDialog classDemonstrates the custom InputDialog class
13.Demonstrates the MessageBox classDemonstrates the MessageBox class
14.Dialog Example
15.Shell Dialog ExampleShell Dialog Example
16.Color Dialog ExampleColor Dialog Example
17.File Dialog ExampleFile Dialog Example
18.Font Dialog ExampleFont Dialog Example
19.Yes No Icon MessageBoxYes No Icon MessageBox
20.SWT Dialog ClassSWT Dialog Class
21.Prevent escape from closing a SWT dialogPrevent escape from closing a SWT dialog
22.Create a dialog shell (prompt for a value)Create a dialog shell (prompt for a value)
23.Create a SWT dialog shellCreate a SWT dialog shell