Impresión de tiquets en Java con expulsión de cajón de dinero


impresora ecline

En esta ocasión les tenemos esta aportación de Hugo S. López, en la que nos muestra como podemos mandar a imprimir tiquets en Java, con el añadido de poder mandar a expulsar el cajón del dinero, lo colocamos tal cual nos lo dejo en los comentarios para que no se pierda nada.

Les dejamos también la cuenta de Facebook y de Twitter de Hugo S. López, autor del siguiente código.

facebook.com/husalo

twitter.com/husalo_

Esta es la clase que use, a esta le paso los parametros que quiero imprimir, ahi tengo el texto q va a llevar el ticket y solo voy sustituyendo valores en el constructor

import java.awt.*;
import java.awt.print.*;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.Doc;
import javax.print.PrintException;
import javax.print.ServiceUI;
import javax.print.attribute.*;

public class Ticket {

//Ticket attribute content
private String contentTicket = “::”+(char)27+(char)112+(char)0+(char)10+(char)100+”ACCESORIOS {{nameLocal}}::\n”+
“Periban. Mich. {{dateTime}}\n”+
//”EXPEDIDO EN: {{expedition}}\n”+
“Emiliano Zapata Col. Centro \n”+
“=============================\n”+
// “Periban. Mich. {{dateTime}}\n”+
//”RFC: XAXX010101000\n”+
//”Caja # {{box}} \n”+
“Ticket # {{ticket}}\n”+
“LE ATENDIO: {{cajero}}\n”+
//”{{dateTime}}\n”+
“=============================\n”+
“{{items}}\n”+
“=============================\n”+
“SUBTOTAL: {{subTotal}}\n”+
“IVA: {{tax}}\n”+
“TOTAL: {{total}}\n\n”+
//”RECIBIDO: {{recibo}}\n”+
//”CAMBIO: {{change}}\n\n”+
“=============================\n”+
“GRACIAS POR SU COMPRA…\n”+
“ESPERAMOS SU VISITA NUEVAMENTE\n”
+ “\t::{{nameLocal}}::\n”+
“\n”
+ “\n\n\n “;

//El constructor que setea los valores a la instancia
Ticket(String nameLocal, String expedition, String box, String ticket, String caissier, String dateTime, String items, String subTotal, String tax, String total) {
this.contentTicket = this.contentTicket.replace(“{{nameLocal}}”, nameLocal);
this.contentTicket = this.contentTicket.replace(“{{expedition}}”, expedition);
this.contentTicket = this.contentTicket.replace(“{{box}}”, box);
this.contentTicket = this.contentTicket.replace(“{{ticket}}”, ticket);
this.contentTicket = this.contentTicket.replace(“{{cajero}}”, caissier);
this.contentTicket = this.contentTicket.replace(“{{dateTime}}”, dateTime);
this.contentTicket = this.contentTicket.replace(“{{items}}”, items);
this.contentTicket = this.contentTicket.replace(“{{subTotal}}”, subTotal);
this.contentTicket = this.contentTicket.replace(“{{tax}}”, tax);
this.contentTicket = this.contentTicket.replace(“{{total}}”, total);
}

public void print() throws IOException {

PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); //nos da el array de los servicios de impresion

//Creamos un arreglo de tipo byte
//y le agregamos el string convertido (cuerpo del ticket) a bytes tal como
//lo maneja la impresora(mas bien ticketera :p)
byte[] bytes= this.contentTicket.getBytes();

//Especificamos el tipo de dato a imprimir
//Tipo: bytes; Subtipo: autodetectado
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;

Doc doc = new SimpleDoc(bytes,flavor,null);
//Creamos un trabajo de impresión
DocPrintJob job =null;
if(services.length>0){
for(int i=0; i<services.length; i++){
if(services[i].getName().equals(“GP-5890X Series”)){//aqui escribimos/elegimos la impresora por la que queremos imprimir
job = services[i].createPrintJob();// System.out.println(i+”: “+services[i].getName());
}
}
}

//Imprimimos dentro de un try obligatoriamente
try{
job.print(doc, null);
}catch(PrintException ex){
System.out.println(ex);
}
}

}

Anuncios

Acerca de sistemasumma

Blog dedicado a la tecnología y a todos los estudiantes de sistemas, informatica, computación y afines
Esta entrada fue publicada en Lenguajes de aplicaciones y etiquetada , . Guarda el enlace permanente.

13 respuestas a Impresión de tiquets en Java con expulsión de cajón de dinero

  1. Anónimo dijo:

    Funciona muy bien muchas gracias por el aporte

    Me gusta

  2. Werner dijo:

    ¡Gracias por el aporte! funciona muy bien.

    Me gusta

  3. Luis dijo:

    y para cortar el papel

    Me gusta

  4. fer dijo:

    hola como pongo el main para que me funcione el codigo

    Me gusta

    • Anónimo dijo:

      public static void main(String[] args) {
      try {

      AbrirCajon a = new AbrirCajon(“p”,”p”,”p”,”p”,”p”,”p”,”p”,”p”,”p”,”p”); //las p solo son para que se cumpla el formato de la clase tu las remplazas por los parametros que quieras
      a.print();

      } catch (Exception e) {

      System.out.println(e.getMessage());
      }

      }

      Me gusta

  5. lypef dijo:

    no entiendo en que parte se mana a abrir el cajon…

    Me gusta

  6. kelvins insua dijo:

    Funciona para cualquier impresora ?

    Me gusta

  7. Luis Valdez dijo:

    Y COMO PUEDO AGREGAR UNA IMAGEN ?

    Me gusta

  8. Anónimo dijo:

    y el corte?

    Me gusta

  9. Gabriela dijo:

    muy buen aporte

    Me gusta

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s