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!!!
En este post vamos a construir un Servicio Web bajo el protocolo SOAP (Simple Object Access Protocol) el cual básicament[...]
En un post anterior vimos como usar la herramienta XJC del JDK para generar clases java desde esquemas XSD (XML Sch[...]
Estructura Interna de un archivo SVG. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD[...]
En este post aprenderemos lo que es un JSON Web Token, como crear nuestro propio token de acceso y como usarlo en un Ser[...]
XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e[...]
El desarrollo web moderno exige no solo funcionalidad, sino también un poco de estética diferenciada en cada componente[...]