Imprimir Ticket

eduardo
20 de Diciembre del 2005
hola, necesito imprimir un ticket con una impresora de ticket pero no se como hacerlo, he probado todo lo que he encontrado por la web pero no me funciona, espero que alguien me ayude porque estoy desesperado, gracias.

ChinoKao
20 de Diciembre del 2005
Yo para imprimir me creo una clase que implementa Printable, y ejerce de controlador... Lo único que tendrás que cambiar es el tipo de papel donde vas a imprimir, es decir, darle el alto y el largo del papel.

La clase sería algo así.

public class printarListado implements Printable{

java.util.List lista;

public printarListado(java.util.List listado) {
lista = listado;
}

public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException {
g.setFont(new Font("Dialog", Font.PLAIN, 10));
g.setColor(Color.red);
int linea = 220;
g.drawString("CÓDIGO", 40, linea);
g.drawString(" NOMBRE DEL ARTÍCULO", 90, linea);
g.drawString("PVP", 420, linea);
g.drawString("IVA", 470, linea);
g.drawString("TOTAL", 520, linea);
for (int i=0; i<lista.size(); i++){
Vector miVector = (Vector)lista.get(i);
linea = linea + 15;
String codigo = (String)miVector.elementAt(0);
String nombre = (String)miVector.elementAt(1);
String precio = (String)miVector.elementAt(2);
String iva = (String)miVector.elementAt(3);
String total = (String)miVector.elementAt(4);
g.drawString(codigo, 40, linea);
g.drawLine(40, linea+3, 550, linea+3);
g.drawString(nombre, 90, linea);
g.drawString(precio, 420, linea);
g.drawString(iva, 470, linea);
g.drawString(total, 520, linea);
if (i%2==0){
g.setColor(Color.black);
}
else {
g.setColor(Color.red);
}
}
return Printable.PAGE_EXISTS;
}

}

Yo de esto no tengo mucha experiencia, pero supongo que esta es una manera de hacerlo.

Después le indicas el tamaño del papel y a correr...
Lo único que puedes hacer es decirle exactamente la impresora que debe elegir, pero eso no se hacerlo.

Lo del tamaño del papel sería algo así:

PageFormat miFormato = new PageFormat();
Paper miPaper = new Paper();
miPaper.setImageableArea(1.0, 1.0, miPaper.getWidth(), miPaper.getHeight());
miFormato.setPaper(miPaper);

Bueno, vete probando cosas, primero más sencillas y luego más complicadas, a ver que tal te va.

Un saludo

ana
20 de Diciembre del 2005
Hola,
me gustaría saber si te funcionó esto. Porque yo tengo que hacer lo mismo y no tengo ni idea. Gracias