Boa tarde, a todos!
Bem, gostaria de uma ajuda sobre impressão na MP-2800TH referente a acentuação , pesquisei aqui e vi que essa impressora usa o ESC/POS da Epson, sendo assim usei os comandos referentes ao manual do link no tópico aqui do Daniel http://svn.code.sf.net/p/acbr/code/tools/PosPrinter/Bematech/ , mesmo assim não obtive sucesso na impressão com os acentos , sempre saem embaralhados e etc.
Ah, estou tentando envia via Java os dados para impressora referente a um PDV em JavaSwing que construi..
Segue o código;
public class printTest {
private static char GS = (char) 29;
private static char ESC = (char) 27;
public static void main(String[] args) {
String cupon = "teste impressão de cupon, acentuação página \n\r \n\r ";
try {
ImpressaoController.imprimir(cupon + comando());
} catch (IOException e) {
e.printStackTrace();
}
}
private static String comando() {
//Inicialização da impressora
String COMMAND = ESC + "@";
/**
* Select character font.
* n Function
* 0, 48 Character font C (14 x 24) selected.
* 1, 49 Character font D (10.5 x 24) selected
*
* **/
COMMAND += ESC + "M"+ (char) 1;
/*
* Select an international character
* 0 - U.S.A. (Codepage 437)
* 1 - 11 International (Codepage 858)
* 12 - Latin America (Codepage 850
*/
COMMAND += ESC + "R"+ (char) 0;
/**
* // Select justification:
* n Justification
* 0, 48 Left justification.
* 1, 49 Centering.
* 2, 50 Right justification
* */
COMMAND += ESC + "a"+ (char) 0;
/***
* n Connector pin
* 0 PC437 [U.S.A. and Standard Europe]
* 2 PC850 [Multilingual]
* 3 PC860 [Portuguese]
* 17 PC866 [Cyrillic]
* 19 PC858 [Multilingual with Euro symbol]
* 22 PC864 [Arabic
* */
COMMAND += ESC + "t"+ (char) 2;
//Corte parcial
COMMAND += GS + "V" + (char) 66 + (char) 0;
return COMMAND;
}
}
// Manda informaÇÃo para impressora
public static void imprimir(String saidaCupon) throws IOException {
InputStream prin = null;
DocFlavor docFlavor = null;
SimpleDoc documentoTexto = null;
PrintService impressora = null;
PrintRequestAttributeSet printAttributes = null;
DocPrintJob printJob = null;
try {
//prin = new ByteArrayInputStream(saidaCupon.getBytes("ISO8859-1")); //já tentei e não imprime nada
//prin = new ByteArrayInputStream(saidaCupon.getBytes("UTF-8")); //já tentei e não imprime os acentos
prin = new ByteArrayInputStream(saidaCupon.getBytes());
docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
documentoTexto = new SimpleDoc(prin, docFlavor, null);
impressora = PrintServiceLookup.lookupDefaultPrintService();
// pega a imprssora padrão
printAttributes = new HashPrintRequestAttributeSet();
printAttributes.add(new JobName("Impressao", Locale.getDefault()));
printAttributes.add(OrientationRequested.PORTRAIT);
printAttributes.add(MediaSizeName.ISO_A4);
printJob = impressora.createPrintJob();
try {
// tenta imprimir
printJob.print(documentoTexto, (PrintRequestAttributeSet) printAttributes);
} catch (Exception e) {
// System.out.println("Exception imprimir() 1 " + e);
loggerError.error("imprimir(): " + Util.class.getName() + " Exception: " + e);
JOptionPane.showMessageDialog(null, "Não foi possível realizar a impressão!! " + e, "ERROR",
JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
// System.out.println("Exception imprimir() 2 " + e);
loggerError.error("imprimir(): " + Util.class.getName() + " Exception: " + e);
JOptionPane.showMessageDialog(null, "Não foi possÓvel realizar a impressÓo!! " + e, "ERROR",
JOptionPane.ERROR_MESSAGE);
} finally {
prin.close();
printAttributes.clear();
}
}
Desde já agradeço a ajuda!