Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
ReiMaromba

RESOLVIDO Codigo asc impressora nao fiscal

Recommended Posts

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 .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você sabe o código ascii, já experimentou algo assim:

char a = 65;
System.out.println(a);
//Apresenta 'A'

Realmente não sei se o PrintStream aceita esse tipo de abordagem, mas em teoria funciona

Editado por psykotico

Compartilhar este post


Link para o post
Compartilhar em outros sites

-- 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:

Editado por ReiMaromba
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×