Oi pessoal, estou fazendo a integração do aplicativo caixa (Java) com a impressora fiscal Bematech através da dll BemaFI32.
Só quando solicito uma leitura X, a aplicação trava tendo que forçar o fechamento da mesma e depois a impessora imprime.
Alguem tem alguma sugestão para resolver ?
Obrigado,
José Eduardo.
Verifique no código c vc nao esta esquecendo de fechar o Stream para a impressora, se nao fechar o stream ela nao inicia a impressao, porem quando vc interronte a aplicaçãi ela inicia pq o strem foi fechado
poste o código pra ajudarmos.
Desde já obrigado, desculpe a ignorância, mas como faço para fechar o Stream para a impressora ?
Abraços.
Poste o código pra gente ver.
Segue o código:
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(); <----- Aqui trava
System.out.print("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.print("Retorno Impressora MFD: \n" + retorno);
}
blz
Novo código, funcionou mas travou:
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”);
iRetorno = Bematech.AbrePortaSerial();
// Emitindo uma Leitura X
iRetorno = Bematech.LeituraX();
iRetorno = Bematech.FechaPortaSerial();
System.out.print("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.print("Retorno Impressora MFD: \n" + retorno);
}
}
vlw
Testa esse retorno estendido pra ver.
Outra coisa, seu SO é 32 ou 64 bits, parece que tem uma api pra cada so. verifica isso tb, seu jdk + api + so;
fallow