Java - problema con clase Printeable en java

 
Vista:

problema con clase Printeable en java

Publicado por daniela (37 intervenciones) el 14/05/2011 20:37:56
Hola quiero imprimir un teicket con la epson tmt81, pero lo que quiero imprimir me sale 3 veces y al final imprime pero en realidad solo lo quiero una vez y que imprima, pasa dos veces por el if osea que dos veces pageindex es cero y a la tercera es 1 y por eso se sale , pero pues nose como manipular el PageIndex, lo corro tambien solo poniendo eso de no such page pero si, solo imprime una vez pero no corta, ojala me puedan ayudar . Gracias :d
EPSON TMT81


public class Ticket implements Printable {
static ArrayList<String> CabezaLineas=new ArrayList<String>();
SimpleDateFormat hora=new SimpleDateFormat("hh:mm:ss aa");

public static void AddCabecera(String line){CabezaLineas.add(line);}

public static String DarEspacio(){return "\n";}
public static void ImprimirDocumento(String impresora){
String cadena="";
for(int cabecera=0;cabecera<CabezaLineas.size();cabecera++ ){cadena+=CabezaLineas.get(cabecera);}
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob pj = service.createPrintJob();
byte[]bytes =cadena.getBytes();
Doc doc = new SimpleDoc(bytes, flavor,null);
try{
pj.print(doc,null);

}catch(Exception e){ }
}

@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
AddCabecera("");
AddCabecera(DarEspacio());
AddCabecera(" TEXTO QUE QUIERO IMPRIMIR UNA SOLA VEZ");
AddCabecera(DarEspacio());
AddSubCabecera(DibujarLinea(5));
ImprimirDocumento("EPSON TM-T81Receipt");
if(pageIndex==0){System.out.println("ESto ees con cero"+pageIndex);
return PAGE_EXISTS;}
else{System.out.println("ESto es pageindex con uno "+pageIndex);return NO_SUCH_PAGE;}
}



}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder