Depois de muita procura resolvi postar aqui, esse código funciona para imprimir normalmente, mas de forma alguma consegui imprimir caracteres acentuados, alguém pode ajudar a resolver isso??
(os comentários do código não estão certos)
StringBuilder texto = new StringBuilder("Teste impressão\n"); // (limpa o buffer de impressão, para ser iniciado um novo arquivo BPLB)
texto.append("------------------------------\n"); //(configura a Densidade ou aquecimento da cabeça de impressão para o valor 9)
texto.append("\n"); //(configura a Velocidade de impressão para 3 pol./seg)
texto.append("Produto 1 25 RS\n"); //(habilita o “backfeed” para que ao final da impressão, o espaço entre etiquetas pare na serrilha)
texto.append("Produto 1 25 RS\n"); //(habilita o “backfeed” para que ao final da impressão, o espaço entre etiquetas pare na serrilha)
texto.append("Produto 1 25 RS\n"); //(habilita o “backfeed” para que ao final da impressão, o espaço entre etiquetas pare na serrilha)
texto.append("Produto 1 25 RS\n"); //(habilita o “backfeed” para que ao final da impressão, o espaço entre etiquetas pare na serrilha)
texto.append("Produto 1 25 RS\n"); //(habilita o “backfeed” para que ao final da impressão, o espaço entre etiquetas pare na serrilha)
texto.append("\n"); //(indica que a impressão deve inciar a partir do topo, ou seja, de cabeça para baixo)
texto.append("\n"); //(indica que a impressão deve inciar a partir do topo, ou seja, de cabeça para baixo)
texto.append("\n"); //(indica que a impressão deve inciar a partir do topo, ou seja, de cabeça para baixo)
texto.append("\n"); //(indica que a impressão deve inciar a partir do topo, ou seja, de cabeça para baixo)
String cortar = "" + (char) 27 + "@" + (char) 29 + "V" + (char) 1;
texto.append(cortar);
try {
InputStream prin = new ByteArrayInputStream((texto + "").getBytes());
DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
SimpleDoc documentoTexto = new SimpleDoc(prin, docFlavor, null);
PrintService impressora = PrintServiceLookup.lookupDefaultPrintService();
PrintRequestAttributeSet printAtrributes = new HashPrintRequestAttributeSet();
printAtrributes.add(new JobName("Cupom X", null));
printAtrributes.add(OrientationRequested.PORTRAIT);
printAtrributes.add(MediaSizeName.ISO_A4);
DocPrintJob printJob = impressora.createPrintJob();
try {
printJob.print(documentoTexto, printAtrributes);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não foi possível imprimir");
}
prin.close();
} catch (Exception ioe) {
ioe.printStackTrace();
}
}