Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Código de Java - Imprimir en Java

Imprimir en Javagráfica de visualizaciones


Java

estrellaestrellaestrellaestrellaestrella(25)
Publicado el 24 de Abril del 2002 por José Miguel Galea Yrausquin
133.234 visualizaciones desde el 24 de Abril del 2002. Una media de 203 por semana
Se trata de un programa que recibe un String en un campo de texto y lo imprime al pulsar el botón IMPRIMIR.

Versión 1
estrellaestrellaestrellaestrellaestrella(25)

Publicado el 24 de Abril del 2002gráfica de visualizaciones de la versión: Versión 1
133.235 visualizaciones desde el 24 de Abril del 2002. Una media de 203 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

/******************************************************************** * El siguiente programa es un ejemplo bastante sencillo de * * impresión con JAVA. * ********************************************************************/ import javax.swing.*; import java.awt.*; import java.awt.event.*; /******************************************************************** * La siguiente clase llamada "Impresora", es la encargada de * * establecer la fuente con que se va a imprimir, de obtener el * * trabajo de impresion, la página. En esta clase hay un método * * llamado imprimir, el cual recibe una cadena y la imprime. * ********************************************************************/ class Impresora { Font fuente = new Font("Dialog", Font.PLAIN, 10); PrintJob pj; Graphics pagina; /******************************************************************** * A continuación el constructor de la clase. Aquí lo único que * * hago es tomar un objeto de impresion. * ********************************************************************/ Impresora() { pj = Toolkit.getDefaultToolkit().getPrintJob(new Frame(), "SCAT", null); } /******************************************************************** * A continuación el método "imprimir(String)", el encargado de * * colocar en el objeto gráfico la cadena que se le pasa como * * parámetro y se imprime. * ********************************************************************/ public void imprimir(String Cadena) { //LO COLOCO EN UN try/catch PORQUE PUEDEN CANCELAR LA IMPRESION try { pagina = pj.getGraphics(); pagina.setFont(fuente); pagina.setColor(Color.black); pagina.drawString(Cadena, 60, 60); pagina.dispose(); pj.end(); }catch(Exception e) { System.out.println("LA IMPRESION HA SIDO CANCELADA..."); } }//FIN DEL PROCEDIMIENTO imprimir(String...) }//FIN DE LA CLASE Impresora //A CONTINUACION LA CLASE PRINCIPAL public class Programa extends JFrame { String cadena; JTextField campo; JButton imprimir; JLabel info; Impresora imp; JPanel principal = new JPanel(new BorderLayout()); JPanel etiq = new JPanel(new FlowLayout()); JPanel dos = new JPanel(new FlowLayout()); //CONSTRUCTOR DE LA CLASE Programa() { super("Muestra Simple de Impresión en JAVA..."); info = new JLabel("ESCRIBA ALGO EN EL CAMPO Y HAGA CLIC EN IMPRIMIR..."); cadena = new String(); campo = new JTextField(30); imprimir = new JButton("IMPRIMIR"); dos.add(campo); dos.add(imprimir); etiq.add(info); campo.setToolTipText("ESCRIBA ALGO AQUÍ..."); imprimir.setToolTipText("CLIC AQUI PARA IMPRIMIR..."); principal.add(etiq, BorderLayout.NORTH); principal.add(dos, BorderLayout.CENTER); getContentPane().add(principal); //AJUSTO EL TAMAÑO DE LA VENTANA AL MINIMO pack(); //NO PERMITO QUE PUEDAN CAMBIAR EL TAMAÑO DE LA VENTANA this.setResizable(false); //AHORA LA CENTRARÉ EN LA PANTALLA Dimension pantalla, cuadro; pantalla = Toolkit.getDefaultToolkit().getScreenSize(); cuadro = this.getSize(); this.setLocation(((pantalla.width - cuadro.width)/2), (pantalla.height - cuadro.height)/2); //LE AGREGAMOS EL EVENTO AL BOTON "imprimir" imprimir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { cadena = ""; cadena = String.valueOf(campo.getText()); if (!cadena.equals("")) { imp = new Impresora(); imp.imprimir(cadena); } else System.out.println("NO SE IMPRIME NADA EN BLANCO..."); campo.requestFocus(); campo.select(0, cadena.length()); } }); }//FIN DEL CONSTRUCTOR public static void main(String jm[]) { Programa p = new Programa(); p.show(); p.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); }//FIN DEL MAIN }//FIN DE LA CLASE PRINCIPAL

Comentarios sobre la versión: Versión 1 (25)

15/10/2002Ivan
estrellaestrellaestrellaestrellaestrella
Es una chulada de ejemplo
25/07/2003Luis Fernando Ortiz
estrellaestrellaestrellaestrellaestrella
EL código es muy ilustrativo, pero en mi ordenador salta una interrupción (que lógicamente el programa intercepta) y no imprime en mi impresora local y no tengo idea de que puede pasar.
24/06/2004Mistikal
estrellaestrellaestrellaestrellaestrella
Es muy bueno el ejemplo, Gracias, 2 observaciones, que le agregues que las librerias hay que importarlas en las 2 clases, y que se fijen en guardar en archivos separados las clases, y con el nombre que estan declarados
14/07/2004Mario
estrellaestrellaestrellaestrellaestrella
Exelente Ejemplo
06/02/2006Gerardo
estrellaestrellaestrellaestrellaestrella
Hola.
No puedo hacer funcionar este programa; si alguien me puede ayudar, se lo agradeceré. se compila todo junto o por partes, cuales serían ?
Gracias


09/02/2006petra29
estrellaestrellaestrellaestrellaestrella
muy buen codigo.. muchas gracias... voy a adaptarlo, para lo que lo necesito...
19/02/2006Marisela
estrellaestrellaestrellaestrellaestrella
Este codigo es de gran utilidad, puesto que explica usted cada funcion que va hacer el programa y lo principal que es muy claor y facil de entender
15/03/2006MEMO
estrellaestrellaestrellaestrellaestrella
el codigo es execelente y muy facil que rifado eres mano
28/03/2006Osvaldo Cantu
estrellaestrellaestrellaestrellaestrella
Aka dejo otro codigo para imprimir en java
"abres un archivo txt y lo carga en un jTextArea y lo imprime"

/****************************************************************/
/* Imprime */
/* */
/****************************************************************/
package imprime;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
/**
* Summary description for Imprime
*
*/
public class Imprime extends JFrame
{
// Variables declaration
private JLabel jLabel1;
private JTextArea jTextArea1;
private JScrollPane jScrollPane1;
private JButton jButAbrir;
private JButton jButImprime;
private JPanel contentPane;
// End of variables declaration

public Imprime()
{
super();
initializeComponent();

this.setVisible(true);
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always regenerated
* by the Windows Form Designer. Otherwise, retrieving design might not work properly.
* Tip: If you must revise this method, please backup this GUI file for JFrameBuilder
* to retrieve your design properly in future, before revising this method.
*/
private void initializeComponent()
{
jLabel1 = new JLabel();
jTextArea1 = new JTextArea();
jScrollPane1 = new JScrollPane();
jButAbrir = new JButton();
jButImprime = new JButton();
contentPane = (JPanel)this.getContentPane();

//
// jLabel1
//
jLabel1.setText("Archivo:");
//
// jTextArea1
//
//
// jScrollPane1
//
jScrollPane1.setViewportView(jTextArea1);
//
// jButAbrir
//
jButAbrir.setHorizontalTextPosition(SwingConstants.CENTER);
jButAbrir.setIcon(new ImageIcon("buscar.PNG"));
jButAbrir.setText("Abrir");
jButAbrir.setToolTipText("Abrir");
jButAbrir.setVerticalAlignment(SwingConstants.TOP);
jButAbrir.setVerticalTextPosition(SwingConstants.BOTTOM);
jButAbrir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
jButAbrir_actionPerformed(e);
}

});
//
// jButImprime
//
jButImprime.setHorizontalTextPosition(SwingConstants.CENTER);
jButImprime.setIcon(new ImageIcon("Imprime.PNG"));
jButImprime.setText("Imprimir");
jButImprime.setToolTipText("Imprimir");
jButImprime.setVerticalAlignment(SwingConstants.TOP);
jButImprime.setVerticalTextPosition(SwingConstants.BOTTOM);
jButImprime.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
jButImprime_actionPerformed(e);
}

});
//
// contentPane
//
contentPane.setLayout(null);
addComponent(contentPane, jLabel1, 14,19,487,18);
addComponent(contentPane, jScrollPane1, 14,44,486,230);
addComponent(contentPane, jButAbrir, 126,285,90,80);
addComponent(contentPane, jButImprime, 296,285,90,80);
//
// Imprime
//
this.setTitle("Impresion de Archivos TXT");
this.setLocation(new Point(280, 170));
this.setSize(new Dimension(524, 411));
}

