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!!!
El JDK (Java Development Kit) tra una herramienta llamada native2ascii la cual permite convertir un fichero de una codif[...]
La autenticación basada en API keys es un método para proteger el acceso a una API. Se utiliza una clave alfanumérica ún[...]
Windows XP fue lanzado oficialmente el 25 de octubre de 2001, han pasado ya 17 años y 7 meses convirtiendo así a XP uno[...]
El reconocimiento óptico de caracteres o OCR (Optical Character Recognition), es un proceso dirigido a la digitalización[...]
«Be Internet Awesome» (Se genial en Internet) es un recurso de Google para la enseñanza de conceptos fundamentales sobr[...]
En este post crearemos una aplicación en Android Studio para conectarnos con nuestra base de datos de Firebase y leer al[...]