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 veremos paso a paso como importar registros de archivos *.CSV a una base de datos (MySQL por ejemplo) usand[...]
Primero que nada Studio Ghibli es un estudio de animación japonés fundado en 1985 por Hayao Miyazaki, Isao Takahata y To[...]
¿Sabia que por la pandemia que azota a la mayoría de los países de la Tierra, la mitad de la población estudiantil del m[...]
El Método de Sustitución Directa básicamente consiste en asumir un valor, reemplazar el mismo en la función despejada y[...]
KolibriOS es un pequeño sistema operativo poderoso, rápido y libre con un núcleo monolítico anticipativo en tiempo real[...]
Una cola doblemente terminada o deque es una estructura de datos lineal que permite insertar y eliminar elementos por am[...]