Erro de retorno 0 na classe de manipulação da bematech MP 4000 TH [RESOLVIDO]

Tranquilo maninho, qlq coisa estamos ae…

Na verdade, eu consegui imprimir no windows xp… no windows 7 coloquei essa mp2032 e mesmo assim lança excessão:

Unable to load library ‘mp2032’:

Bom dia wilsontads, nesse mesmo tópico em alguns posts atrás já respondi o porq dessa exception no Seven, mas só pra adintar, o caminho no seven é diferente, ok?
Flw!

Certo, só aproveitando o tópico… como formato pra imprimir em negrito?

No download, além dos códigos e alguns arquivos, provavelmente foi o documento da biblioteca .dll, um doc tipo javadoc, meio web, nele explica os comandos para formatação, estou sem aqui agora, estou no trampo, mas da uma olhadinha, ok?
Qlqr coisa no site da bematech tem o download completo, mas baixe exatamente a versão do driver para o sistema, impressora e dll, senão não adianta.
Flw, att.

jether eu vi o código que voce colocou anteriormente, vlw mesmo. Mas oque eu preciso instanciar para o código rodar? nao tem a main e a main vai chamar oque?

[quote=wilsontads]quando USB, o que passo na porta, onde está LPT1?[/quote] Ae cara voce conseguiu acessar a porta USB?

Bom dia : denisspitfire :, desculpe pela demora, mas vamos lá, o código que postei foi a solução encontrada para fazer a MP 4000 TH(não fiscal) funcionar em meu sistema de controle de estoque e vendas, ela era USB e Serial, mas usei como serial msm, o método main apenas chamava a inicialização do meu sistema e quando usava a funcionalidade de Vendas, após finalizar a venda, eu instacio um objeto da classe manipuladora da impressora, passo os paramentros e já era, no seu caso, crie um MAIN apenas para testa-la, instancie um objeto e mande ver…sobre o USB, no site da Bematech tem um drive que virtualiza a USB e vc faz uso normal, mas como eu tinha as duas opções, obtei pela serial msm.
Qlq coisa estamos ae, att.
Bom feriado.

mas eu vou instanciar qual tipo de objeto?

Bom dia denisspitfire, seguinte, vc vai ter essa interface(Está no .rar para download):

public interface MySharedLibrary extends Library{    
     
         void ConfiguraTaxaSerial(int i);    
     
         int IniciaPorta(String PORTA);    
     
         int BematechTX(String texto);    
     
         int ConfiguraModeloImpressora(int i);    
     
         int FormataTX(String texto, int i, int j, int k, int l, int m);    
     
         int FechaPorta();    
     
         int PrinterReset();    
     
         int AjustaLarguraPapel(int i);    
     
         int HabilitaEsperaImpressao(int i);    
		 
         int Le_Status();    
          
         int AcionaGuilhotina(int i);  
}

Essa interface extend a Library que tem a responsabilidade de carregar DLLs. Sendo assim, dentro de seu aplicativo vc instancia um objeto da interface assim:

MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("mp2032", MySharedLibrary.class);

Depois disso usa o obj “lib” para invocar os métodos da interface passando os parametros suportado pela DLL.
Ex:

lib.ConfiguraModeloImpressora(5);//Bematech MP 4000 TH não-fiscal       
lib.IniciaPorta("LPT1");

Maninho, espero ter ajudado, qlq coisa pode postar.
Att.
:smiley:

Vlw pelo help cara, voce tem me ajudado mto. Mas nao estou conseguindo uma coisa.
Eu posso fazer desta maneira?

import com.sun.jna.Native;

public class bematech {
	public static void main(String[] args) {
		MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("mp2032", MySharedLibrary.class);
		lib.ConfiguraModeloImpressora(5);//Bematech MP 4000 TH não-fiscal         
		lib.IniciaPorta("LPT1");
		
	}
}

esta ocorrendo esse erro

Erro: Não foi possível localizar nem carregar a classe principal bematech

Achei estranho meu painel das classes.
Segue em anexo.
Parece que esta dando erro nos zips


Fala blz?
Seguinte, não está reconhecendo sua classe MAIN, não e nem problema com a classe da impressora.
Mas tenta assim:
Cria uma classe:

    import com.sun.jna.Native;        
    public class bematech {  
        public bematech(){}
        public void iniciarImpressora()
       {
             MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("mp2032", MySharedLibrary.class);  
             lib.ConfiguraModeloImpressora(5);//Bematech MP 4000 TH não-fiscal           
             lib.IniciaPorta("LPT1");                
        }  
    }  

Uma MAIN:

public class MAIN{
   public static void main(String args[])
  {
        bematech b = new bematech();
        b.iniciarImpressora();
   } 
}

Testa e se ainda ocorrer erro, marque o método iniciarImpessora() com breakpoint e faça debug e rastreia via debug até onde o código vai, outra coisa, procure criar classe com os nomes seguindo a convenção JAVA, ex: bematech fica Bematech, ok?
Att.

Então, os erros que aparecem na figura são de arquivos que na verdade não é pra estar ae no classpath do projeto.
Tipo, a dll tem que estar no system32, o bemaio.sys tem q ser executado para gravar o registro, etc. como segue o já explicado lá na primeira página, dentro do projeto em buildpath apenas coloque os .JAR, ok?
Testa ae e se ainda continuar a dar erro envia seu projeto para eu ver na hora do almoço e ver como está o buildpath.
Att.

blz farei as alterações. ja confirmo

Aeee estamos quase lá! estou usando no windows 7 portanto… mesmo erro do pessoal

Exception in thread “main” java.lang.UnsatisfiedLinkError: Unable to load library ‘mp2032’: Não foi possível encontrar o módulo especificado.

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:368)
at com.sun.jna.Native.loadLibrary(Native.java:353)
at Bematech.main(Bematech.java:6)

Logo… tentei achar o bematech.exe, voce conseguiu onde? no site? la só tem driver nao tem nenhum exe. veio em algum cd?

Agora sim, chegamos a um problema comum, ou seja, se estivesse no Win XP sua impressora já estaria imprimindo, mas é problema de LoadLibray no Seven, segue links para te ajudar, qlq coisa vc pode entrar em contato com o suporte da Bematech tbm, eles respondem rápido.

http://www.bematech.com.br/equipamento-produto-impressoras-mp-4200+th-downloads.html#conteudo


http://www.bematech.com/en/support/default.asp


http://www.soriodev.com/blog.asp?article=6

Obs. Tome cuidado com as versões de DLL´s, é um problema isso para nós desenvolvedores.

instalei o driver de spooler65bits, bemasetup_mp4k e nada
é na hora da instalação que eu altero ou simplesmente instalo? pois nao tem onde alterar o caminho O.o

Olá, Pessoal!
Não sei se já viram esse portal.
Mas, tem um site novo ai na área que é bem interessante.
Tem muitos vídeos de JAVA
http://aprendacomigo.com.br/videos/category/java/82