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!