Ver Mensaje Individual
  #11 (permalink)  
Antiguo 12/04/2013, 14:30
JuanCollantes666
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Imprimir ticket en JAVA

AMIGOS NUEBAMENTE LES PONGO EL CODIGO DE IMPRESION JAVA SON 3 CLASES
PRIMERA CLASE

package JCollantesImprimir;
import java.io.FileWriter;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Ticket{
public Ticket(){}
static ArrayList<String> CabezaLineas=new ArrayList<String>();
static ArrayList<String> subCabezaLineas=new ArrayList<String>();
static ArrayList<String> items=new ArrayList<String>();
static ArrayList<String> totales=new ArrayList<String>();
static ArrayList<String> LineasPie=new ArrayList<String>();
public static void AddCabecera(String line){CabezaLineas.add(line);}
public static void AddSubCabecera(String line){subCabezaLineas.add(line);}
public static void AddItem(String cantidad,String item,String price,String total){
OrderItem newItem = new OrderItem(' ');
items.add(newItem.GeneraItem(cantidad,item,price,t otal));
}
public static void AddTotal(String name,String price){
OrderTotal newTotal = new OrderTotal(' ');
totales.add(newTotal.GeneraTotal(name, price));
}
public static void AddPieLinea(String line){LineasPie.add(line);}
public static String DibujarLinea(int valor){
String raya="";
for(int x=0;x<valor;x++){raya+="-";}
return raya;
}
public static String DarEspacio(){return "\n";}
public static void SetFormato(FileWriter pw,int formato){
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, '!',(char)formato};
pw.write(ESC_CUT_PAPER);
}catch(Exception e){
System.out.print(e);
}
}
public static void ImprimirDocumento(String impresora,boolean abrir){
try{
//FileWriter imp = new FileWriter("LPT1");
FileWriter imp = new FileWriter(impresora);
char[] Caracter = new char[] { 0x1B, 'R',18};
imp.write(Caracter);
for(int cabecera=0;cabecera<CabezaLineas.size();cabecera++ ){
imp.write(CabezaLineas.get(cabecera));
}
for(int subcabecera=0;subcabecera<subCabezaLineas.size();s ubcabecera++){
imp.write(subCabezaLineas.get(subcabecera));
}
for(int ITEM=0;ITEM<items.size();ITEM++){
imp.write(items.get(ITEM));
}
for(int total=0;total<totales.size();total++){
imp.write(totales.get(total));
}
for(int pie=0;pie<LineasPie.size();pie++){
imp.write(LineasPie.get(pie));
}
for(int u=0;u<=10;u++){imp.write("\n");}
//corta el papel
char[] CORTAR_PAPEL=new char[]{0x1B,'m'};
imp.write(CORTAR_PAPEL);
if(abrir){
char ABRIR_GAVETA[]={(char)27,(char)112,(char)0,(char)10,(char)100};
imp.write(ABRIR_GAVETA);
}
imp.close();
//limpio las listas que contiene los datos
CabezaLineas.removeAll(CabezaLineas);
subCabezaLineas.removeAll(subCabezaLineas);
items.removeAll(items);
totales.removeAll(totales);
LineasPie.removeAll(LineasPie);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Error al Imprimir:\n"+e.getMessage());
CabezaLineas.removeAll(CabezaLineas);
subCabezaLineas.removeAll(subCabezaLineas);
items.removeAll(items);
totales.removeAll(totales);
LineasPie.removeAll(LineasPie);
}
}
public static void ImprimirDocumento(String impresora,boolean abrir,
boolean formatoCabecera,int formato){
try{
//FileWriter imp = new FileWriter("LPT1");
FileWriter imp = new FileWriter(impresora);
for(int cabecera=0;cabecera<CabezaLineas.size();cabecera++ ){
SetFormato(imp,27);
imp.write(CabezaLineas.get(cabecera));
}
for(int subcabecera=0;subcabecera<subCabezaLineas.size();s ubcabecera++){
imp.write(subCabezaLineas.get(subcabecera));
}
for(int ITEM=0;ITEM<items.size();ITEM++){
imp.write(items.get(ITEM));
}
for(int total=0;total<totales.size();total++){
imp.write(totales.get(total));
}
for(int pie=0;pie<LineasPie.size();pie++){
imp.write(LineasPie.get(pie));
}
for(int u=0;u<=10;u++){imp.write("\n");}
//corta el papel
char[] CORTAR_PAPEL=new char[]{0x1B,'m'};
imp.write(CORTAR_PAPEL);
if(abrir){
char ABRIR_GAVETA[]={(char)27,(char)112,(char)0,(char)10,(char)100};
imp.write(ABRIR_GAVETA);
}
imp.close();
//limpio las listas que contiene los datos
CabezaLineas.removeAll(CabezaLineas);
subCabezaLineas.removeAll(subCabezaLineas);
items.removeAll(items);
totales.removeAll(totales);
LineasPie.removeAll(LineasPie);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Error al Imprimir:\n"+e.getMessage());
CabezaLineas.removeAll(CabezaLineas);
subCabezaLineas.removeAll(subCabezaLineas);
items.removeAll(items);
totales.removeAll(totales);
LineasPie.removeAll(LineasPie);
}
}
public static void main(String[] args){}
}


SEGUNDA CLASE

package JCollantesImprimir;
public class OrderItem{
char[] temp=new char[]{ ' ' };
public OrderItem(char delimit){temp=new char[]{delimit };}
public String GetItemCantidad(String orderItem){
String[] delimitado=orderItem.split(""+temp);
return delimitado[0];
}
public String GetItemNombre(String orderItem){
String[] delimitado=orderItem.split(""+temp);
return delimitado[1];
}
public String GetItemPrecio(String orderItem){
String[] delimitado=orderItem.split(""+temp);
return delimitado[2];
}
public String GetItemTotal(String orderItem){
String[] delimitado=orderItem.split(""+temp);
return delimitado[3];
}
public String GeneraItem(String cantidad, String nombre, String precio,String total){
return cantidad+temp[0]+nombre+temp[0]+precio+temp[0]+total;
}
}

TERCERA CLASE

package JCollantesImprimir;
public class OrderTotal{
char[] temp=new char[] { ' ' };
public OrderTotal(char delimit){temp=new char[]{delimit};}
public String GetTotalNombre(String totalItem){
String[] delimitado=totalItem.split(""+temp);
return delimitado[0];
}
public String GetTotalCantidad(String totalItem){
String[] delimitado=totalItem.split(""+temp);
return delimitado[1];
}
public String GeneraTotal(String Nombre, String precio){
return Nombre+temp[0]+temp[0]+temp[0]+temp[0]+precio;
}
}
LUEGO DE ESTO SOLO TIENE Q CREAR UNA INSTANCIA DE LA PRIMERA CLASE
Ticket ticket=new Ticket();
el codigo esta sencillo para q lo aprendan y entiendad para q es cada metodo de la clase Ticket