Código de Java - Imprimir en Java

Versión 1
estrellaestrellaestrellaestrellaestrella(39)

Publicado el 24 de Abril del 2002gráfica de visualizaciones de la versión: Versión 1
242.172 visualizaciones desde el 24 de Abril del 2002
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 (39)

15 de Octubre del 2002
estrellaestrellaestrellaestrellaestrella
Es una chulada de ejemplo
Responder
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
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
14 de Julio del 2004
estrellaestrellaestrellaestrellaestrella
Exelente Ejemplo
Responder
6 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
9 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
muy buen codigo.. muchas gracias... voy a adaptarlo, para lo que lo necesito...
Responder
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
15 de Marzo del 2006
estrellaestrellaestrellaestrellaestrella
el codigo es execelente y muy facil que rifado eres mano
Responder
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
22 de Abril del 2006
estrellaestrellaestrellaestrellaestrella
Gracias por el codigo lo necesitaba urgentemente, ademas de que es excelente.
Responder
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
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
11 de Octubre del 2007
estrellaestrellaestrellaestrellaestrella
Claro, falta nomas un poco de orden en el codigo, pero es conciso
Responder
2 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
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
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
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
8 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
23 de Abril del 2009
estrellaestrellaestrellaestrellaestrella
gracias por ahorrarme la chamba!!!
Responder
5 de Julio del 2010
estrellaestrellaestrellaestrellaestrella
Tio sos muy groso, sabelo che
Responder
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
25 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
excelente le falto esta parte a mi proyecto y tu publicas un buen ejemplo Gracias men
Responder
9 de Agosto del 2011
estrellaestrellaestrellaestrellaestrella
Está genial, pero no imprime saltos de linea ("\n")
¿Hay alguna manera de hacerlo?
Responder
8 de Octubre del 2011
estrellaestrellaestrellaestrellaestrella
gracias cuate, me salvaste
Responder
26 de Noviembre del 2013
estrellaestrellaestrellaestrellaestrella
excelente !!!!
Responder
abel
3 de Diciembre del 2014
estrellaestrellaestrellaestrellaestrella
Excelente ejemplo amigo
Responder
Antrax
27 de Marzo del 2015
estrellaestrellaestrellaestrellaestrella
no ma... me salvaste la vida *.*
Responder
6 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
jesus
13 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
buenas me gustaria saber como manadar una informacion que tengo contenida en etiquetas pero, estas se encuentan en varios jpanel que cree, de manera ordenada a imprimir o en su defecto colocar un boton que me genere un archivo word para luego imprimirlo, si pueden ayudarme estaria agradecido
Responder
Domingo
4 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
Me gustaria saber lo siguiente:
He hecho una aplicación de escritorio en Java, y requiere imprimir recibos de cobro por cada persona de la Base de Datos:
¿Se puede hacer con este método ?, controlar cada linea del recibo,etc?

Agradezco de antemano cualquier sugerencia y estoy dispuesto a abonar la idea que me resuelva el problema
con una persona como tú que entiende muy bien el tema.
Atentamente,
Domingo
Responder
Michael Hernandez
18 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
hola que tal lo que pasa es que no he podido implementar este código a un proyecto web agradezco su ayuda
Responder
Luis Fernando
4 de Agosto del 2017
estrellaestrellaestrellaestrellaestrella
Perdon una pregunta porque cuando lo mando a imprimir me lo imprime la hoja en blanco
estoy trabajndo con una impresora de tickets termica de 80 mm a que se debe que lo imprime en blanco
Responder
Sergio
1 de Octubre del 2017
estrellaestrellaestrellaestrellaestrella
Excelente el ejemplo, muchas gracias
Responder
David
10 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
Hola como puedo hacer que todo lo que imprima en la impresora por defecto me lo imprima también en otra impresora, como por ejemplo una virtual en pdf que tengo instalada, la idea es poder recoger luego los datos del pdf. Gracias
Responder
Oscar Luis
6 de Junio del 2018
estrellaestrellaestrellaestrellaestrella
hola estoy en un proyecto con java y soy nuevo en este lenguaje me que de estancado aqui ya que he buscado por todo lado y no lo he encontrado, como imprimir los datos de un formulario directamente si tener que convertirlo a pdf, cualquier ayuda se los estaré altamente agradecido
Responder
Oscar Luis
9 de Junio del 2018
estrellaestrellaestrellaestrellaestrella
viejo muy bueno el codigo y es mas o menos lo que necesito pero no se como hacer para imprimir los datos de todo un formulario
cual quier ayuda te la agradeceria
Responder
25 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
Amigo!! REALMENTE GRACIAS!
Estuve HORAS Y HORAS Y MAS HORAS! Realmente ya me habia dado por vencido y este era el ultimo intento y gracias a ti consegui lo que estaba buscando, una impresion simple, pues con eso abria un cashDrawer (cajon de dinero)
Responder

Comentar la versión: Versión 1

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

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s162