Acentos em impressora não fiscal Elgin i9

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();
        }

    }