Ir ao conteúdo
  • Cadastre-se

Codigo asc impressora nao fiscal


Ir à solução Resolvido por ReiMaromba,

Posts recomendados

Bom dia , estou a dias me batendo para implementar codigo ASCII em minha impressora nao fiscal da marca SWEDA , modelo SI-150.
 

 private void impressaoLocal(String porta) throws IOException {
        FileOutputStream outputFile = null;

        try {
            outputFile = new FileOutputStream(porta);
            try (PrintStream ps = new PrintStream(outputFile)) {
                ps.println("=============================================");

                chamaParametros();
                if (Cab(C1) == null) {
                    ps.println(Cab(C1));
                } else {
                    ps.println(Cab(C1));
                    ps.println(Cab(C2));
                }

                ps.println("=============================================");
                ps.println("**********  NAO E DOCUMENTO FISCAL **********");
                ps.println("=============================================");
                ps.print(String.format(String.format("%-28s", formatoDataImp.format(data))));
                ps.println(String.format(String.format("%15s", lbHora.getText())));
                

                ps.println("=============================================");
                ps.println("DESCRICAO           QTDE    VALOR.UN    VALOR");
                //Laço percorre a tabela com os itens
                for (int x = 0; x < jTable1.getRowCount(); x++) {

                    ps.print(String.format("%-2s", jTable1.getModel().getValueAt(x, 1)));// o parametro '-' indica alinhamento a esquerda
                    ps.print(String.format("%6s", jTable1.getModel().getValueAt(x, 2)));
                    ps.print(String.format("%12s", jTable1.getModel().getValueAt(x, 3)).replace(".", ",")); // o parametro %18s indiaca alinhamento a direita
                    ps.print(String.format("%10s", jTable1.getModel().getValueAt(x, 4)));
                    ps.println();

                }
               
                ps.println("=============================================");
                ps.println(String.format("VALOR TOTAL DA COMPRA %23s", total_itens()));
                ps.println(String.format("Emitido por %33s", lbNome_User.getText()));
                ps.println("=============================================");

                if (Cab(R2) == null) {
                    ps.println(Rod(R1));
                } else {
                    ps.println(Rod(R1));
                    ps.println(Rod(R2));
                }

                //ps.println("=============================================" + (char) 17);
                ps.flush();
            }
            outputFile.close();
        } catch (FileNotFoundException ex) {
            JOptionPane.showMessageDialog(null, ex);
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, ex);
        } finally {
            outputFile.close();
        }

    }

Eu gostaria que uma boa alma me mande uma luz , eu estou usando ela em USB , o Driver dela emula uma porta serial ,  preciso alinhar esse cupom e imprimir algumas partes em negrito .

Link para o comentário
Compartilhar em outros sites

  • Solução

-- PROBLEMA SOLUCIONADO --

irei demonstrar um pouco de meu código , explicando como configurei meu cupom não fiscal
utilizando JAVA / SWEDA SI-150 USB .

- MANUL DE PROGRAMAÇÃO ESC/POS : Nesse link você vai encontrar todos os códigos em ESC/POS para esse modelo de impressora , particularmente eu usei o comando do tipo

DECIMAL.

APLICANDO NEGRITO:
 

ps.println("============================================="+(char)27 +(char) 69 + (char) 1);
ps.println("**********  NAO E DOCUMENTO FISCAL **********"+(char)27 +(char) 69 + (char) 0);
ps.println("=============================================");

nesse exemplo somente a linha com o texto "NAO E DOCUMENTO FISCAL" será afetada.
repare que no final da primeira linha eu aciono o comando negrito com o (char) 1 e desativo logo em baixo com o (char) 0 , assim como explicado no manual.



 

ALINHANDO CUPOM:
 

ps.print(String.format("%-20s", jTable1.getModel().getValueAt(x, 1)));
ps.print(String.format("%2s", jTable1.getModel().getValueAt(x, 2)));
ps.print(String.format("%12s", jTable1.getModel().getValueAt(x, 3)).replace(".", ",")); 
ps.print(String.format("%12s", jTable1.getModel().getValueAt(x, 4)));
ps.println();

cada linha coleta um valor da tabela , e defino quantos caracteres quer disponibilizar para cada informação de cada dado da tabela coletado, no caso da minha linha 1 que é a descrição do produto , eu defini 20 caracteres, e o sinal de "-" fica responsável de alinhar minha descrição para esquerda. Na segunda linha seria minha quantidade , aonde decidir disponibilizar 2 caracteres , percebam que esta sem o "-" então ele será alinhado para direita. 

EXEMPLO:

ps.print(String.format("%-20s", 'Felipe') );  /// Resultado sera = "Felipe              "
ps.print(String.format("%20s", 'Felipe') );  /// Resultado sera = "               Felipe"


espero que ajude mais pessoas :wiggle:

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...