Edición 10 - Utilizando el MP2032.dll con las mini-impresoras no fiscales térmicas y matriciales
En la edición anterior, aprendimos a configurar el driver de spooler Bematech para utilización con las Mini-impresoras térmicas no fiscales e impresoras de kiosco. En este Flash Tip aprenderemos a utilizar el DLL MP2032 para integración con su software desarrollado en la plataforma Windows con las impresoras Bematech matriciales y térmicas no fiscales.
Para descargar el paquete del DLL MP2032, haga click aquí. El paquete contiene además del DLL, los archivos necesarios para la comunicación serial/paralela en los Sistemas Operativos Windows NT, 2000 y XP™ y driver para puerto USB.
Si su Sistema Operativo es el Windows 95/98/ME™, trabajaremos solamente con el archivo MP2032.dll. Si su Sistema Operativo es Windows NT/2000/XP™, antes de trabajar con el DLL debemos hacer lo siguiente:
1) Copie el archivo BemaIO.sys en el directorio SYSTEM32/DRIVERS
2) Ejecute el archivo BemaIO.reg
Hecho esto, estamos listos para trabajar con el DLL. El ejemplo que vamos a desarrollar, haremos la configuración inicial, el envío de un texto formateado y algunos otros comandos a la impresora. Antes de trabajar con las funciones, debemos hacer la declaración en la herramienta de desarrollo. Las declaraciones de las funciones principales se encuentran en el manual del DLL.
Hecho las declaraciones, estamos listos para utilizar las funciones. Desarrollaremos nuestro ejemplo en Delphi.
Para comenzar, vamos a crear una variable para recibir los retornos de la impresora y se pueda tratarlos posteriormente. Llamaremos nuestra variable de 'iRetorno' y la declaramos como una variable de tipo entera.
1) El primer paso para comenzar nuestro programa es configurar el baudrate del puerto serial. Para eso vamos a utilizar la función ConfiguraTaxaSerial().
2) Después de configurar el baudrate y antes de enviar el comando para la apertura del puerto, se puede configurar el modelo de la impresora a través de la función ConfiguraModeloImpressora(). La configuración es necesaria para que la impresora MP-20 pueda imprimir texto con acentuación, todavía para otros modelos es opcional.
3) Hecho la configuración del baudrate y modelo de impresora, se puede llamar la función IniciarPorta() que hará la apertura del puerto serial.
procedure TForm1.FormCreate(Sender: TObject);
begin
ConfiguraTaxaSerial(StrtoInt(ComboBox2.Text)); //Combo con las tasas de baudrate
ConfiguraModeloImpressora(1);
iRetorno:=IniciaPorta(ComboBox1.Text); //Combo con los nombres de los puertos
if iRetorno < 1 then
Application.MessageBox('Problemas al abrir puerto de comunicación!', 'Error', MB_ICONERROR + MB_OK);
end;
4) Inicializado el puerto, estamos listos para enviar comandos para la impresora. Para envío de texto a la impresora se puede utilizar el comando FormataTX para enviar texto formateado y el BematechTX para enviar texto sin formateo.
Con el comando FormataTX es posible formatear el tipo de fuente, imprimir texto subrayado, en negrita, itálico o expandido.
procedure TForm1.Button1Click(Sender: TObject);
var
negrita, italico, subrayado, expandido, tipo : shortint;
texto: string;
begin
negrita:=0; //Utilizamos 0 para desactivar y 1 para activar
italico:=0;
subrayado:=0;
expandido:=0;
tipo:=0;
if (checkbox1.Checked = true) then //Negrita
negrita:=1;
if (checkbox2.Checked = true) then //Italico
italico:=1;
if (checkbox3.Checked = true) then //Subrayado
subrayado:=1;
if (checkbox4.Checked = true) then //Expandido
expandido:=1;
if (RadioButton1.Checked = true) then //Comprimida
tipo:=1;
if (RadioButton2.Checked = true) then //Normal
tipo:=2;
if (RadioButton3.Checked = true) then //Expandido
tipo:=3;
texto:=Memo1.Text+Chr(13)+Chr(10);
iRetorno:=FormataTX(texto, tipo, italico, subrayado, expandido, negrita);
if iRetorno < 1 then
Application.MessageBox('Error de comunicación!', 'Error', MB_ICONERROR + MB_OK);
end;
Obs.: También es posible que se envíe texto en líneas a la impresora utilizando el comando BematechTX, todavía este comando no permite formatear el texto.
5) Por último, vamos a enviar el comando para apertura del cajón de dinero. El DLL no posee una función específica que haga la apertura del cajón, todavía se puede utilizar la función ComandoTX para envío de comandos directos a través del DLL.
procedure TForm1.Button3Click(Sender: TObject);
var
comando : string;
begin
comando:=Chr(27)+Chr(118)+Chr(140); //Enviamos los bytes del comando directo
iRetorno:=ComandoTX(comando, Length(comando));
if iRetorno < 1 then
Application.MessageBox('Error de comunicación!', 'Error', MB_ICONERROR + MB_OK);
end;
El ejemplo completo de utilización del DLL está disponible en nuestro sitio y puede ser descargado haciendo click aquí.
¡Listo! Ahora ya es posible integrar su software fácilmente con las mini-impresoras no fiscales Bematech. Mayor información acerca de las funciones del DLL está disponible en el manual de usuario, en el paquete del DLL.