/** Add Component Without a Layout Manager (Absolute Positioning) */
private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}

private void jButAbrir_actionPerformed(ActionEvent e)
{
System.out.println("\njButAbrir_actionPerformed(ActionEvent e) called.");
//------------------------------
//Aqui permites escoger un txt para ponerlo en jtextarea
int state;
String msg;
FileDialog file = new FileDialog (Imprime.this, "Load File", FileDialog.LOAD);
file.setFile ("*.txt");
file.show();
String curFile;
if ((curFile = file.getFile()) != null)
{
String filename = file.getDirectory() + curFile;
char[] data;
setCursor (Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
File f = new File (filename);

try
{
FileReader fin = new FileReader (f);
int filesize = (int)f.length();
data = new char[filesize];
fin.read (data, 0, filesize);
}
catch (FileNotFoundException exc)
{
String errorString = "No se Encontro Archivo: " + filename;
data = errorString.toCharArray ();
}
catch (IOException exc)
{
String errorString = "Tipo de Error: " + filename;
data = errorString.toCharArray ();
}
jLabel1.setText ("Archivo: " + filename);
jTextArea1.setText (new String (data));
setCursor (Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
//------------------------------
}

private void jButImprime_actionPerformed(ActionEvent e)
{
System.out.println("\njButImprime_actionPerformed(ActionEvent e) called.");
//------------------------------
// Escoger tipo modelo y etc de fuente para ponerlo en una sola variable
String family = "Serif";
int style = Font.PLAIN;
int size = 20;
Font fuente = new Font(family, style, size);
//Terminacion de fuente

Properties defaultProps = new Properties();

PrintJob print=Toolkit.getDefaultToolkit().getPrintJob(this,"Imprimir",defaultProps);
Graphics g=print.getGraphics();

if(g!=null)
{
jTextArea1.printAll(g);
}
g.dispose();
print.end();
//------------------------------
}

//============================= Testing ================================//
//= =//
//= The following main method is just for testing this class you built.=//
//= After testing,you may simply delete it. =//
//======================================================================//
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception ex)
{
System.out.println("Failed loading L&F: ");
System.out.println(ex);
}
new Imprime();
}
//= End of Testing =
}
22/04/2006karen hdez.
estrellaestrellaestrellaestrellaestrella
Gracias por el codigo lo necesitaba urgentemente, ademas de que es excelente.
29/05/2006OScar
estrellaestrellaestrellaestrellaestrella
HOla muy bueno el codigo pero seria mas interesantre si es que imprimimes un Jpanel osea al go que no es una cadena si tienes el cdogio te agradeceria que me lo enviaras gracias
21/12/2006Fentinak
estrellaestrellaestrellaestrellaestrella
¿Y si lo que le pasas como cadena es un documento de varias lineas?
¿cómo imprimirias los saltos de linea?

