JNI e JNA


Fala galera! 
Após um tempo longe (bem longe para falar a verdade lá no congresso nacional), voltei aqui para mostrar-lhes o que na verdade é JNI e JNA e como utiliza-las para conectarmos uma impressora à nossa aplicação java!!! Vamos lá e bons códigos!
Diagrama JNI / JNA
Hoje, vamos ver o quando é fácil fazer um Cupom Fiscal no Java utilizando a camada JNA.
Primeiramente crie um novo projeto.
Agora baixe o driver JNA no site da daruma: http://www.desenvolvedoresdaruma.com.br
O conteúdo da pasta vem zipado, extraia estes arquivos.

Retorne ao Projeto Java, clique com o botão direito em Bibliotecas e em seguida clique em Adicionar JAR/pasta...
Selecione agora o conteúdo da pasta com o driver DarumaFramework.JAR,e clique em OK.
Pronto! Já esta importada a camada JNA DarumaFramework paraseu projeto.


Agora necessitamos importar a camada JNA de maneira quepossamos manipular suas funções através do código do projeto.
Em nosso caso iremos importar o pacote com os métodos uteis para todos osprodutos que é representado pela classe UTIL e os métodos das ImpressorasFiscais contidos na classe ECF.
Conforme abaixo:

Crie uma pequena interface gráfica em um formulário, semelhante ao exemploabaixo:
Agora na prática!


Verificando Porta e a Velocidade da Impressora 
1
2
3
4
5
private void mainPanelPropertyChange(java.beans.PropertyChangeEvent evt) {
        int iRetorno;
        iRetorno= ECF.eBuscarPortaVelocidade();
         
}


Abertura de Cupom Fiscal
1
2
3
4
5
private void cmd_abrirMouseClicked(java.awt.event.MouseEvent evt) {
   int iRetorno;
   iRetorno= ECF.iCFAbrirPadrao();
}
Registro de Item

1
2
3
4
5
6
7
8
9
10
11
private void cmd_venderMouseClicked(java.awt.event.MouseEvent evt) {
       int iRetorno;
       cmd_abrir.setEnabled(false);
       String aliquota, preco, codigo, descricao;
       aliquota= txt_aliquoata.getText();
       preco=txt_preco.getText();
       codigo=txt_cod.getText();
       descricao=txt_desc.getText();
        
       iRetorno= ECF.iCFVenderResumido(aliquota, preco, codigo, descricao);
}
Totalização do Cupom Fiscal
1
2
3
4
5
6
7
8
9
10
11
12
13
private void cmd_totalizarMouseClicked(java.awt.event.MouseEvent evt) {
  
        pnl_venda.setEnabled(false);
        cmd_vender.setEnabled(false);
        int iRetorno= ECF.iCFTotalizarCupomPadrao();
         
             if(iRetorno==1){
                   JOptionPane.showMessageDialog(null, "Cupom Fiscal Totalizado!");
                  }
            else
                   {
     JOptionPane.showMessageDialog(null, "Cupom Fiscal não Totalizado!");
                    }
Efetua Pagamento Padrão (Dinheiro)
1
2
3
4
private void cmd_pgtoMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_totalizar.setEnabled(false);
        int iRetorno= ECF.iCFEfetuarPagamentoPadrao();
 }
Encerramento de Cupom Fiscal
1
2
3
4
private void cmd_finalizaMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_pgto.setEnabled(false);
        int iRetorno= ECF.iCFEncerrarConfigMsg("Volte Sempre!");
    }  


É isso ai galera! Espero que mais uma vez tenha sido útil para vocês e que todos tenham desmitificado esta etapa da programação.
Abraços de seu amigo Bruno Rafael!

Comentários

  1. Boa noite Bruno, estou começando a trabalhar com o DarumaFramework.dll, embora esteja trabalhando com o eclipse, fiz os procedimentos que você indicou incluindo os 3 JARs nas minhas libs. Mas continua dando falha que não pode validar o link com o "DarumaFramework" no JNA, já tentei colocar as DLLs na pasta de src, na pasta do windows, na system32, junto com os jars da Daruma, já tentei renomear a DLL para ter o W minusculo, porque quando baixamos ela vem DarumaFrameWork.dll e nada funcinou. Tem alguma sugestão que possa me ajudar? Onde você colocou essas DLLs? rs O que eu fiz de errado?

    Ou teria como você me enviar a estrutura do teu projeto compilado? não sei se tem algum problema com a versão recente do site?

    Agradeço qualquer ajuda... Abraços

    ResponderExcluir
    Respostas
    1. Olá meu caro Rodrigo, para saber qual o problema que está acontecendo, mande o erro que ele deve estar causando para que eu possa analisa-lo. Aguardo

      Excluir
    2. Verifique este exemplo. Qualquer dúvida estamos à disposição:

      Baixar Exemplo

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

E Esse Tal de Nano Service?

Executar Audio em Java Swing

Validando Email em Java Com e Sem expressão Regular