Bom pessoal. gostaria de agradecer a atenção do Daniel na ajuda prestada a mim nesse problema.
Hoje durante a terde consegui resolver o problema, abaixo segue como cheguei na solução e também o código com os arquivos necessários para download caso alguém precise futuramente, ok?
Vamos lá:
[b]Para o Windows NT, Windows 2000 ou Windows XP proceda como mostra abaixo:
a) Copiar o aquivo BEMAIO.SYS para o diretório WINNT(WINDOWS)\SYSTEM32\DRIVERS.
b) Executar o arquivo BEMAIO.REG, dando um duplo-clique sobre ele. Aparecerá uma mensagem, confirme-a em OK.
c) Copiar o arquivo MP2032.DLL para o diretório WINNT(WINDOWS)\SYSTEM32 ou para o diretório da Aplicação.
d) Reiniciar o computador.[/b]
Reiniciando o computador, sua aplicação java estará pronta para impressão na MP 4000 TH.
Segue código em uso e funcionando:
1. public interface MySharedLibrary extends Library{
2.
3. void ConfiguraTaxaSerial(int i);
4.
5. int IniciaPorta(String PORTA);
6.
7. int BematechTX(String texto);
8.
9. int ConfiguraModeloImpressora(int i);
10.
11. int FormataTX(String texto, int i, int j, int k, int l, int m);
12.
13. int FechaPorta();
14.
15. int PrinterReset();
16.
17. int AjustaLarguraPapel(int i);
18.
19. int HabilitaEsperaImpressao(int i);
20.
21. int Le_Status();
22.
23. int AcionaGuilhotina(int i);
24. }
1. public class RelatorioAtendentes {
2.
3. private StatusImpressora si = new StatusImpressora();
4.
5. public RelatorioAtendentes(){}
6.
7. public int iniciarImpressao() {
8.
9. int i = 0;
10.
11. if(si.verificarStatus() == 1){
12.
13. i = imprimirAtendentes();
14.
15.
16.
17.
18.
19. }
20. else
21. JOptionPane.showMessageDialog(null, "Impressão de Dados das Atendentes cancelada!" , "Erro de Impressão", JOptionPane.ERROR_MESSAGE);
22.
23. return(i);
24.
25. }
26.
27. private int imprimirAtendentes() {
28.
29. char t[] = null;
30. int tam_texto = 0;
31. int i;
32.
33. MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("mp2032", MySharedLibrary.class);
34. lib.ConfiguraModeloImpressora(5);//Bematech MP 4000 TH não-fiscal
35. lib.IniciaPorta("LPT1");
36.
37. lib.BematechTX("\n*************************************");
38. lib.BematechTX("\n--- @LTERNATIVA INFORMÁTICA ----");
39. lib.BematechTX("\n CNPJ: xxxxxxxxxxxx || Tel:1212121212");
40. lib.BematechTX("\n--- End: xxxxxx, Aparecida ----");
41. lib.BematechTX("\n*************************************");
42. lib.BematechTX("\n\nData: " + new Date());
43. lib.BematechTX("\t\tHora: " + new Date().getTime() + "\n");
44.
45. lib.BematechTX("\nProduto: Descrição:");
46.
47. tam_texto = "Roteador".length();
48.
49. if(tam_texto > 8)
50. lib.BematechTX("Roteador");
51. else{
52.
53. tam_texto = 8 - tam_texto;
54.
55. if(tam_texto == 0)
56. tam_texto = 1;
57.
58. t = new char[tam_texto];
59.
60. for(i=0;i<tam_texto;i++)
61. t[i] = ' ';
62.
63. lib.BematechTX("\n" + "Roteador");
64.
65. }
66.
67. tam_texto = "Wireless 150 MBPs".length();
68.
69. if(tam_texto > 30)
70. lib.BematechTX(" " + "Wireless 150 MBPs");
71. else{
72.
73. tam_texto = 30 - tam_texto;
74.
75. if(tam_texto == 0)
76. tam_texto = 1;
77.
78. t = new char[tam_texto];
79.
80. for(i=0;i<tam_texto;i++)
81. t[i] = ' ';
82.
83. lib.BematechTX(" " + "Wireless 150 MBPs");
84. }
85. lib.BematechTX("\n\n\n\n\n\n\n\n\n\n\n");
86.
87.
88. lib.AcionaGuilhotina(1)//0 corta parcialmente, 1 corta o papel completamente
89. lib.FechaPorta();
90.
91. return 0;
92.
93. }
94. }
1. public class StatusImpressora {
2.
3. public StatusImpressora() {
4.
5. }
6. public int verificarStatus() {
7.
8. boolean status = true;
9.
10.
11. MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("mp2032", MySharedLibrary.class);
12.
13. /* PORTA PARALELA
14.
15. + Códigos do Status da Impressora: ON-LINE : 144
16. OFF-LINE : 79
17. Fim de Papel : 40
18. Desligado ou Cabo Desconectado : 0
19.
20. ////////////////////////////////////////////////////////////////////////////////
21.
22. int HabilitaEsperaImpressao(int i)
23. + RETORNO: 1 (um) : OK
24. -2 (menos dois) : Parâmetro Inválido
25.
26. Esta função habilita ou desabilita o envio do caracter ETX (03h),
27. que mantém a impressora ocupada até o término da impressão de todo o
28. texto (string).
29.
30. + Parâmetro do tipo INTEIRO:
31. 0 (zero) : Desabilitado
32. 1 (um) : Habilitado
33. */
34.
35. lib.HabilitaEsperaImpressao(1);
36.
37. ////////////////////////////////////////////////////////////////////////////////
38. lib.ConfiguraModeloImpressora(5);//Bematech MP 4000 TH nao-fiscal
39. lib.IniciaPorta("LPT1");
40.
41. if(lib.Le_Status() == 79){
42.
43. JOptionPane.showMessageDialog(null, "A impressora está OFF-LINE!" , "Status da Impressora", JOptionPane.ERROR_MESSAGE);
44.
45. status = false;
46.
47. }
48. else if(lib.Le_Status() == 40){
49.
50. JOptionPane.showMessageDialog(null, "O PAPEL da impressora está no FIM!" , "Status da Impressora", JOptionPane.ERROR_MESSAGE);
51.
52. status = false;
53.
54. }
55. else if(lib.Le_Status() == 0){
56.
57. JOptionPane.showMessageDialog(null, "A impressora está DESLIGADA ou o cabo está DESCONECTADO!" , "Status da Impressora", JOptionPane.ERROR_MESSAGE);
58.
59. status = false;
60.
61. }
62.
63. lib.FechaPorta();
64.
65. if(status == true)
66. return(1);
67. else
68. return(-1);
69.
70. }
71.
72. }
Com essas classes agora vc faz qualquer coisa, quem deseja imprimir logo do estabelecimento, pode usar o método: ImprimeBitmap(“C:\IMAGENS\CARRO.BMP”, 0) ;
Bom espero ter ajudo, segue abaixo para download arquivos para instalação dos drivers e DLL no System32.[b]