« Edición 9 - Utilizando drivers de spooler con las impresoras térmicas Bematech | Volver a Página Principal | Edición 11 - Interpretando retornos y status de las Impresoras Fiscales Bematech utilizando BemaFI32.dll »

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.

El dll MP2032 además de facilitar la integración de su software, permite mayor velocidad de impresión en comparado con el driver de spooler, ya que utiliza los codepages de la impresora. La programación con el DLL es muy sencilla, pues el archivo cuenta con funciones listas que permiten un mejor control del envío y recibimiento de las informaciones de la impresora.

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.

Comentar este artículo

(Si usted jamás hizo un comentario aqui, usted necesita obtener la aprobación del administrador de Bemacast, antes de esto su comentario no podrá ser visto. Gracias por aguardar.)