BEMATECHPRINTERS.DLL METODOS, FUN?ÕES ETC.....

FOXMAN 13/05/2017 14:58:44
#473926
Alguém conseguiu adicionar essa dll nos projetos..... ???
Pesquisei na net a pelo menos 2 dias, e sem nenhum resultado referente a utilização e exemplo de uso dessa dll.
Se alguém tiver exemplo de chamadas para esta dll eu agradeceria.

Ou se alguém tiver algum exemplo de verificação do status da gaveta utilizando MP4200 TH via USB...... também serve.

Estou com um EXE feito em delphi que faz esta verificação utilizando a BematechPrinters.dll, mas não consegui expor os metodos e funções....
LEANDROVIP 13/05/2017 16:16:07
#473928
Opa boa tarde!

Utilize a DLL MP2032, provavelmente tem os mesmo efeitos da BematechPrinters.

Segue anexo do exemplo em C#

Edit: Pode baixar a DLL direto do site da Bematech

[]'s
FOXMAN 13/05/2017 16:41:51
#473929
Leandro, obrigado pelo retorno. Mas pela MP2032.dll Eu já utilizava, quero a extração dos métodos da dll que citei para ver os parametros corretos para chamdas de funções através de comandos esc/pos.

A dificuldade está sendo obter os retornos da impressora sem utilizar as DLLs.

Tenho os codigos fontes da BEMATECH.DLL, BEMATECH.MINIIMPRESSORA.DLL , porém quero fazer uma integração e criar uma única dll de comunicação com bematech.

Exemplo que tenho :

namespace SatFiscal.MiniImpressoras
{
using SatFiscal;
using SatFiscal.Comunicacao;
using System;
using System.Threading;

internal class PortaNaoFiscalUSB : PortaUSB, IComunicacaoNaoFiscal
{
private byte[] SENSOR_GAVETA_OFF;
private byte[] SENSOR_GAVETA_ON = new byte[] { 0x1b, 0x62, 1 };
private byte[] singleByteBuffer;

public PortaNaoFiscalUSB()
{
byte[] buffer = new byte[3];
buffer[0] = 0x1b;
buffer[1] = 0x62;
this.SENSOR_GAVETA_OFF = buffer;
this.singleByteBuffer = new byte[1];
}

public void AutenticarDocumento(byte[] buffer, int timeout)
{
}

bool IComunicacaoNaoFiscal.get_IsOpen()
{
return base.IsOpen;
}

public void Close()
{
if (!base.Close())
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]Erro ao fechar a porta de comunica\x00e7\x00e3o[Ô]);
}
}

public byte GetStatus()
{
if (!base.IsOpen)
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]A porta de comunica\x00e7\x00e3o n\x00e3o foi aberta[Ô]);
}
return (byte) base.GetStatus();
}

public byte GetStatusGaveta()
{
if (!base.IsOpen)
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]A porta de comunica\x00e7\x00e3o n\x00e3o foi aberta[Ô]);
}
this.Write(this.SENSOR_GAVETA_ON);
Thread.Sleep(50);
int status = base.GetStatus();
this.Write(this.SENSOR_GAVETA_OFF);
Thread.Sleep(50);
return (byte) status;
}

public void Open(string nomePorta)
{
if (!base.Open())
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]Erro na abertura da porta de comunica\x00e7\x00e3o[Ô]);
}
}

public void Purge()
{
base.Purge();
}

public byte ReadByte()
{
byte num;
int numeroBytesLidos = 0;
if (!base.Read(out num, out numeroBytesLidos) || (numeroBytesLidos != 1))
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]Erro de leitura na porta de comunica\x00e7\x00e3o[Ô]);
}
return num;
}

public void Write(byte[] buffer)
{
if (!base.Write(buffer))
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]Erro de escrita na porta de comunica\x00e7\x00e3o[Ô]);
}
}

public void WriteByte(byte buffer)
{
byte[] buffer2 = new byte[] { buffer };
if (!base.Write(buffer2))
{
throw new MiniImpressoraException(SatFiscalException.OrigemException.Comunicacao, SatFiscalException.CodigoErro.ErroComunicacao, [Ô]Erro de escrita na porta de comunica\x00e7\x00e3o[Ô]);
}
}
}
}


Faço a comunicação normal pela serial e até mesmo com USB, mas preciso retornar algumas informações diretamente da impressora, sem utilizar dll de terceiros.
ELUCIMAR 13/05/2017 22:59:37
#473932
Resposta escolhida
Boa Noite FOXMAN!

Tenho uma classe que imprime Danfe NFC-e através dos comandos EscPos usando a impressora Bematech MP 4200 TH. Nela faço verificação do Status impressora e em alguns casos a gaveta. Montei um pequeno exemplo referente a classe que uso.
FOXMAN 14/05/2017 16:38:44
#473938
Citação:

:
Boa Noite FOXMAN!

Tenho uma classe que imprime Danfe NFC-e através dos comandos EscPos usando a impressora Bematech MP 4200 TH. Nela faço verificação do Status impressora e em alguns casos a gaveta. Montei um pequeno exemplo referente a classe que uso.



Elucimar, ótimo exemplo, vou adaptá-lo para utilização com a porta USB.
Por enquanto , obrigao.
Tópico encerrado , respostas não são mais permitidas