Linguagem de Programação JAVA

Bematech

Linguagem de Programação JAVA

 

Com o objetivo de integrar as impressoras fiscais Bematech com aplicações de automação comercial, desenvolvidas na linguagem de programação Java, compatibilizamos nossa dll BemaFI32

 

O JNI permite que um código escrito em Java utilize a implementação de uma biblioteca escrita em C/C++, assembly ou outras linguagens de programação. Além disso, ele serve para interagir entre programas Java e outros programas escritos em linguagens diferentes. A figura abaixo demonstra isso:

 

Java

 

Existe um pacote chamado Bematech.jar, o qual contém todas as classes utilizadas para realizar as operações com as impressoras fiscais. Mas, para poder utilizá-lo, é necessário possuir instalado o  ou superior e, alem disso, as variáveis de ambiente path, classpath e java_home configuradas corretamente.

 

· Configurando as variáveis path, classpath e java_home

 

Para configurar as variáveis, proceda da seguinte forma:

 

1) Clique com o botão direito em "Meu Computador" e escolha "Propriedades";

2) Clique na aba "Avançado" e no botão "Variáveis de Ambiente";

3) Nas variáveis de usuário, procure a variável chamada path, se não existir crie-a, definindo path como seu nome e o diretório onde estão os arquivos binários do java, por exemplo:

 

Nome da variável: path

Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05\bin

 

4) Procure a variável JAVA_HOME. Caso ela não exista, crie-a, atribuindo-lhe como valor o local onde o JRE está instalado, por exemplo:

 

Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05

 

5) A variável CLASSPATH deve ser configurada com o seguinte valor:

 

Valor da variável: .;JAVA_HOME

 

· Entendendo os métodos da classe Bematech

 

A utilização dos métodos nativos que acessam as funções da BemaFI32.dll é feita da seguinte forma:

 

1) Adicionar no projeto Java o arquivo Bematech.jar, do pacote da BemaFI32.dll disponível no site.

2) Adicionar a seguinte linha de código à classe do projeto:

 

import bemajava.*;

 

Observação:

  • No pacote Bematech.jar existem duas classes para tratamento de retornos da impressora. Uma para tratar os retornos tipo Integer e outra para String. Estas classes são:

  • BemaInteger

  • BemaString

  • A classe BemaInteger armazena um valor inteiro e a classe BemaString armazena uma string de caracteres. Elas servem para ser passadas como parâmetro nos métodos que retornam informações da impressora, por exemplo o método Bematech.NumeroCupom:

(...)

BemaString numerocupom;

numerocupom = new BemaString();

 

Bematech.NumeroCupom( numerocupom );

System.out.println( "Número do Cupom: " + numerocupom.getBuffer() );

(...)

  • Os nomes dos atributos (buffer e number) não podem ser modificados.

Exemplo:

 

import bemajava.*;

class TesteBematech

{

  public static void main(String[] args)

  {

     int iRetorno;

     BemaInteger ACK, ST1, ST2, ST3;

     ACK = new BemaInteger();

     ST1 = new BemaInteger();

     ST2 = new BemaInteger();

     ST3 = new BemaInteger();

         

     // Habilitando o retorno estendido da impressora MFD

     iRetorno = Bematech.HabilitaDesabilitaRetornoEstendidoMFD( "1" );

 

     // Emitindo uma Leitura X

     iRetorno = Bematech.LeituraX();

     System.out.println( "Retorno: " + iRetorno );

 

     // Pegando o retorno da impressora MFD

     iRetorno = Bematech.RetornoImpressoraMFD( ACK, ST1, ST2, ST3 );

     String retorno = "ACK: " + ACK.number

     retorno += "\nST1: " + ST1.number

     retorno += "\nST2: " + ST2.number

     retorno += "\nST3: " + ST3.number;

     System.out.println( "Retorno Impressora MFD: \n" + retorno );

  }

}