Código de Java - Imprimir en Java

Imprimir en Javagráfica de visualizaciones


Java

estrellaestrellaestrellaestrellaestrella(30)
Publicado el 24 de Abril del 2002 por José Miguel Galea Yrausquin
153.495 visualizaciones desde el 24 de Abril del 2002. Una media de 217 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(30)

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/********************************************************************
*	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 (30)

Ivan
15 de Octubre del 2002
estrellaestrellaestrellaestrellaestrella
Es una chulada de ejemplo
Responder
Luis Fernando Ortiz
25 de Julio del 2003
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.
Responder
Mistikal
24 de Junio del 2004
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
Responder
Mario
14 de Julio del 2004
estrellaestrellaestrellaestrellaestrella
Exelente Ejemplo
Responder
Gerardo
06 de Febrero del 2006
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


Responder
petra29
09 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
muy buen codigo.. muchas gracias... voy a adaptarlo, para lo que lo necesito...
Responder
Marisela
19 de Febrero del 2006
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
Responder
MEMO
15 de Marzo del 2006
estrellaestrellaestrellaestrellaestrella
el codigo es execelente y muy facil que rifado eres mano
Responder
Osvaldo Cantu
28 de Marzo del 2006
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 =
}
Responder
karen hdez.
22 de Abril del 2006
estrellaestrellaestrellaestrellaestrella
Gracias por el codigo lo necesitaba urgentemente, ademas de que es excelente.
Responder
OScar
29 de Mayo del 2006
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
Responder
Fentinak
21 de Diciembre del 2006
estrellaestrellaestrellaestrellaestrella
¿Y si lo que le pasas como cadena es un documento de varias lineas?
¿cómo imprimirias los saltos de linea?

Un saludo!
Responder
Arturo
11 de Octubre del 2007
estrellaestrellaestrellaestrellaestrella
Claro, falta nomas un poco de orden en el codigo, pero es conciso
Responder
miguel prieto
02 de Diciembre del 2007
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
Responder
Juan Carlos Gonzalez
21 de Diciembre del 2007
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....
Responder
Novix
28 de Junio del 2008
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....
Responder
Bill
15 de Septiembre del 2008
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.
Responder
Carlos W. Ruiz de la Vega
08 de Noviembre del 2008
estrellaestrellaestrellaestrellaestrella
Muy bueno amigo.... bien directo a lo que todos buscan un codigo entendible.... tienes mi boto.. saludos desde Perú.
Responder
Julio Osorio
23 de Abril del 2009
estrellaestrellaestrellaestrellaestrella
gracias por ahorrarme la chamba!!!
Responder
brad pìzza
05 de Julio del 2010
estrellaestrellaestrellaestrellaestrella
Tio sos muy groso, sabelo che
Responder
Juan Manuel Garcia Carmina
30 de Diciembre del 2010
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.
Responder
Darwin
25 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
excelente le falto esta parte a mi proyecto y tu publicas un buen ejemplo Gracias men
Responder
Jose Carlos
09 de Agosto del 2011
estrellaestrellaestrellaestrellaestrella
Está genial, pero no imprime saltos de linea ("\n")
¿Hay alguna manera de hacerlo?
Responder
edgar
08 de Octubre del 2011
estrellaestrellaestrellaestrellaestrella
gracias cuate, me salvaste
Responder
Oscar
26 de Noviembre del 2013
estrellaestrellaestrellaestrellaestrella
excelente !!!!
Responder
abel
03 de Diciembre del 2014
estrellaestrellaestrellaestrellaestrella
Excelente ejemplo amigo
Responder
Antrax
27 de Marzo del 2015
estrellaestrellaestrellaestrellaestrella
no ma... me salvaste la vida *.*
Responder
Brandon Joel Castillo
06 de Junio del 2015
estrellaestrellaestrellaestrellaestrella
Excelente post!!!! Me sirvió en parte yo tengo un problema necesito poner un botón y que se imprima ese jframe que se este visualizando ,quisiera comunicarme contigo para proporcionarte mi código y ver si me puedes ayudar con eso que te digo.
Responder
yuri
24 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
Hola. como puedo evitar que me salga el dialog de propiedades de la impresora?
Responder
Alberto
17 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
Como puedo cambiar el tamaño de la página ?
Responder

Comentar la versión: Versión 1

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

http://lwp-l.com/s162