Imprimir JPanel/JFrame - Print JPanel/JFrame Java

Para realizar las impresiones en Swing es necesario utilizar la interface Printable en el objeto que queremos imprimir.

implements Printable

Se debe sobreescribir el método print(), abajo le pasamos el comoponente que deseamos imprimir que en este caso es un JPanel (pero tambien podemos enviarle el comoponente que querramos :


public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {

if (pageIndex > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE;
}

Graphics2D g2d = (Graphics2D)graphics;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

jPanel1.printAll(graphics);

return PAGE_EXISTS;

}


Y por último mandar a ejecutar la impresión:

        try {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
job.printDialog();
job.print();
} catch (PrinterException ex) {
Logger.getLogger(PrintMe.class.getName()).log(Level.SEVERE, null, ex);
}



Agrego el código fuente.
Source Code

Ver demo:

Launches the ComboBoxDemo2 example


Saludos =P

Posted in Etiquetas: , |