Integração com impressora fiscal Bematech BemaFI32

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