"ESCp0û." es code1 en ASCII, no sé si hay que enviarlo todo junto o cómo.
Cambié el metodo, para que envie bytes, pero tampoco funciona (ni da error ni se abre el cajón):
Código:
public void cashdrawerOpen() {
String code1 = "27 112 0 150 250"; //decimal he probado: 27 112 0 150 250 - 271120150250 - 27:112:0:150:250
String code2 = "1B 70 0 96 FA"; // hexadecimal: 1B:70:0:96:FA - 0x1B70096FA - 0x1B 70 0 96 FA - 1B70096FA
String code = "ESCp0û."; //Ascii idem
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println(service.getName()); //la impresora esta bien
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
DocPrintJob pj = service.createPrintJob();
byte[] bytes;
bytes=code1.getBytes();
Doc doc=new SimpleDoc(bytes,flavor,null);
try {
pj.print(doc, null);
} catch (PrintException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}