Para quem não conhece, o Projeto ACBr é a maior comunidade Open Source para Automação Comercial do Brasil.
Muitas pessoas pensam (erroneamente) que o Projeto ACBr é destinado somente aos desenvolvedores Lazarus ou Delphi, mais isso não é verdade, a partir de alguns anos atrás foram lançadas bibliotecas para ser utilizadas em diversas linguagens de programação e compativeis com Windows e Linux.
Afinal, para que serve a biblioteca ACBrPosPrinter:
A ACBrLibPosPrinter permite que desenvolvedores das mais variadas linguagens de programação tenham acesso aos benefícios da impressão em Esc/Pos em uma vasta quantidade de modelos de Impressora Térmicas utilizadas no Brasil e no mundo. Com ela você consegue fazer o envio de comandos em Esc/Pos direto para a porta da Impressora. A ACBrLibPosPrinter é excelente para criação de relatórios complexos em impressoras de bobina. Você consegue executar tarefas como Impressão de QRCode, Cod.Barras, alinhamento, Expandido, Negrito, Invertido, etc… Mesmo que a impressora suporte apenas um subconjunto da linguagem ESC/POS, você ainda vai conseguir utilizar essa lib.
Permite comunicação direta com impressoras conectadas em portas COM, LPT, ETH (TCP/IP), USB e mapeadas na rede como \\localhost\minhaImpressora.
Exemplo de um código Java:
<Implementação para usar DLL
int POS_Imprimir(String aString, boolean pulaLinha, boolean decodificarTags, boolean codificarPagina, int copias);
public void imprimir(String aString, boolean pulaLinha, boolean decodificarTags, boolean codificarPagina, int copias) throws Exception {
int ret = PosPrinterLib.INSTANCE.POS_Imprimir(toUTF8(aString), pulaLinha, decodificarTags, codificarPagina, copias);
checkResult(ret);
}
Exemplo de um código com C#:
Implementação para usar DLL
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int POS_Imprimir(string aString, bool pulaLinha, bool decodificarTags, bool codificarPagina, int copias);
public void Imprimir(string aString = "", bool pulaLinha = false, bool decodificarTags = true, bool codificarPagina = true, int copias = 1)
{
var method = GetMethod<POS_Imprimir>();
var ret = ExecuteMethod(() => method(ToUTF8(aString), pulaLinha, decodificarTags, codificarPagina, copias));
CheckResult(ret);
}
Mão na massa !
Hoje vou mostrar como você pode utilizar o próprio exemplo da biblioteca ACBrLibPosPrinter com a linguagem de programação C# (CSharp).