Alguém sabe como enviar comandos ESC/POS para impressão em mini impressoras de cupom(Bematech, DARUMA, etc…) ?
Esses comando seriam para fazer formatação no texto(negrito, condensado, itálico, etc).
Faço assim:
PrintService[] printService = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.AUTOSENSE, null);
PrintService impressoraPadrao = PrintServiceLookup.lookupDefaultPrintService();
DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
HashDocAttributeSet hashDocAttributeSet = new HashDocAttributeSet();
byte[] comecoTextoCondensado = {0x45, 0x0F};
byte[] fimTextoCondensado = {0x12};
char[] cortePapel = new char[]{0x1d, 'V', 1};
String texto =
new String(comecoTextoCondensado)
+ new String("teste teste \n\n\n\n\n")
+ new String(fimTextoCondensado)
+ new String(cortePapel);
InputStream stream = new ByteArrayInputStream(texto.getBytes());
Doc doc = new SimpleDoc(stream, docFlavor, hashDocAttributeSet);
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
PrintService printServico = ServiceUI.printDialog(null, 300, 200, printService, impressoraPadrao, docFlavor, printRequestAttributeSet);
if (printServico != null) {
DocPrintJob docPrintJob = printServico.createPrintJob();
try {
docPrintJob.print(doc, printRequestAttributeSet);
} catch (PrintException e) {
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
throw new RuntimeException("Erro: " + e.getMessage());
}
}
Mas não funciona, é impresso isto:
“Eteste teste”