Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Simplest SWT Print Example

/**  * Class: Example1  * <p>  *   * @author Jean-Pierre Dube <jpdube@videotron.ca>  * @version 1.0  * @since 1.0  * @see Printable  */ import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterJob; public class JavaWorldPrintExample1 implements Printable {   public static void main(String[] args) {     JavaWorldPrintExample1 example1 = new JavaWorldPrintExample1();     System.exit(0);   }   //--- Private instances declarations   private final double INCH = 72;   /**    * Constructor: Example1    * <p>    *      */   public JavaWorldPrintExample1() {     //--- Create a printerJob object     PrinterJob printJob = PrinterJob.getPrinterJob();     //--- Set the printable class to this one since we     //--- are implementing the Printable interface     printJob.setPrintable(this);     //--- Show a print dialog to the user. If the user     //--- click the print button, then print otherwise     //--- cancel the print job     if (printJob.printDialog()) {       try {         printJob.print();       } catch (Exception PrintException) {         PrintException.printStackTrace();       }     }   }   /**    * Method: print    * <p>    *     * This class is responsible for rendering a page using the provided    * parameters. The result will be a grid where each cell will be half an    * inch by half an inch.    *     * @param g    *            a value of type Graphics    * @param pageFormat    *            a value of type PageFormat    * @param page    *            a value of type int    * @return a value of type int    */   public int print(Graphics g, PageFormat pageFormat, int page) {     int i;     Graphics2D g2d;     Line2D.Double line = new Line2D.Double();     //--- Validate the page number, we only print the first page     if (page == 0) {       //--- Create a graphic2D object a set the default parameters       g2d = (Graphics2D) g;       g2d.setColor(Color.black);       //--- Translate the origin to be (0,0)       g2d.translate(pageFormat.getImageableX(), pageFormat           .getImageableY());       //--- Print the vertical lines       for (i = 0; i < pageFormat.getWidth(); i += INCH / 2) {         line.setLine(i, 0, i, pageFormat.getHeight());         g2d.draw(line);       }       //--- Print the horizontal lines       for (i = 0; i < pageFormat.getHeight(); i += INCH / 2) {         line.setLine(0, i, pageFormat.getWidth(), i);         g2d.draw(line);       }       return (PAGE_EXISTS);     } else       return (NO_SUCH_PAGE);   } } //Example1