Java Printing nos permite hacer uso de las impresoras del sistema para, valga la redundancia 🙂 imprimir los gráficos de java2d, para que esto sea posible, debe implementarse el objeto abstracto Printable en las clases que quieran hacer uso de esa propiedad. Veamos un ejemplo:
1. Crea un nuevo proyecto en netbeans y añade un JFrame (Nombre: interfaz.java), añade un JButton (Nombre: cmdPrint) y si quieres añade algunos controles swing tambien
2. Dirígete al código del JFrame, las librerias que utilizamos son:
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob;
Debes añadir estas en la cabecera del JFrame
3. Ahora debemos implementar el Printable al JFrame, por defecto netbeans lo crea de la siguiente manera:
public class interfaz extends javax.swing.JFrame {
Debes modificarlo para que se vea asi:
public class interfaz extends javax.swing.JFrame implements Printable {
Netbeans te muestra una alerta que te dice «Implementar todos los métodos abstractos», debes implementarlos haciendo clic sobre el aviso. Te genera una funcion propia del Printable:
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { throw new UnsupportedOperationException("Not supported yet."); }
4. Reemplaza el método generado PRINT por:
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { if (pageIndex == 0) { Graphics2D g2d = (Graphics2D) graphics; g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); this.printAll(graphics); return PAGE_EXISTS; } else return NO_SUCH_PAGE; }
5. Para terminar implementamos la accion Print desde el JButton (cmdPrint), el código es:
private void cmdPrintActionPerformed(java.awt.event.ActionEvent evt) { //Crea y devuelve un printerjob que se asocia con la impresora predeterminada //del sistema, si no hay, retorna NULL PrinterJob printerJob = PrinterJob.getPrinterJob(); //Se pasa la instancia del JFrame al PrinterJob printerJob.setPrintable(this); //muestra ventana de dialogo para imprimir if ( printerJob.printDialog()) { try { printerJob.print(); } catch (PrinterException ex) { System.out.println("Error:" + ex); } } }
Eso es todo, implementa la interfaz desde el Main y ejecuta, si tienes una impresora instalada en tu equipo, cuando presiones el boton «Imprimir JFrame» saldrá la ventana de dialogo propia de tu impresora
Yo utilice una impresora virtual para imprimir en formato PDF y el resultado es el siguiente:
Archivos del proyecto Printable estan en este enlace
enjoy!!!
Geany es un editor de texto para Sistemas Operativos Linux, windows y MAC que utiliza el kit de herramientas GTK+ con ca[...]
El siguiente código te muestra una lista de los dispositivos de impresión que tenemos instalado en el sistema import jav[...]
Semanas atrás leí un articulo en el que se pensaba implementar los emojis como contraseñas en los dispositivos con andro[...]
Secret (https://getsecret.now.sh/) es una aplicación web gratuita que te permite enviar mensajes temporales cifrados que[...]
En este post les comparto una plataforma en línea diseñada para crear y compartir diagramas de flujo completamente grati[...]
Problema: Desarrolle un programa en consola con c# para escribir y leer información de un archivo binario. Los datos a e[...]