Re:Bematech - Driver para Impressora Fiscal compatível com Java

[quote=matheuslmota][quote=JavaDreams]Tenho vontade de fazer sistemas para trabalhar junto com a Bematech mas tenho o seguinte problema:

Não tenho uma bematech.

Aqui na empresa já vi que alguns clientes nossos usam essa impressora mas eu não sei mexer com ela.

Assim eu teria que comprar uma bematech só para estudar?

Ou será que tem algum simulador dela virtual?[/quote]
http://partners.bematech.com.br/2013/02/edicao-138-novo-emulador-da-mp-4200-th-fi/[/quote]

muito obrigado matheus, era exatamente isso que eu estava procurando.
Vai ajudar demais.

Valeu!!!

Vejam só o que a Bematech está lançando, em primeira mão…

Prezado parceiro,

Já está disponível em nosso site a versão 5.0.0.0 de nossa BemaFI32.dll, compatível com JAVA.

Isso mesmo! A BemaFI32.dll também é 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 BemaFI32.dll para que seja possível acessá-la através de métodos nativos do Java, utilizando JNI (Java Native Interface).

O JNI permite que um programa escrito em Java possa utilizar bibliotecas escritas em C/C++, assemblies ou outras linguagens de programação.

Criamos uma classe chamada “Bematech.java”, onde disponibilizamos a declaração das funções da BemaFI32.dll. Esta classe está pronta e você poderá adicioná-la ao seu projeto, facilitando e auxiliando no desenvolvimento.

  • Exemplo do conteúdo da classe Bematech.Java:
class Bematech
{
   // Funções de Cupom Fiscal
   public static native int AbreCupom( String CPF_CGC );

   public static native int VendeItem( String cCodigo, String
   cDescricao, String cAliquota, String cTipoQuantidade, String
   cQuantidade, int iCasasDecimais, String cUnitario, String
   cTipoDesconto, String cDesconto );

   public static native int IniciaFechamentoCupom( String
   cAcrescimoDesconto,String cTipoAcrescimoDesconto, String 
   cValorAcrescimoDesconto );

   public static native int EfetuaFormaPagamento( String 
   formaPagamento, String valorFormaPagamento ); 

   public static native int TerminaFechamentoCupom( String 
    cMensagem );

   // Funções de Relatório Fiscal 
   public static native int LeituraX();

   // Funções de Retorno de Informações
   public static native int NumeroCupom(BemaString numeroCupom); 
   .
   .
   .

   static
   {
      System.loadLibrary ("BemaFI32");
   } 
}

Importante: Para poder utilizá-la, é necessário possuir instalado o J2SDK versão 1.4 ou superior e, alem disso, as variáveis de ambiente path, classpath e java_home configuradas corretamente.

Existem mais duas classes que disponibilizamos na Bematech.Java, que são utilizadas para definir as variáveis que serão usadas como referência no retorno de informações da impressora. São elas:

class BemaInteger
{
   public int number;
}

class BemaString
{
   public String buffer;
}

A classe BemaInteger define o tipo de variável que será utilizada para armazenar um valor inteiro e a classe BemaString define o tipo de variável que será utilizada para armazenar uma string de caracteres (ambas retornadas pela impressora).

  • Exemplo de uma função que retorna informação da impressora:

Bematech.NumeroCupom( BemaString COO )

Importante: Os nomes dos atributos (buffer e number) são reservados e não podem ser modificados.

  • Exemplo de um pequeno código utlizando a classe Bematech.Java:
class ECFBematech
{
   public static void main(String[] args)
   {
      int iRetorno;
      BemaInteger ACK, ST1, ST2, ST3;
      ACK = new BemaInteger();
      ST1 = new BemaInteger();
      ST2 = new BemaInteger();

      // Emitindo uma Leitura X
      iRetorno = Bematech.LeituraX();
      System.out.print("Retorno: " + iRetorno);

      // Pegando o retorno da impressora MFD 
      iRetorno = Bematech.RetornoImpressora(ACK,ST1,ST2);
      String retorno = "ACK: " + ACK.number
      retorno += "\nST1: " + ST1.number
      retorno += "\nST2: " + ST2.number
      retorno += "\nST3: " + ST3.number;
      System.out.print("O retorno da impressora é:\n" + retorno);
   }
}

Clique aqui e baixe agora mesmo o pacote da BemaFI32.dll com a classe Bematech.Java e o arquivo de ajuda com a declaração e todo o descritivo desta mais nova implementação da Bematech!

Opa… abaixo o link:

http://www.bematech.com.br/suporte/downloads/fisc_win/BemaFI32.zip