En este post veremos como imprimir secciones de un formulario en java implementando la Interface Printable.
La clase que implementa Printable debe sobreescribir el método print para indicarle al PrintJob que componente de nuestra interfaz de usuario debe imprimir, esto en la instancia que implementa Printable que llama para imprimir los gráficos.
Pero comprenderemos mucho mejor con un ejemplo.
Si tuviéramos un formulario como el siguiente:
Y si queremos imprimir ciertas partes del mismo o todo el formulario en si, podemos hacerlo con la siguiente clase «MiPrintable.java». El código es el siguiente:
import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import static java.awt.print.Printable.NO_SUCH_PAGE; import static java.awt.print.Printable.PAGE_EXISTS; import java.awt.print.PrinterException; /** * @see https://www.jc-mouse.net * @author mouse */ public class MiPrintable implements Printable { private Component component; public MiPrintable(Component component) { this.component = component; } @Override public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { if (pageIndex > 0) { return NO_SUCH_PAGE; } Graphics2D g2d = (Graphics2D) graphics; g2d.translate(20, 20); component.paint(g2d); return PAGE_EXISTS; } }
Esta clase debemos implementarla en donde queramos hacer la llamada a impresión con PrinterJob. por ejemplo des de un botón [Imprimir GUI]
1 private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) { 2 MiPrintable mp = new MiPrintable(this); 3 PrinterJob job = PrinterJob.getPrinterJob(); 4 job.setPrintable(mp); 5 boolean ok = job.printDialog(); 6 if (ok) { 7 try { 8 job.print(); 9 } catch (PrinterException ex) { 10 System.err.println(ex.getMessage()); 11 } 12 } 13 }
donde en [2] al crear una nueva instancia de nuestra clase MiPrintable,java, pasamos como parámetro el componente que queremos imprimir, en este caso todo el formulario completo (this), ejecutando tenemos:
Y de la misma forma, para cada sección en particular que queramos imprimir, solo debemos indicar el componente en «MiPrintable.java»
enjoy!!!
Gallery.io es una herramienta de colaboración gratuita desarrollada por Google para cargar trabajos de diseño, obtener c[...]
¿Que es y para que sirve una imagen forense? Una imagen forense es un «clon» (copia bit a bit) de algún dispositivo como[...]
Java proporciona Collection Framework, que define varias clases e interfaces para representar un grupo de objetos como u[...]
Java cuenta con la clase java.lang.Math la cual contiene métodos para realizar operaciones numéricas básicas como[...]
Desde que Google anuncio de que dejara de dar soporte al plugin de Eclipse y se concentrara en Android Studio, quienes t[...]
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter[...]