Un saludo!
11/10/2007Arturo
estrellaestrellaestrellaestrellaestrella
Claro, falta nomas un poco de orden en el codigo, pero es conciso
02/12/2007miguel prieto
estrellaestrellaestrellaestrellaestrella
GRACIAS POR LA TUTORIAL AMAIGO SE LO ANEXARE A MI PROYECTO FINAL =) DE VERDAD ERES UN BUEN PROGRAMAS DOR MUCHAS GRACIAS POR LA AYUDA ESTA MUY BIEN EXPLICADO
21/12/2007Juan Carlos Gonzalez
estrellaestrellaestrellaestrellaestrella
hola a todos que tal, te cuento ocupe tu codigo que esta re bueno pero temgo un solo propblema creo el objeto de impresion y ocupo el metodo imprimir pero imprime solo una vez y el resto de las veces me tira un error javanullexception o algo asi tonces no entiendo como lo podria hacer, o por ultimo imprimir en la imopresora determinada y no elejir la impresora cada vez que quisiese imprimir...

ojala alguien tenga una respuesta....
28/06/2008Novix
estrellaestrellaestrellaestrellaestrella
bueno ...solo agradecer ....esta buenisimo..el codigo ....me sirvio bastante ...solo una observacion para los que los utilizen ...deben hacer publica la clase imprimir ....y tambien el constructor....
15/09/2008Bill
estrellaestrellaestrellaestrellaestrella
Muchas gracias no entendia por que no podía imprimir y ahora que vi este código ya es más claro, el reusar código ya sea para aplicaciones mas ambiciosas o solo para fines de estudio es un gran apoyo. Pronto tambien hare mi aportación para ayudar otros programadores. Saludos colegas, jajaja.
08/11/2008Carlos W. Ruiz de la Vega
estrellaestrellaestrellaestrellaestrella
Muy bueno amigo.... bien directo a lo que todos buscan un codigo entendible.... tienes mi boto.. saludos desde Perú.
23/04/2009Julio Osorio
estrellaestrellaestrellaestrellaestrella
gracias por ahorrarme la chamba!!!
05/07/2010brad pìzza
estrellaestrellaestrellaestrellaestrella
Tio sos muy groso, sabelo che
30/12/2010Juan Manuel Garcia Carmina
estrellaestrellaestrellaestrellaestrella
Excelente amigo, muchas gracias, funciona de maravilla, yo lo implemente con un applet para imprimir datos que se envian por medio de un JSON.
25/06/2011Darwin
estrellaestrellaestrellaestrellaestrella
excelente le falto esta parte a mi proyecto y tu publicas un buen ejemplo Gracias men
09/08/2011Jose Carlos
estrellaestrellaestrellaestrellaestrella
Está genial, pero no imprime saltos de linea ("\n")
¿Hay alguna manera de hacerlo?
08/10/2011edgar
estrellaestrellaestrellaestrellaestrella
gracias cuate, me salvaste
26/11/2013Oscar
estrellaestrellaestrellaestrellaestrella
excelente !!!!

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios