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,total));
}
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();subcabecera++){
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();subcabecera++){
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){}
}