<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>BEMACAST - FLASH TIP EN ESPAÑOL</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/" />
    <link rel="self" type="application/atom+xml" href="http://partners.bematech.com.br/espanol/flashtip/atom.xml" />
   <id>tag:partners.bematech.com.br,2008:/espanol/flashtip//9</id>
    <link rel="service.post" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9" title="BEMACAST - FLASH TIP EN ESPAÑOL" />
    <updated>2007-12-10T12:33:12Z</updated>
    <subtitle>El mejor contenido técnico para el Desarrollador de Automatización Comercial.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>Edición 13 - Mini-Curso: Desarrollando con Mini-impresoras no Fiscales Bematech</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/12/edicion_13_minicurso_desarroll.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=158" title="Edición 13 - Mini-Curso: Desarrollando con Mini-impresoras no Fiscales Bematech" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.158</id>
    
    <published>2007-12-01T19:03:24Z</published>
    <updated>2007-12-10T12:33:12Z</updated>
    
    <summary><![CDATA[Este Flash Tip trata de informaciones sobre los 4 posibles m&eacute;todos de env&iacute;o de informaciones - sea texto puro, texto formateado o imagen - a las mini-impresoras no fiscales o impresoras de kiosko Bematech, y tambi&eacute;n donde buscar m&aacute;s detalles...]]></summary>
    <author>
        <name>Humberto Aleman</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p><font face="Verdana" size="2">Este Flash Tip trata de informaciones sobre los 4 posibles m&eacute;todos de env&iacute;o de informaciones - sea texto puro, texto formateado o imagen - a las mini-impresoras no fiscales o impresoras de kiosko Bematech, y tambi&eacute;n donde buscar m&aacute;s detalles para el m&eacute;todo que m&aacute;s se adecua a su caso. </font></p>]]>
        <![CDATA[<p><font face="Verdana" size="2">Entre los 4 m&eacute;todos, hay uno que no puede ser utilizado en mini-impresoras matriciales, el driver de spooler Bematech. Este driver permite la impresi&oacute;n a trav&eacute;s de cualquier aplicativo Windows, desde Word por ejemplo, pues, como los drivers comunes de impresoras Jato de Tinta, el driver Bematech convierte toda informaci&oacute;n en imagen antes de enviar a una de nuestras mini-impresoras t&eacute;rmicas o impresoras de kiosco. Por ese motivo las mini-impresoras matriciales Bematech no funcionan con el driver de spooler ya que no tienen este recurso para impresi&oacute;n de im&aacute;genes. <br />El instalador del driver Bematech, est&aacute; disponible en nuestro site en la secci&oacute;n de <a href="http://www.bematech.com/es/support/default.asp">descargas</a> con el nombre BemaSetup. Es recomendable que verifiques siempre, si tienes la versi&oacute;n m&aacute;s reciente de este aplicativo de instalaci&oacute;n para obtener un desempe&ntilde;o m&aacute;ximo de su mini-impresora Bematech. Para m&aacute;s informaciones sobre la instalaci&oacute;n y configuraci&oacute;n de este driver, consulte nuestro FlashTip 9&ordf; edici&oacute;n en nuestro archivo de <a href="http://partners.bematech.com.br/espanol/flashtip/">Bemacast</a> o, para acceder directamente a &eacute;ste informativo, haga clic <a href="http://partners.bematech.com.br/espanol/flashtip/2007/03/edicion_9_utilizando_drivers_d.html">aqu&iacute;</a>.</font></p>
<p><font face="Verdana" size="2">Los pr&oacute;ximos m&eacute;todos, todos atienden a todos tipos de mini-impresoras no fiscales e impresoras de kiosko Bematech. Entre ellos est&aacute; el driver Generic Text Only de Windows, &eacute;ste permite apenas la impresi&oacute;n de texto puro como el que se genera en el &ldquo;Bloc de Notas&rdquo;. <br />Obs.: Las mini-impresoras t&eacute;rmicas a partir de las MP-2100 TH tienen memoria interna para grabaci&oacute;n de im&aacute;genes. Esta memoria puede ser accedida a trav&eacute;s de comandos directos programados en las propiedades de &eacute;ste driver.<br />Es posible configurar la formateaci&oacute;n de texto (que ser&aacute; constante en toda la impresi&oacute;n), avanzo de papel al final de la impresi&oacute;n, entre otros recursos a trav&eacute;s del env&iacute;o de comandos directos que deben ser programados en las propiedades del driver Generic Text Only. Para m&aacute;s informaciones sobre la instalci&oacute;n de este driver consulte nuestro <a href="http://partners.bematech.com.br/espanol/flashtip/2006/05/como_utilizar_el_driver_generi.html">Flash Tip 3&ordf; edici&oacute;n</a>.<br />Para informaciones sobre la configuraci&oacute;n de comandos de comandos en las propiedades del driver, como para accionamiento de guillotina, vea el <a href="http://partners.bematech.com.br/espanol/flashtip/2006/05/utilizando_comandos_de_impresi_1.html">Flas Tip 4&ordf; edici&oacute;n</a> o <a href="http://partners.bematech.com.br/espanol/flashtip/2007/01/post.html">Flash Tip 8&ordf; edici&oacute;n</a>. <br />Los comandos que cada impresora acepta y sus par&aacute;metros encuentras en el Manual del Usuario de cada equipo en nuestra secci&oacute;n de <a href="http://www.bematech.com/es/support/default.asp">descargas</a>.</font></p>
<p><font face="Verdana" size="2">En los dos modos anteriores, su aplicativo no se comunica directamente con la impresora, o sea no pende de programaci&oacute;n espec&iacute;fica en su software para uso de estos modos. Los dos &uacute;ltimos, comunicaci&oacute;n directa o comunicaci&oacute;n por API, penden que su aplicativo se comunique con el puerto donde est&aacute; conectada la impresora. Para utilizar el m&eacute;todo de comunicaci&oacute;n directa, su aplicativo debe enviar al puerto, una secuencia de caracteres ASCII compatible con el set de comandos del equipo para el cual se est&aacute; desarrollando. Nuestras mini-impresoras reconocen comandos que pertenecen al set Bematech, ESC/Bema, pero las funcionalidades no est&aacute;n implementadas por completo en todos los modelos, por ejemplo una impresora matricial no tiene el recurso de guillotina, y tambi&eacute;n no tienen mem&oacute;ria para figuras. Para confirmar los recursos y funcionalidades disponibles de su equipo, consulte el Manual del Usuario. <br />Obs: Los modelos m&aacute;s recientes, a partir de la MP-4000 TH, aceptan tambi&eacute;n comandos ESC/Pos. Informaciones sobre como cambiar para este set de comandos, consulte el Manual del Usuario.</font></p>
<p><font face="Verdana" size="2">Por fin se puede utilizar nuestra API, la MP2032.dll. &Eacute;ste dll permite un control total sobre la impresora como en el caso anterior de comunicaci&oacute;n directa, pero de manera m&aacute;s f&aacute;cil y m&aacute;s intuitiva para el programador. El paquete de la API que est&aacute; disponible en nuestro site contiene adem&aacute;s del dll, un archivo Help propio que trata desde las declaraciones en distintos lenguajes de programaci&oacute;n, hasta tipos de variables que debes pasar como par&aacute;metros para las funciones de &eacute;sta librer&iacute;a. En el <a href="http://partners.bematech.com.br/espanol/flashtip/2007/05/post_1.html">Flash Tip 10&ordf; edici&oacute;n</a> encuentras informaciones de como empezar el desarrollo, en su aplicativo, de la parte espec&iacute;fica a la comunicaci&oacute;n con nuestras mini-impresoras. Adem&aacute;s, encentras en la secci&oacute;n de descargas de Bematech.com ejemplos con c&oacute;digos fuente de softwares que traen implementadas casi todas las funcionalidades y le servir como base tambi&eacute;n para desarrollo. Un &iacute;tem importante al utilizarse este m&eacute;todo es no olvidar de programar el cierre del puerto de comunicaci&oacute;n al finalizar su aplicativo.</font></p>
<p><font face="Verdana" size="2">En caso de, dudas o problemas en el proceso de desarrollo, contactes el soporte a desarrolladores de su pa&iacute;s o regi&oacute;n:</font></p>
<p><font face="Verdana" size="2">Argentina<br />e-mail o MSN: </font><a href="mailto:soporte.argentina@bematech.com"><font face="Verdana" size="2">soporte.argentina@bematech.com</font></a><font face="Verdana" size="2"> <br />skype: soporte.argentinabema</font></p>
<p><font face="Verdana" size="2">Venezuela:<br />e-mail o MSN: </font><a href="mailto:soporte.venezuela@bematech.com"><font face="Verdana" size="2">soporte.venezuela@bematech.com</font></a><br /><font face="Verdana" size="2">skype: soporte.venezuela</font></p>
<p><font face="Verdana" size="2">Dem&aacute;s pa&iacute;ses:<br />e-mail o MSN: </font><a href="mailto:soportebspla@bematech.com"><font face="Verdana" size="2">soportebspla@bematech.com</font></a><br /><font face="Verdana" size="2">skype: soportebspla</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 12 - Comandos básicos para emisión de Comprobante fiscal en Impresoras fiscales Bematech utilizando la BemaFI32.dll</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/11/edicion_12_comandos_basicos_pa.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=155" title="Edición 12 - Comandos básicos para emisión de Comprobante fiscal en Impresoras fiscales Bematech utilizando la BemaFI32.dll" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.155</id>
    
    <published>2007-11-01T16:54:54Z</published>
    <updated>2007-11-21T13:14:35Z</updated>
    
    <summary><![CDATA[La 11&ordf; edici&oacute;n de Flash Tip, trat&oacute; de m&eacute;todos para identificaci&oacute;n de errores de la impresora utilizando los recursos de la librer&iacute;a BemaFI32.dll. En esta edici&oacute;n, ser&aacute;n expuestos otros m&eacute;todos de trabajo con la librer&iacute;a BemaFI32.dll. Utilizada para comunicaci&oacute;n con...]]></summary>
    <author>
        <name>Humberto Aleman</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p><font face="Verdana" size="2">La 11&ordf; edici&oacute;n de Flash Tip, trat&oacute; de m&eacute;todos para identificaci&oacute;n de errores de la impresora utilizando los recursos de la librer&iacute;a BemaFI32.dll.</font></p>
<p><font face="Verdana" size="2">En esta edici&oacute;n, ser&aacute;n expuestos otros m&eacute;todos de trabajo con la librer&iacute;a BemaFI32.dll. Utilizada para comunicaci&oacute;n con impresoras fiscales Bematech trataremos los m&eacute;todos relativos a operaciones de venta.</font> </p>]]>
        <![CDATA[<p><font face="Verdana" size="2">En nuestra secci&oacute;n de descargas encontrar&aacute; el paquete BemaFI32_ES.zip que contiene siempre la &uacute;ltima versi&oacute;n disponible del DLL, o, si prefieres, puedes bajar directamente el paquete haciendo clic aqu&iacute;. <br />El archivo contiene:<br />- BemaFI32.dll, librer&iacute;a dll fiscal<br />- BemaFI32.ini, archivo de par&aacute;metros del dll <br />- BemaFI32_ES.chm, archivo de ayuda, con explicaci&oacute;n de todo procedimiento de configuraci&oacute;n e instalaci&oacute;n, todas las funciones con par&aacute;metros y retornos que componen la BemaFI32.dll<br /><br />Estando prendida y no emitiendo ning&uacute;n informe o reducci&oacute;n, la impresora est&aacute; lista para empezar la impresi&oacute;n y registro en memoria fiscal de una operaci&oacute;n de venta. Utilizando o no nuestra librer&iacute;a, estas operaciones deben seguir los pasos b&aacute;sicos de:<br />- Apertura de Comprobante<br />- Venta de Art&iacute;culos<br />- Cierra Comprobante<br /><br />Estas etapas pueden ser realizadas a trav&eacute;s de funciones y m&eacute;todos distintos utilizando la librer&iacute;a BemaFI32.dll. Estos ser&aacute;n brevemente descritos abajo y estar&aacute;n acompa&ntilde;ados de ejemplos de programaci&oacute;n en Delphi. M&aacute;s detalles sobre los par&aacute;metros de cada funci&oacute;n - tipo, l&iacute;mites de caracteres para strings y significado de valores de retornos para cada funci&oacute;n - se encuentra en el archivo de ayuda BemaFI23_ES.chm que acompa&ntilde;a el paquete de la librer&iacute;a. En las pr&oacute;ximas l&iacute;neas, los pasos del proceso de generaci&oacute;n y emisi&oacute;n de comprobante fiscal.<br /><br />1- Apertura de Comprobante: Dos funciones de la librer&iacute;a realizan esta operaci&oacute;n de manera muy semejante, Bematech_FI_AbreComprobanteDeVenta que imprime RIF y nombre:<br /></font><font face="Verdana" color="#800000" size="2"><font face="Courier New">cRIF := '014.004-1987';<br />cNombre := 'Carlos Lenz';<br />iRetorno := Bematech_FI_AbreComprobanteDeVenta(cRIF, cNombre);</font><br /></font><font face="Verdana" size="2">&nbsp; <br />Y Bematech_FI_AbreComprobanteDeVentaEx que adem&aacute;s de RIF y nombre tambi&eacute;n permite registrar en el propio comprobante la direcci&oacute;n del cliente:&nbsp; <br /><font face="Courier New" color="#800000">cRIF := '015.002-1924';<br />cNombre := 'Edgardo Donato';<br />cDireccion := 'Calle Corrientes, 348';<br />iRetorno := Bematech_FI_AbreComprobanteDeVentaEx(cRIF, cNombre, cDireccion);</font><br />&nbsp; <br />2- Venta de Art&iacute;culos: La librer&iacute;a dispone de dos funciones tambi&eacute;n para esta operaci&oacute;n, sin embargo trabajan con par&aacute;metros un poco distintos. Bematech_FI_VendeArticulo permite las especificaciones de C&oacute;digo, Descripci&oacute;n, Al&iacute;cuota, Tipo de Cantidad, Cantidad, N&uacute;mero de casas decimales, Valor Unitario, Tipo Descuento y Valor Descuento:&nbsp; <br /><font face="Courier New" color="#800000">cCodigo := '123'; <br />cDescripcion := 'Bol&iacute;grafo'; <br />cAlicuota := 'II'; <br />cTipoCantidad := 'I'; <br />cCantidad := '10'; <br />iCasasDecimales := 2; <br />cValor := '0,25'; <br />cTipoDescuento := '%'; <br />cValorDesc := '0000'; <br />iRetorno := Bematech_FI_VendeArticulo(pchar(cCodigo), pchar(cDescripcion), pchar(cAlicuota), pchar(cTipoCantidad), pchar(cCantidad), iCasasDecimales, pchar(cValor), pchar(cTipoDescuento), pchar(cValorDesc));</font><br />&nbsp; <br />Y Bematech_FI_VendeArticuloDepartamento que concede al programador la opci&oacute;n de discriminar y sumar en un determinado totalizador de Departamento la venta a trav&eacute;s de los par&aacute;metros de C&oacute;digo, Descripci&oacute;n, Al&iacute;cuota, Valor Unitario, Cantidad, Acrecimiento, Descuento, &Iacute;ndice Departamento y Unidad de Medida:&nbsp; <br /><font face="Courier New" color="#800000">cCodigo := '123';<br />cDescripcion := 'Boligrafo' ;<br />cAlicuota := 'II';<br />cValor := '0,250';<br />cCantidad := '10,000';<br />cAcresc := '0,00';<br />cDesc := '0,00';<br />cIndice := '01';<br />cUnidad := 'UN';</font><br /><br /><font face="Courier New" color="#800000">iRetorno := Bematech_FI_VendeArticuloDepartamento(pchar(cCodigo), pchar(cDescripcion),pchar(cAlicuota), pchar(cValor), pchar(cCantidad), pchar(cAcresc), pchar(cDesc), pchar(cIndice), pchar(cUnidad));</font><br />&nbsp; <br />Es posible que, durante el proceso de venta, alguna falla ocurra en la inclusi&oacute;n o que el cliente desee cancelar la compra de un &iacute;tem. Se hace necesario en &eacute;ste caso, la anulaci&oacute;n de venta de un &iacute;tem y eso puede ser tratado de tres maneras, utilizando Bematech_FI_AnulaArticuloAnterior, Bematech_FI_AnulaArticuloGenerico o Bematech_FI_DevolucionArticulo. La primera, Bematech_FI_AnulaArticuloAnterior, permite invalidar el &uacute;ltimo art&iacute;culo vendido del comprobante actual y por eso no necesita par&aacute;metros:&nbsp; <br /><font face="Courier New" color="#800000">&nbsp;iRetorno := Bematech_FI_AnulaArticuloAnterior();&nbsp;&nbsp; </font><br />La otra funci&oacute;n, Bematech_FI_AnulaArticuloGenerico, permite anular la venta de cualquiera de los &uacute;ltimos 100 &iacute;tems registrados del comprobante actualmente abierto. Para identificar el n&uacute;mero del producto que quieres anular, el operador tiene que buscar el n&uacute;mero del &iacute;tem en el comprobante actualmente abierto pues es el par&aacute;metro necesario para su uso:&nbsp; <br /><font face="Courier New" color="#800000">&nbsp;cNumeroArticulo := '005'; <br />iRetorno := Bematech_FI_AnulaArticuloGenerico( pchar(cNumeroArticulo) );</font><br />&nbsp; <br />Por fin, si utilizas lector de c&oacute;digos de barras, la funci&oacute;n Bematech_FI_DevolucionArticulo puede ser m&aacute;s sencilla ya que permite una operaci&oacute;n de venta negativa. Se puede ejemplificar esta, utilizando los mismos par&aacute;metros de VendeArticulo:&nbsp; <br /><font face="Courier New" color="#800000">&nbsp;cCodigo := '123'; <br />cDescripcion := 'Bol&iacute;grafo'; <br />cAlicuota := 'II'; <br />cTipoCantidad := 'I'; <br />cCantidad := '10'; <br />iCasasDecimales := 2; <br />cValor := '0,25'; <br />cTipoDescuento := '%'; <br />cValorDesc := '0000'; <br />iRetorno := Bematech_FI_DevolucionArticulo(pchar(cCodigo), pchar(cDescripcion), pchar(cAlicuota), pchar(cTipoCantidad), pchar(cCantidad), iCasasDecimales, pchar(cValor), pchar(cTipoDescuento), pchar(cValorDesc));</font><br />&nbsp; <br />3- Cierre de comprobante: &Eacute;sta etapa puede ser realizada de 2 modos. <br />3.1- Utilizando una secuencia de 3 funciones:<br />- Bematech_FI_IniciaCierreCupon, <br />- Bematech_FI_EfectuaFormaPago (o Bematech_FI_EfecturaFormaPagoDescripcionForma) y<br />- Bematech_FI_FinalizarCierreCupon. <br />Este modo debe iniciase siempre con Bematech_FI_IniciaCierreCupon. Con &eacute;sta funci&oacute;n se puede especificar sobre el subtotal, si habr&aacute; acrecimiento o descuento, especificar si ser&aacute; por valor o por porcentaje y de cuanto ser&aacute;:&nbsp; <br /><font face="Courier New" color="#800000">&nbsp;cAcreDesc := 'A'; <br />cTipoAcreDesc := '%'; <br />cValorAcreDesc := '0000'; <br />iRetorno := Bematech_FI_IniciaCierreCupon(pchar(cAcreDesc), pchar(cTipoAcreDesc), pchar(cValorAcreDesc));</font><br />&nbsp; <br />La siguiente etapa es relativa a especificar las formas de pago. De la librer&iacute;a, dos funciones cumplen este papel, una es Bematech_FI_EfectuaFormaPago que utilizando dos par&aacute;metros de string, una para forma y otra para valor, permite especificar estos datos para cada forma de pago utilizada:&nbsp; <br /><font face="Courier New" color="#800000">cFormaPago := 'Tarjeta VISA'; <br />cValorPago := '50,00'; <br />iRetorno := Bematech_FI_EfectuaFormaPago(pchar(cFormaPago), pchar(cValorPago));</font><br />&nbsp; <br />La otra funci&oacute;n que tiene el mismo empleo es Bematech_FI_EfectuaFormaPagoDescripcionForma. Ella permite agregar, adem&aacute;s del valor y forma utilizados, un comentario sobre cada forma de pago del comprobante, conforme muestra el ejemplo:&nbsp; <br /><font face="Courier New" color="#800000">cFormaPago := 'Cheque PRE'; <br />cValorPago := '75,00'; <br />cDescripcion := 'Vencimiento en 14/12/07'; <br />iRetorno := Bematech_FI_EfectuaFormaPagoDescripcionForma(pchar(cFormaPago), pchar(cValorPago), pchar(cDescripcion));</font><br />&nbsp; <br />Por fin, para informar que todas las formas de pago ya fueron especificadas, la funci&oacute;n Bematech_FI_FinalizaCierreCupon imprime el mensaje promocional al final y comunica a la impresora que ya se termin&oacute; el proceso de cierre de comprobante:&nbsp; <br /><font face="Courier New" color="#800000">cMsgPromocional := 'Gracias por su preferencia!!!'; <br />iRetorno := Bematech_FI_FinalizarCierreCupon(pchar(cMsgPromocional));</font><br />&nbsp; <br />3-2 El segundo modo permite el cierre del comprobante utilizando apenas una funci&oacute;n. La librer&iacute;a dispone de dos funciones que pueden cumplir esto. Efectuando el cierre de comprobante con Bematech_FI_CierraCupon el programador puede detallar sobre una forma de pago, el incremento o decremento del valor final, el tipo (porcentaje o valor) y de cuanto esto ser&aacute;. Adem&aacute;s de estas informaciones de cierre, tambi&eacute;n se puede especificar el mensaje para el final del comprobante, conforme sigue el ejemplo:&nbsp; <br /><font face="Courier New" color="#800000">cFormaPago := 'Efectivo'; <br />cAcresDesc := 'A'; <br />cTipoAcresDesc := '$'; <br />cValorAcresDesc := '0000'; <br />cValorPago := '35,00'; <br />cMensajePromocional := 'Gracias, vuelva siempre !!!'; <br />iRetorno := Bematech_FI_CierraCupon(pchar(cFormaPago), pchar(cAcresDesc), pchar(cTipoAcresDesc), pchar(cValorAcresDesc), pchar(cValorPago), pchar(cMensajePromocional));</font><br />&nbsp; <br />De modo semejante al anterior, la funci&oacute;n Bematech_FI_CierreCuponReducido, permite definir la forma de pago - que tendr&aacute; el valor autom&aacute;ticamente definido seg&uacute;n el subtotal del comprobante - y tambi&eacute;n el mensaje promocional para final del comprobante:&nbsp; <br /><font face="Courier New" color="#800000">cFormaPago := 'T&iacute;cket'; <br />cMsgPromocional := 'Gracias por su preferencia!!!'; <br />iRetorno := Bematech_FI_CierraCuponReducido(pchar(cFormaPago), pchar(cMsgPromocional));</font><br />&nbsp; <br />Siguiendo estos m&eacute;todos y tomando la debida atenci&oacute;n a los retornos que la impresora podr&iacute;a presentar, est&aacute;s apto a empezar el desarrollo para emisi&oacute;n de comprobante fiscal de su aplicaci&oacute;n. M&aacute;s informaciones sobre las funciones de la librer&iacute;a BemaFI32.dll tratadas en &eacute;ste Flash Tip, las encuentras en el paquete de la dll que est&aacute; disponible en nuestra secci&oacute;n de descargas. En esta misma secci&oacute;n tambi&eacute;n podr&aacute;s encontrar ejemplos completos del uso de la BemaFI32 en VB, FoxPRO, Delphi y C#.&nbsp; <br /></font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 11 - Interpretando retornos y status de las Impresoras Fiscales Bematech utilizando BemaFI32.dll</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/09/bematech_flashtip_11a_edicion.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=152" title="Edición 11 - Interpretando retornos y status de las Impresoras Fiscales Bematech utilizando BemaFI32.dll" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.152</id>
    
    <published>2007-09-10T15:11:54Z</published>
    <updated>2007-11-21T13:14:54Z</updated>
    
    <summary><![CDATA[La 10&ordf; edici&oacute;n de Flash Tip, trat&oacute; de m&eacute;todos b&aacute;sicos sobre el uso de la MP2032.dll para impresoras no fiscales matriciales y t&eacute;rmicas. En esta edici&oacute;n, ser&aacute;n expuestos m&eacute;todos para trabajar con la librer&iacute;a BemaFI32.dll, utilizada para impresoras fiscales matriciales....]]></summary>
    <author>
        <name>Humberto Aleman</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<font face="Verdana" size="2">La 10&ordf; edici&oacute;n de Flash Tip, trat&oacute; de m&eacute;todos b&aacute;sicos sobre el uso de la MP2032.dll para impresoras no fiscales matriciales y t&eacute;rmicas. </font>
<p><font face="Verdana" size="2">En esta edici&oacute;n, ser&aacute;n expuestos m&eacute;todos para trabajar con la librer&iacute;a BemaFI32.dll, utilizada para impresoras fiscales matriciales. Espec&iacute;ficamente, trataremos informaciones sobre el archivo de Log para depuraci&oacute;n de errores que ocurran en la etapa de desarrollo y producci&oacute;n, y el tratamiento de retornos y alertas mientras est&eacute;s desarrollando la aplicaci&oacute;n para compatibilizarlo con nuestra impresora. </font></p>]]>
        <![CDATA[<p><font face="Verdana" size="2">En nuestra secci&oacute;n de <a href="http://www.bematech.com/es/support/default.asp"><font face="Verdana" size="2">descargas</font></a><font face="Verdana" size="2"> encuentras el paquete BemaFI32_ES.zip con la &uacute;ltima versi&oacute;n de la DLL para su instalaci&oacute;n, o si prefiere, haga clic </font><a href="http://www.bematech.com/support/downloads/BemaFI32_ES.zip"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2">. Acompa&ntilde;an &eacute;ste archivo:</font><br /></font><font face="Verdana" size="2">- BemaFI32.dll, librer&iacute;a dll fiscal<br />- BemaFI32.ini, archivo de par&aacute;metros del dll <br />- BemaFI32_ES.chm, archivo de ayuda, con explicaci&oacute;n de todo el procedimiento de configuraci&oacute;n e instalaci&oacute;n, todas las funciones con par&aacute;metros y retornos que componen la BemaFI32.dll<br /></font></p>
<p><font face="Verdana" size="2">Despu&eacute;s de seguir los pasos iniciales descritos en el archivo de ayuda BemaFI32_ES.chm:<br />- Configuraci&oacute;n (BemaFI32.ini),<br />- Declaraci&oacute;n del DLL en el lenguaje de su aplicativo, <br />- Programar funciones generales de inicializaci&oacute;n como S&iacute;mbolo de Moneda, Espacio entre L&iacute;neas, Valores de Al&iacute;cuotas, etc. Su programa est&aacute; listo para que empieces propiamente la etapa de programaci&oacute;n. <br />Obs.: En el manual de la impresora </font><a href="http://www.bematech.com/support/downloads/3946%20-%20MAN%20MP-20%20FI%20II%20VE%20USR%20ES%20-%20Rev.1.0.pdf"><font face="Verdana" size="2">MP-20 FI II</font></a><font face="Verdana" size="2"> que encuentras en la secci&oacute;n de descargas de nuestro sitio Web, hay un cap&iacute;tulo espec&iacute;fico (cap&iacute;tulo 13 - p&aacute;g. 192) que trata de las etapas que, como programador, debes seguir al desarrollar el aplicativo para utilizar nuestras impresoras. </font></p>
<p><font face="Verdana" size="2">En este proceso de desarrollo, su software tendr&aacute; de tratar los retornos de la impresora. Hay, de manera general, dos modos para realizar eso, y estos son:<br />- Utilizar variables y funciones (de la librer&iacute;a) de retorno y trabajar estos valores en su programa o,<br />- Utilizar archivos de log en txt creados con informaciones de status o retornos de la impresora. </font></p>
<p><font face="Verdana" size="2">La opci&oacute;n para uso de estos archivos log fue creada con objetivo de atender las necesidades espec&iacute;ficas que algunos lenguajes de programaci&oacute;n tienen para tratar retornos. Usualmente se utiliza el primer modo y &eacute;ste ser&aacute; el tratado con m&aacute;s detalles en seguida.</font></p>
<p><font face="Verdana" size="2">En la llamada de cada funci&oacute;n del dll es necesario realizar la lectura del status de la impresora para verificar si hubo alg&uacute;n error, cualquier que sea su naturaleza (error de transmisi&oacute;n, fin de papel, o en el caso de una venta si la tasa no est&aacute; registrada, etc). Y el status de la impresora es transmitido al aplicativo v&iacute;a 3 bytes, a saber: Ack, St1 y St2. La interpretaci&oacute;n correspondiente a cada bit seteado, o no, sigue la siguiente tabla:</font></p>
<p><font face="Verdana" size="2"></font></p>
<table style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" cellspacing="0" cellpadding="0" width="99%" border="1">
    <tbody>
        <tr>
            <td width="38%">
            <p align="center"><strong>Composicion del Byte de Retorno</strong></p>
            </td>
            <td width="42%"><strong>&nbsp;Mensaje de la Impresora</strong></td>
            <td width="20%">
            <p align="center"><strong>Valor de Retorno</strong></p>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 7</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;fin de papel</div>
            </td>
            <td width="20%">
            <div align="center">128</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 6</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;poco papel</div>
            </td>
            <td width="20%">
            <div align="center">64</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 5</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;error en el reloj</div>
            </td>
            <td width="20%">
            <div align="center">32</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 4</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;impresora con error</div>
            </td>
            <td width="20%">
            <div align="center">16</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 3</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;primer dato de CMD no fue ESC(1Bh)</div>
            </td>
            <td width="20%">
            <div align="center">8</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 2</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;comando inexistente</div>
            </td>
            <td width="20%">
            <div align="center">4</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 1</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;cup&oacute;n fiscal abierto </div>
            </td>
            <td width="20%">
            <div align="center">2</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 0</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;n&uacute;mero del par&aacute;metro de CMD inv&aacute;lido</div>
            </td>
            <td width="20%">
            <div align="center">1</div>
            </td>
        </tr>
    </tbody>
</table>
<br /><br />
<table style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" cellspacing="0" cellpadding="0" width="99%" border="1">
    <tbody>
        <tr>
            <td width="38%">
            <p align="center"><strong>Composicion del Byte de Retorno</strong></p>
            </td>
            <td width="42%"><strong>&nbsp;Mensaje de la Impresora</strong></td>
            <td width="20%">
            <p align="center"><strong>Valor de Retorno</strong></p>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 7</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;tipo de par&aacute;metro de CMD inv&aacute;lido</div>
            </td>
            <td width="20%">
            <div align="center">128</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 6</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;memoria fiscal llena</div>
            </td>
            <td width="20%">
            <div align="center">64</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 5</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;error en la memoria RAM CMOS no volatil</div>
            </td>
            <td width="20%">
            <div align="center">32</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 4</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;al&iacute;cuota no programada</div>
            </td>
            <td width="20%">
            <div align="center">16</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 3</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;capacidad de al&iacute;cuota agotada </div>
            </td>
            <td width="20%">
            <div align="center">8</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 2</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;cancelamiento no permitido</div>
            </td>
            <td width="20%">
            <div align="center">4</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 1</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;Id Fiscal del propiet&aacute;rio no programados</div>
            </td>
            <td width="20%">
            <div align="center">2</div>
            </td>
        </tr>
        <tr>
            <td width="38%">
            <div align="center">bit 0</div>
            </td>
            <td width="42%">
            <div align="left">&nbsp;comando no ejecutado</div>
            </td>
            <td width="20%">
            <div align="center">1</div>
            </td>
        </tr>
    </tbody>
</table>
<p><font face="Verdana" size="2"></font></p>
<font face="Verdana">
<p><font size="2">L&oacute;gica de tratamiento: <br />- Cada byte est&aacute; compuesto de 8 bits. Cada bit, dentro de un byte, tiene un valor, conforme la tabla de arriba.<br />- El valor recibido de la impresora para St1 y St2 debe ser comparado con cada bit.<br />- El c&oacute;digo en Visual Basic abajo, es un ejemplo de como su aplicaci&oacute;n puede controlar los diversos estados de la impresora fiscal descritos en la tabla. Para recibir estos estados se utiliza la funci&oacute;n Bematech_FI_RetornoImpresora, conforme sigue:</font></p>
<p><font face="Courier New" color="#800000" size="2">iRetorno = Bematech_FI_RetornoImpressora(Ack, St1, St2) </font></p>
<p><font face="Courier New" color="#800000" size="2">If Ack = 21 Then<br />&nbsp;&nbsp;&nbsp;&nbsp;MsgBox &quot;Status de la Impresora: 21&quot; &amp; vbCr &amp; vbLf &amp; &quot;Comando no ejecutado&quot;, &nbsp;&nbsp;&nbsp;&nbsp;vbOKOnly + vbCritical, &quot;Error&quot;<br />End If</font></p>
<p><font face="Courier New, Courier, mono" color="#800000" size="2">If (St1 &lt;&gt; 0 Or St2 &lt;&gt; 0) Then<br />&nbsp;&nbsp;&nbsp;&nbsp;sMsg = &quot;&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;'Codificando el St1<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 128 Then 'bit 7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 128<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Fin de Papel&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 64 Then 'bit 6<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 64<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Poco Papel&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 32 Then 'bit 5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 32<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Error en el Reloj&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 16 Then 'bit 4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 16<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Impresora en Error&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 8 Then 'bit 3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 8<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Comando no empezado con ESC&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 4 Then 'bit 2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Comando Inexistente&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 2 Then 'bit 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Cupo Abierto&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St1 &gt;= 1 Then 'bit 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St1 = St1 - 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;N&uacute;mero de Par&aacute;metro(s) Inv&aacute;lido(s)&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If</font></p>
<p><font size="2"><font color="#800000"><font face="Courier New, Courier, mono">&nbsp;&nbsp;&nbsp;&nbsp;'Codificando o St2<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 128 Then 'bit 7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 128<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Tipo de Par&aacute;metro de Comando Inv&aacute;lido&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 64 Then 'bit 6<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 64<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Memoria Fiscal Llena&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 32 Then 'bit 5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 32<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Error en la Memoria RAM&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 16 Then 'bit 4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 16<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Al&iacute;cuota No Programada&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 8 Then 'bit 3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 8<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Capacidad de Al&iacute;cuotas Llenada&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 4 Then 'bit 2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Anulaci&oacute;n No Permitida&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 2 Then 'bit 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Identificaci&oacute;n Fiscal del Propietario No &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Programada&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br />&nbsp;&nbsp;&nbsp;&nbsp;If St2 &gt;= 1 Then 'bit 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St2 = St2 - 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsg = sMsg &amp; vbCr &amp; vbLf &amp; &quot;Comando No Ejecutado&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;End If<br /></font><font face="Courier New, Courier, mono">&nbsp;&nbsp;&nbsp;&nbsp;MsgBox sMsg, vbOKOnly + vbInformation, &quot;Status Impresora&quot;</font></font></font></p>
<p><font face="Courier New, Courier, mono" color="#800000" size="2">End If</font></p>
<p><font size="2">Del an&aacute;lisis de la tabla, se puede concluir que si el comando fue ejecutado con &eacute;xito y ning&uacute;n otro error o alerta ocurra, el status de la impresora inmediatamente ser&aacute;: 6,0,0. (Ack, St1, St2 respectivamente). O sea, su programa debe buscar el error o alerta correspondiente siempre que al ejecutar una lectura del status, lea algo distinto de aqu&eacute;l valor.
<p>Para auxiliar &eacute;sta verificaci&oacute;n y el desarrollo, el archivo de configuraci&oacute;n BemaFI32.ini posee 2 claves:<br />- StatusFuncion<br />- Log</p>
<p>El uso StatusFunction (StatusFunction=1), activa una funcionalidad de la librer&iacute;a dll que autom&aacute;ticamente en la ejecuci&oacute;n de cada funci&oacute;n, realiza una lectura del status de la impresora. En el caso de &eacute;ste ser diferente de 6,0,0 el retorno de aquella funci&oacute;n ser&aacute; -27. O sea, su programa solamente en estos casos de retorno -27 necesitar&aacute; hacer la lectura del status de la impresora (Bematech_FI_RetornoImpresora) para depurar su error o alerta actual. </p>
<p>La clave Log=1, habilita la creaci&oacute;n de un log relativo a toda comunicaci&oacute;n hecha con la impresora. Es una facilidad para el proceso de desarrollo pues permite que el programador mismo abra &eacute;ste archivo, y busque ah&iacute; los retornos de la impresora a toda funci&oacute;n que su software ejecute sin la necesidad de desarrollar previamente su aplicaci&oacute;n para que exhiba estos retornos en la pantalla. La direcci&oacute;n donde ser&aacute; creado el BEMAFI32.LOG es definida por otra clave del BemaFI32.ini, &quot;Path&quot; que por default es &quot;C:\&quot;. </p>
<p>Ejemplos completos de utilizaci&oacute;n del DLL en diversos lenguajes est&aacute;n disponibles en nuestro sitio. Entra a nuestra secci&oacute;n de descargas haciendo click <a href="http://www.bematech.com/es/support/default.asp">aqu&iacute;</a>.</p>
</font></p>
<p>&nbsp;</p>
</font>]]>
    </content>
</entry>
<entry>
    <title>Edición 10 - Utilizando el MP2032.dll con las mini-impresoras no fiscales térmicas y matriciales</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/05/post_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=129" title="Edición 10 - Utilizando el MP2032.dll con las mini-impresoras no fiscales térmicas y matriciales" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.129</id>
    
    <published>2007-05-09T18:36:31Z</published>
    <updated>2007-09-10T16:46:06Z</updated>
    
    <summary><![CDATA[En la edici&oacute;n anterior, aprendimos a configurar el driver de spooler Bematech para utilizaci&oacute;n con las Mini-impresoras t&eacute;rmicas no fiscales e impresoras de kiosco. En este Flash Tip aprenderemos a utilizar el DLL MP2032 para integraci&oacute;n con su software desarrollado...]]></summary>
    <author>
        <name></name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p><font face="Verdana" size="2">En la edici&oacute;n anterior, aprendimos a configurar el driver de spooler Bematech para utilizaci&oacute;n con las Mini-impresoras t&eacute;rmicas no fiscales e impresoras de kiosco. En este Flash Tip aprenderemos a utilizar el DLL MP2032 para integraci&oacute;n con su software desarrollado en la plataforma Windows con las impresoras Bematech matriciales y t&eacute;rmicas no fiscales. </font></p>]]>
        <![CDATA[<font face="Verdana" size="2">El dll MP2032 adem&aacute;s de facilitar la integraci&oacute;n de su software, permite mayor velocidad de impresi&oacute;n en comparado con el driver de spooler, ya que utiliza los codepages de la impresora. La programaci&oacute;n con el DLL es muy sencilla, pues el archivo cuenta con funciones listas que permiten un mejor control del env&iacute;o y recibimiento de las informaciones de la impresora.</font>
<p><font face="Verdana" size="2">Para descargar el paquete del DLL MP2032, haga click <a href="http://www.bematech.com/es/support/MP2032.zip">aqu&iacute;</a>. El paquete contiene adem&aacute;s del DLL, los archivos necesarios para la comunicaci&oacute;n serial/paralela en los Sistemas Operativos Windows NT, 2000 y XP&trade; y driver para puerto USB.</font></p>
<p><font face="Verdana" size="2">Si su Sistema Operativo es el Windows 95/98/ME&trade;, trabajaremos solamente con el archivo MP2032.dll. Si su Sistema Operativo es Windows NT/2000/XP&trade;, antes de trabajar con el DLL debemos hacer lo siguiente:</font></p>
<p><font face="Verdana" size="2">1) Copie el archivo BemaIO.sys en el directorio SYSTEM32/DRIVERS<br />2) Ejecute el archivo BemaIO.reg</font></p>
<p><font face="Verdana" size="2">Hecho esto, estamos listos para trabajar con el DLL. El ejemplo que vamos a desarrollar, haremos la configuraci&oacute;n inicial, el env&iacute;o de un texto formateado y algunos otros comandos a la impresora. Antes de trabajar con las funciones, debemos hacer la declaraci&oacute;n en la herramienta de desarrollo. Las declaraciones de las funciones principales se encuentran en el manual del DLL.</font></p>
<p><font face="Verdana" size="2">Hecho las declaraciones, estamos listos para utilizar las funciones. Desarrollaremos nuestro ejemplo en Delphi.</font></p>
<p><font face="Verdana" size="2">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.</font></p>
<p><font face="Verdana" size="2">1) El primer paso para comenzar nuestro programa es configurar el baudrate del puerto serial. Para eso vamos a utilizar la funci&oacute;n ConfiguraTaxaSerial().</font></p>
<p><font face="Verdana" size="2">2) Despu&eacute;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&eacute;s de la funci&oacute;n ConfiguraModeloImpressora(). La configuraci&oacute;n es necesaria para que la impresora MP-20 pueda imprimir texto con acentuaci&oacute;n, todav&iacute;a para otros modelos es opcional.</font></p>
<p><font face="Verdana"><font size="2">3) Hecho la configuraci&oacute;n del baudrate y modelo de impresora, se puede llamar la funci&oacute;n IniciarPorta() que har&aacute; la apertura del puerto serial.<br /><br /></font><font face="Courier New"><font size="2"><strong>procedure</strong> TForm1.FormCreate(Sender: TObject);<br /><strong>begin</strong><br />&nbsp;&nbsp; ConfiguraTaxaSerial(StrtoInt(ComboBox2.Text)); <em><font color="#0000ff">//Combo con las tasas de baudrate</font></em><br />&nbsp;&nbsp; ConfiguraModeloImpressora(1); <br />&nbsp;&nbsp; iRetorno:=IniciaPorta(ComboBox1.Text); <em><font color="#0000ff">//Combo con los nombres de los puertos</font></em><br />&nbsp;&nbsp; if iRetorno &lt; <font color="#0000ff">1</font> <strong>then</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.MessageBox(<font color="#0000ff">'Problemas al abrir puerto de comunicaci&oacute;n!'</font>, <font color="#0000ff">'Error'</font>, MB_ICONERROR + MB_OK);<br /><strong>end;</strong></font></font></font></p>
<p><font face="Verdana" size="2">4) Inicializado el puerto, estamos listos para enviar comandos para la impresora. Para env&iacute;o de texto a la impresora se puede utilizar el comando FormataTX para enviar texto formateado y el BematechTX para enviar texto sin formateo.</font></p>
<p><font face="Verdana" size="2">Con el comando FormataTX es posible formatear el tipo de fuente, imprimir texto subrayado, en negrita, it&aacute;lico o expandido. </font></p>
<p><font face="Courier New" size="2"><strong>procedure</strong> TForm1.Button1Click(Sender: TObject);<br /><strong>var</strong><br />negrita, italico, subrayado, expandido, tipo : shortint;<br />texto: <strong>string</strong>;<br /><strong>begin</strong><br />&nbsp;&nbsp; negrita:=<font color="#0000ff">0</font>; <font color="#0000ff"><em>//Utilizamos 0 para desactivar y 1 para activar<br /></em></font>&nbsp;&nbsp; italico:=<font color="#0000ff">0</font>;<br />&nbsp;&nbsp; subrayado:=<font color="#0000ff">0</font>;<br />&nbsp;&nbsp; expandido:=<font color="#0000ff">0</font>;<br />&nbsp;&nbsp; tipo:=0;<br />&nbsp;&nbsp; if (checkbox1.Checked = true) <strong>then</strong> <em><font color="#0000ff">//Negrita</font><br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; negrita:=1;<br />&nbsp;&nbsp; if (checkbox2.Checked = true) <strong>then</strong> <em><font color="#0000ff">//Italico</font><br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; italico:=1;<br />&nbsp;&nbsp; if (checkbox3.Checked = true) <strong>then</strong> <em><font color="#0000ff">//Subrayado</font><br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subrayado:=1;<br />&nbsp;&nbsp; if (checkbox4.Checked = true) <strong>then</strong> <em>/<font color="#0000ff">/Expandido</font><br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expandido:=1;<br />&nbsp;&nbsp; if (RadioButton1.Checked = true) <strong>then</strong> <em><font color="#0000ff">//Comprimida</font></em><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tipo:=1;<br />&nbsp;&nbsp; if (RadioButton2.Checked = true) <strong>then</strong> <em><font color="#0000ff">//Normal</font><br /></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tipo:=2;<br />&nbsp;&nbsp; if (RadioButton3.Checked = true) <strong>then</strong> <font color="#0000ff"><em>//Expandido</em><br /></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tipo:=3;<br />&nbsp;&nbsp; texto:=Memo1.Text+Chr(13)+Chr(10);<br />&nbsp;&nbsp; iRetorno:=FormataTX(texto, tipo, italico, subrayado, expandido, negrita);<br />&nbsp;&nbsp; if iRetorno &lt; <font color="#0000ff">1</font> then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.MessageBox('Error de comunicaci&oacute;n!', 'Error', MB_ICONERROR + MB_OK);<br /><strong>end;</strong></font></p>
<p><font face="Verdana" size="2">Obs.: Tambi&eacute;n es posible que se env&iacute;e texto en l&iacute;neas a la impresora utilizando el comando BematechTX, todav&iacute;a este comando no permite formatear el texto.</font></p>
<p><font face="Verdana" size="2">5) Por &uacute;ltimo, vamos a enviar el comando para apertura del caj&oacute;n de dinero. El DLL no posee una funci&oacute;n espec&iacute;fica que haga la apertura del caj&oacute;n, todav&iacute;a se puede utilizar la funci&oacute;n ComandoTX para env&iacute;o de comandos directos a trav&eacute;s del DLL.</font></p>
<p><font face="Courier New" size="2"><strong>procedure </strong>TForm1.Button3Click(Sender: TObject);<br /><strong>var</strong><br />comando : <strong>string</strong>;<br /><strong>begin</strong><br />&nbsp;&nbsp; comando:=Chr(<font color="#0000ff">27</font>)+Chr(<font color="#0000ff">118</font>)+Chr(<font color="#0000ff">140</font>); <em><font color="#0000ff">//Enviamos los bytes del comando directo</font></em><br />&nbsp;&nbsp; iRetorno:=ComandoTX(comando, Length(comando));<br />&nbsp;&nbsp; if iRetorno &lt; 1 <strong>then</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.MessageBox(<font color="#0000ff">'Error de comunicaci&oacute;n!'</font>, <font color="#0000ff">'Error'</font>, MB_ICONERROR + MB_OK);<br /><strong>end; <br /><br /></strong><font face="Tahoma">El ejemplo completo de utilizaci&oacute;n del DLL est&aacute; disponible en nuestro sitio y puede ser descargado haciendo click <a href="http://www.bematech.com/es/support/Aplicativo_de_Prueba.zip">aqu&iacute;</a>.</font></font></p>
<p><font face="Tahoma" size="2">&iexcl;Listo! Ahora ya es posible integrar su software f&aacute;cilmente con las mini-impresoras no fiscales Bematech. Mayor informaci&oacute;n acerca de las funciones del DLL est&aacute; disponible en el manual de usuario, en el paquete del DLL. </font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 9 - Utilizando drivers de spooler con las impresoras térmicas Bematech</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/03/edicion_9_utilizando_drivers_d.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=121" title="Edición 9 - Utilizando drivers de spooler con las impresoras térmicas Bematech" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.121</id>
    
    <published>2007-03-26T15:04:32Z</published>
    <updated>2007-11-21T13:07:34Z</updated>
    
    <summary><![CDATA[En la edici&oacute;n anterior, aprendimos a utilizar comando de impresi&oacute;n con el driver gen&eacute;rico de Windows&trade; para impresora matricial. En este Flash Tip aprenderemos a instalar y configurar el driver de spooler para las mini-impresoras t&eacute;rmicas y las impresoras de...]]></summary>
    <author>
        <name></name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">En la edici&oacute;n anterior, aprendimos a utilizar comando de impresi&oacute;n con el driver gen&eacute;rico de Windows&trade; para impresora matricial. En este Flash Tip aprenderemos a instalar y configurar el driver de spooler para las mini-impresoras t&eacute;rmicas y las impresoras de kiosco Bematech.<br /><br />El driver de spooler de Windows&trade; permite el env&iacute;o de impresiones desde cualquier aplicaci&oacute;n que utilice el spooler de <span class="SpellE">Windows&trade;</span>. Con este driver es posible la impresi&oacute;n de gr&aacute;ficos y la utilizaci&oacute;n de fuentes <span class="SpellE">true</span> <span class="SpellE">type</span>.<br /><br />Para <span class="SpellE">para</span> hacer la descarga del instalador, haga click </font><a href="http://www.bematech.com/support/downloads/BemaSetup_23b5.zip"><font size="2">aqu&iacute;</font></a><font size="2">. </font></span>]]>
        <![CDATA[<font size="2"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Para instalar el driver de spooler haga lo siguiente:<br /><br />1) Despu&eacute;s de <span class="SpellE">descompactar</span> el archivo descargado, ejecute el BemaSetup_XXX.exe.<br /><br />2) En la pantalla que se <span class="SpellE">abrie</span>, haga click en <span class="SpellE"><strong>Next</strong></span>, despu&eacute;s <span class="SpellE"><strong>Yes</strong></span>, en <span class="SpellE"><strong>Next</strong></span> dos veces. En seguida haga click en <span class="SpellE"><strong>Install</strong></span>. Espere hasta que se copien todos los archivos.</font>&nbsp;&nbsp;</span><br /><br /></font>
<p align="center"><font size="2"><img height="332" alt="" src="http://www.bematech.com/es/support/Tela3.gif" width="456" /></font></p>
<p class="MsoNormal"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">3) Despu&eacute;s de copiado los archivos, la pantalla para hacer las configuraciones de instalaci&oacute;n se abrir&aacute;.</font></span></p>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">4) En la pantalla de configuraciones haremos la instalaci&oacute;n del driver de
<personname w:st="on" productid="la impresora. En"></personname>
la impresora. En el box <span class="SpellE"><strong>Choose</strong></span><strong> <span class="SpellE">printer</span> <span class="SpellE">model</span></strong> a la izquierda, elegimos el tipo de impresora que ser&aacute; instalada. Despu&eacute;s el tipo de driver:</font></span></p>
<p><font size="2"><strong><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&bull; </span></strong><strong><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana">Driver <span class="SpellE">for</span> regular <span class="SpellE">printing</span>:</span></strong></font><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2"> La informaci&oacute;n ser&aacute; impresa en tama&ntilde;o normal, sin reducci&oacute;n.<br /><strong><span style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&bull;</span></strong> <strong>Driver <span class="SpellE">for</span> <span class="SpellE">reduced</span> <span class="SpellE">scale</span> <span class="SpellE">printing</span>:</strong> Este driver redimensiona la informaci&oacute;n reduci&eacute;ndola en 50%.</font></span></p>
<p style="MARGIN-BOTTOM: 12pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Despu&eacute;s de seleccionado el tipo de driver, configuramos el tipo de papel. Las opciones de anchura de papel disponibles, dependen del tipo de impresora escogida. Hecha las debidas configuraciones, haga click en <span class="SpellE"><strong>Continue</strong></span>.</font></span></p>
<p align="center"><font size="2"><img height="329" alt="" src="http://www.bematech.com/es/support/Tela4.gif" width="399" /> </font></p>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">5) En la pr&oacute;xima pantalla, haremos la configuraci&oacute;n del puerto. En la parte superior, elija el tipo de conexi&oacute;n de acuerdo con la opci&oacute;n disponible en
<personname w:st="on" productid="la impresora. Dependiendo"></personname>
la impresora. Dependiendo del tipo de conexi&oacute;n, debemos configurar el n&uacute;mero del puerto y su velocidad. Finalmente haga click en <span class="SpellE"><strong>Install</strong></span><strong> <span class="SpellE">Now</span></strong> y espere por la copia de los archivos.</font></span></p>
<p align="center"><font size="2"><img height="276" alt="" src="http://www.bematech.com/es/support/Tela2.gif" width="381" /></font></p>
<p><font size="2"><font face="Times New Roman"><font size="3"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Obs.: La velocidad deber&aacute; ser la misma <span class="SpellE">seteada</span> en la impresora a trav&eacute;s de los <span class="SpellE">dips</span> <span class="SpellE">switchs</span>. Todav&iacute;a, algunas impresoras tienen este par&aacute;metro fijo, sin la posibilidad de cambio. Para mayor informaci&oacute;n acerca de configuraci&oacute;n de velocidad, consulte el manual del equipo.</font><br /><br /><font size="2">6) Si la instalaci&oacute;n fue finalizada con &eacute;xito, el <span class="SpellE">Installer</span> le pedir&aacute; una prueba de impresi&oacute;n.</font></span><br /></font><br /></font></font></p>
<p align="center"><font size="2"><img height="189" alt="" src="http://www.bematech.com/es/support/Tela6.gif" width="295" border="1" /> <br /></font></p>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Hecho la prueba de impresi&oacute;n, pasaremos a las configuraciones del driver instalado. Para hacer esto haga lo siguiente: </font></span></p>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">7) En el Panel de Control del Windows, haga click en <strong>Impresoras y faxes</strong>. La impresora instalada deber&aacute; estar nombrada de acuerdo con el modelo escogido. Haga click con el bot&oacute;n derecho y elija <strong>Propiedades</strong>.</font></span></p>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">8) En la ventana de Propiedades haga click en <strong>Configuraci&oacute;n de dispositivo</strong>. En esta pantalla tendremos las siguientes opciones:</font></span></p>
<p align="center"><font size="2"><img height="463" alt="" src="http://www.bematech.com/es/support/Tela1.gif" width="541" /></font></p>
<p><strong><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Formato a asignaci&oacute;n de bandeja</font></span></strong><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">:<br />&gt;<strong> Auto: </strong>En esta opci&oacute;n podemos configurar el ancho del papel instalado en la impresora<br /><br /><span class="SpellE"><strong>Installable</strong></span><strong> <span class="SpellE">Options</span>:</strong><br />&gt; <span class="SpellE"><strong>Paper</strong></span><strong> <span class="SpellE">Cut</span>: </strong>En esta opci&oacute;n se puede configurar si la impresora har&aacute; el corte del papel despu&eacute;s de terminada
<personname w:st="on" productid="la impresión. Hay"></personname>
la impresi&oacute;n. Hay tres opciones siendo:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>&nbsp;Full <span class="SpellE">cut</span></em>: corte total<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="SpellE"><em>Partial</em></span><em> <span class="SpellE">cut</span></em>: corte parcial<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>No <span class="SpellE">Cut</span></em>: no har&aacute; el corte<br /><br />Esta configuraci&oacute;n depende del tipo de impresora. Si la impresora no posee guillotina, esta opci&oacute;n no har&aacute; ning&uacute;n efecto.<br /><br />&gt; <span class="SpellE"><strong>Print</strong></span><strong> <span class="SpellE">Density</span>:</strong> Para configurar la densidad de
<personname w:st="on" productid="la impresión. Hay"></personname>
la impresi&oacute;n. Hay distintas opciones desde <span class="SpellE">Highest</span> hasta <span class="SpellE">Low</span>, siendo <span class="SpellE">Highest</span> la mayor densidad y <span class="SpellE">Low</span> la m&aacute;s baja. Densidades mayores resultan en mejor resoluci&oacute;n pero baja velocidad de impresi&oacute;n.<br /><br />&gt; <span class="SpellE"><strong>EndDoc</strong></span><strong> <span class="SpellE">Line</span> <span class="SpellE">Feeds</span>:</strong> En esta opci&oacute;n configuramos la cantidad de l&iacute;neas que se debe avanzar despu&eacute;s del t&eacute;rmino de
<personname w:st="on" productid="la impresión. La"></personname>
la impresi&oacute;n. La cantidad es configurable de 0 hasta 100 l&iacute;neas.<br /><br />&gt; <span class="SpellE"><strong>Device</strong></span><strong> <span class="SpellE">Type</span>:</strong> Utilizamos esta opci&oacute;n para configurar el tipo de impresora instalada. Las opciones son Mini <span class="SpellE">Printer</span> y <span class="SpellE">Kiosk</span> <span class="SpellE">Printer</span>.<br /><br />&gt;<strong> Data <span class="SpellE">Compression</span>:</strong> En esta opci&oacute;n se puede habilitar o inhabilitar la compresi&oacute;n de datos. La mayor&iacute;a de las impresoras Bematech soportan esta opci&oacute;n. </font>
<p><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Verdana"><font size="2">Hechas las debidas configuraciones, presione <strong>Aceptar</strong> y la impresora estar&aacute; lista para ser utilizada.<br /><br />Caso desee realizar alg&uacute;n cambio en la configuraci&oacute;n, no es necesario desinstalar
<personname w:st="on" productid="la impresora. Para"></personname>
la impresora. Para eso solo es necesario ejecutar el <span class="SpellE">BemaInstaller</span> en el grupo Bematech <span class="SpellE">Printer</span> <span class="SpellE">Package</span> en la lista de Programas de Windows. Se puede instalar m&aacute;s de un tipo de impresora, no siendo necesario desinstalar la impresora anterior.<br /><br />&iexcl;Listo! Ahora usted puede utilizar su impresora Bematech con cualquier aplicaci&oacute;n que utilice el spooler del Windows.&nbsp;</font></span></p>
</span></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 8 - Utilizando comandos de impresión con el driver genérico de Windows™</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2007/01/post.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=113" title="Edición 8 - Utilizando comandos de impresión con el driver genérico de Windows™" />
    <id>tag:partners.bematech.com.br,2007:/espanol/flashtip//9.113</id>
    
    <published>2007-01-23T20:27:11Z</published>
    <updated>2007-11-21T12:57:36Z</updated>
    
    <summary><![CDATA[En este Flash Tip aprenderemos como utilizar comandos de impresi&oacute;n con el driver gen&eacute;rico de Windows. Este driver lo recomendamos para utilizaci&oacute;n conjunta con la impresora MP-20 CI. Por tratarse de un driver de spooler que solamente puede imprimir texto...]]></summary>
    <author>
        <name></name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<font face="Verdana" size="2">En este Flash Tip aprenderemos como utilizar comandos de impresi&oacute;n con el driver gen&eacute;rico de Windows. Este driver lo recomendamos para utilizaci&oacute;n conjunta con la impresora MP-20 CI. Por tratarse de un driver de spooler que solamente puede imprimir texto puro, no es posible enviar texto formateado desde su aplicaci&oacute;n.<br /><br />Sin embargo, a trav&eacute;s del driver, se pueden enviar comandos de impresi&oacute;n para configurar tama&ntilde;o de p&aacute;gina, Impresi&oacute;n en Negrita y otros.</font>]]>
        <![CDATA[<font face="Verdana" size="2">Para saber como instalar el driver generico, haga click </font><a href="http://www.bematech.com/es/support/Como%20utilizar%20el%20driver%20gen%E9rico%20de%20Windows%20con%20las%20impresoras%20Bematech.pdf"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2">. Despu&eacute;s de instalar el driver generico de Windows, haga lo siguiente:<br /><br />1) En men&uacute; Start de Windows, haga click en <em><strong>Configuraciones</strong></em> y despu&eacute;s <em><strong>Impresoras</strong></em>;<br /><br />2) En la pantalla de Impresoras, ubique la impresora <em><strong>Generic / Text Only</strong></em> y haga click con el bot&oacute;n derecho, eligiendo <em><strong>Propriedades</strong></em>;<br /><br />3) Abra la opci&oacute;n <em><strong>Comandos de impresora</strong></em>. En el campo <em><strong>Empezar trabajo de impresi&oacute;n</strong></em>, inserte el comando de impresi&oacute;n deseado. </font>
<p><font size="2">&nbsp;</font></p>
<p>
<table cellspacing="0" cellpadding="0" width="66%" align="center" border="1">
    <tbody>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%" bgcolor="#cccccc">
            <p align="center"><strong><font size="2">Configuraci&oacute;n</font></strong></p>
            </td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%" bgcolor="#cccccc">
            <p align="center"><strong><font size="2">Comando</font></strong></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%">
            <p><font size="2">Imprime el texto en Negrita</font></p>
            </td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;1B&gt;E</font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Imprime el texto en It&aacute;lico</font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;1B&gt;4 </font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%" height="19"><font size="2">Imprime el texto con caracteres Subrayados<br /></font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%" height="19">
            <p align="center"><font size="2">&lt;1B&gt;-&lt;01&gt; </font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Imprime el texto con caracteres en 24 col<br /></font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;1B&gt;W&lt;01&gt; </font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Imprime el texto con caracteres en 36 col<br /></font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;1B&gt;P </font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Imprime el texto con caracteres en 54 col</font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <div align="center"><font size="2">&lt;1B0F&gt; </font></div>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Configura el tama&ntilde;o m&iacute;nimo de p&aacute;gina para 5 l&iacute;neas. Para configurar otros tama&ntilde;os de p&aacute;gina, solo es necesario cambiar el valor &lt;05&gt; por la cantidad de l&iacute;neas (en hexadecimal) deseadas.</font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <div align="center"><font size="2">&lt;1B&gt;C&lt;05&gt;</font></div>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p><br /><font face="Verdana" color="#ff0000" size="2">Obs.: Recordando que todo el texto saldr&aacute; con las configuraciones elegidas. No es posible que solamente parte del texto salga formateado.</font></p>
<p><font size="2"><font face="Verdana">Los comandos de impresi&oacute;n, tambi&eacute;n pueden ser utilizados despu&eacute;s de la impresi&oacute;n del texto, para hacer el avance de papel o la apertura del caj&oacute;n de dinero, por ejemplo. Para eso, los comandos deben </font><font face="Verdana">ser insertados en el campo <em><strong>Finalizar trabajo de impresi&oacute;n</strong></em>.</font><br /><br /><br /></font></p>
<p>
<table width="66%" align="center" border="1">
    <tbody>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%" bgcolor="#cccccc">
            <p align="center"><strong><font size="2">Configuraci&oacute;n</font></strong></p>
            </td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%" bgcolor="#cccccc">
            <p align="center"><strong><font size="2">Comando</font></strong></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%">
            <p><font size="2">Hace la apertura del caj&oacute;n de dinero con pulso de 140 ms. La cantidad de ms debe ser configurado en hexadecimal (8C = 140)</font></p>
            </td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;1B&gt;v&lt;8C&gt;</font></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="70%"><font size="2">Avanza una l&iacute;nea despu&eacute;s de terminada la impresi&oacute;n del texto. El comando debe ser repetido de acuerdo con la cantidad de l&iacute;neas que se desea avanzar.</font></td>
            <td style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" width="30%">
            <p align="center"><font size="2">&lt;0A&gt; </font></p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p><br /><font face="Verdana" size="2">Vamos a un ejemplo: </font></p>
<p><font face="Verdana" size="2">En el ejemplo abajo vamos a configurar el tama&ntilde;o m&iacute;nimo de p&aacute;gina para 5 l&iacute;neas y que todo el texto salga en Negrita. Despu&eacute;s de la impresi&oacute;n, la impresora har&aacute; un salto de 7 l&iacute;neas y despu&eacute;s la apertura del caj&oacute;n de dinero con 140 ms de pulso.</font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com/support/downloads/com_generico.gif" /></font></p>
<p><font face="Verdana" size="2">&iexcl;Listo! Ahora usted puede utilizar su impresora Bematech con comandos de impresi&oacute;n. Para mayores informaciones acerca de los comandos de impresi&oacute;n, consulte la tabla de comandos en el manual del usu&aacute;rio .</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 7 - Como utilizar la API Aruak para integración entre la BackOffice y el SB-2030</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2006/12/como_utilizar_la_api_aruak_par_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=101" title="Edición 7 - Como utilizar la API Aruak para integración entre la BackOffice y el SB-2030" />
    <id>tag:partners.bematech.com.br,2006:/espanol/flashtip//9.101</id>
    
    <published>2006-12-18T12:53:29Z</published>
    <updated>2007-11-21T13:13:17Z</updated>
    
    <summary><![CDATA[En este FlashTip aprenderemos como utilizar la API Aruak. Para esto, usted debe hacer la descarga del paquete Aruak en nuestro s&iacute;tio en el internet. Haga&nbsp;clic aqu&iacute; para hacerlo. El paquete contiene los archivos Aruack.ocx, BemaSB32.dll y el manual de...]]></summary>
    <author>
        <name></name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<font face="Verdana" size="2">En este FlashTip aprenderemos como utilizar la API Aruak. Para esto, usted debe hacer la descarga del paquete Aruak en nuestro s&iacute;tio en el internet. Haga&nbsp;clic </font><a href="http://www.bematech.com/es/support/Aruak.zip"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2"> para hacerlo. El paquete contiene los archivos Aruack.ocx, BemaSB32.dll y el manual de la API.<br />&nbsp;</font>]]>
        <![CDATA[<font face="Verdana"><font size="2"><strong>Que es la API Aruak?</strong> </font></font>
<p><font face="Verdana" size="2">La API (<em>Application Programming Interface</em>) Aruak es un controle ActiveX que f&aacute;cilmente hace la integraci&oacute;n entre los aplicativos de Backoffice y los microterminales Bematech. El control, posee funcionalidades de registro y lectura de datos, permitiendo el gestionamiento de las operaciones de cada equipo conectado de forma independiente.</font></p>
<p><font face="Verdana" size="2">Por tratarse de un control ActiveX, este queda invisible al usuario y permite la integraci&oacute;n con distintos ambientes de desarrollo. Algunos aplicativos y plataformas que soportan la API:</font></p>
<blockquote>
<p><font face="Verdana" size="2">&bull; Visual Basic<br />&bull; Visual C++<br />&bull; Access<br />&bull; Excel<br />&bull; Visual InterDev<br />&bull; PowerBuilder<br />&bull; Delphi<br />&bull; C++ Builder<br />&bull; .NET<br />&bull; Visual FoxPro</font></p>
</blockquote>
<p><font face="Verdana" size="2">Antes de trabajar con la API, debemos instalarla en el ambiente de desarrollo. El ambiente que vamos a utilizar en el ejemplo es <strong>Delphi</strong>.</font></p>
<p><font face="Verdana" size="2">1) El primer paso es salvar los archivos <em><strong>aruack.ocx</strong></em> y <strong><em>bemasb32.dll</em></strong> del paquete en el direct&oacute;rio System32 de Windows. Depu&eacute;s, debemos hacer el registro de la API a trav&eacute;s del comando <strong><em>regsvr32 aruack.ocx</em></strong>. No es necesario registrar la DLL.</font></p>
<p><font face="Verdana" size="2">2) En Delphi, seleccione el men&uacute; <em>Component &gt; Import ActiveX Control</em>. En el listado que se exhibe, haga click en <em>Aruak ActiveX Control module</em> e despu&eacute;s en <em>Install</em>. El control Aruak va a estar disponible en la barra de herramientas, s&oacute;lo es necesario localizarlo e ponerlo en el Form.</font></p>
<p><font face="Verdana" size="2">En el ejemplo que vamos a desarrollar, haremos la inicializaci&oacute;n del control, adicionaremos un terminal al cual vamos monitorear y una recuperaci&oacute;n de un LOG de venta. </font></p>
<p><font face="Verdana" size="2">3) En el evento de inicializaci&oacute;n del Form o en otra &aacute;rea de inicializaci&oacute;n del aplicativo debemos configurar el tipo de terminal e inicializarlo:</font></p>
<p><font face="Courier New" size="2">procedure TForm1.FormCreate(Sender: TObject);<br />begin<br />&nbsp;&nbsp; ComponenteAruak.Family := 4; <font color="#0000ff">//Codigo del producto, en este caso SB-2030</font><br />&nbsp;&nbsp; ComponenteAruak.WorkingPath := ExtractFilePath(Application.ExeName);<br />&nbsp;&nbsp; ComponenteAruak.StartServer; <font color="#0000ff">//Empieza el server</font> </font></p>
<p><font size="2"><font face="Courier New">end;<br /><font color="#0000ff">{&iexcl;La declaraci&oacute;n del producto debe venir siempre antes de la inicializaci&oacute;n del control!}</font></font> <br /></font></p>
<p><font face="Verdana" size="2">4) Ahora vamos adicionar el terminal que ser&aacute; monitoreado. Crearemos dos campos, donde se informan el numero de terminal y su direcci&oacute;n.<br /></font></p>
<p><font face="Courier New" size="2">procedure TForm1.btnAdicionarClick(Sender: TObject);<br />begin<br />&nbsp;&nbsp; if (IDTerminal.Text &lt;&gt; '') and (dirTerminal.Text &lt;&gt; '' ) then<br />&nbsp;&nbsp; begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( ComponenteAruak.AddTerminal( strtoint( IDTerminal.Text ), ubiTerminal.Text ) ) then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.MessageBox( <font color="#0000ff">'Terminal adicionado con &eacute;xito!'</font>, <font color="#0000ff">'Atenci&oacute;n'</font>, MB_IconInformation + MB_OK );<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.MessageBox( <font color="#0000ff">'Error al adicionar el terminal!'</font>, <font color="#0000ff">'Error'</font>, MB_IconError + MB_OK );<br />&nbsp;&nbsp; end;<br />end;</font></p>
<p><font face="Verdana" size="2">5) Despu&eacute;s vamos a crear tres campos donde se informan el numero inicial y final del cup&oacute;n que deseamos recuperar del LOG de venta. Tambi&eacute;n es necesario que se informe desde cual terminal deseamos recuperar el LOG. La recuperaci&oacute;n ser&aacute; exhibida en una pantalla en forma de &aacute;rbol.<br /></font></p>
<p><font face="Courier New" size="2">procedure TForm1.Button1Click(Sender: TObject);<br />var<br />&nbsp;&nbsp; CupomList: Coupons;<br />&nbsp;&nbsp; cupom : Coupon;<br />&nbsp;&nbsp; i, j : integer;<br />&nbsp;&nbsp; node : TTreeNode;<br />&nbsp;&nbsp; nodeItem : TTreeNode;<br />&nbsp;&nbsp; nodeFormas : TTreeNode;<br />&nbsp;&nbsp; itens : RegisteredItems;<br />begin<br />&nbsp;&nbsp; CupomList := ComponenteAruak.GetLoggedCoupons( strtoint( txtIDLogVendas.Text ), strtoint( txtCOOInicial.Text ), strtoint( txtCOOFinal.Text ) );</font></p>
<p><font face="Courier New" size="2">&nbsp;&nbsp; TreeView1.Items.Clear;</font></p>
<p><font face="Courier New" size="2">&nbsp;&nbsp; for i := <font color="#0000ff">1</font> to CupomList.Count do<br />&nbsp;&nbsp; begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cupom := CupomList.Item[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; node := TreeView1.Items.Add(nil,<font color="#0000ff">'COO:'</font> + intToStr(cupom.Number) + <font color="#0000ff">' Total:'</font> + floattostr(cupom.Subtotal));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itens := cupom.Items;</font></p>
<p><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeItem := TreeView1.Items.AddChild(node,<font color="#0000ff">'&Iacute;tens'</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>for</strong> j := <font color="#0000ff">1</font> <strong>to</strong> itens.Count do<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeItem := TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'&Iacute;tem: '</font> + IntToStr(j));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Codigo : '</font> + itens.Item[j].Code);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Cantidad : '</font> + intToStr(itens.Item[j].Quantity));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Precio : '</font> + FloatToStr(itens.Item[j].UnitValue));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Descuento : '</font> + FloatToStr(itens.Item[j].Discount));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Incremento : '</font> + FloatToStr(itens.Item[j].Increase));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeItem,<font color="#0000ff">'Total : '</font> + FloatToStr(itens.Item[j].TotalValue));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeItem := nodeItem.Parent;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeFormas := TreeView1.Items.AddChild(node,<font color="#0000ff">'Formas de Pago'</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j := <font color="#0000ff">1</font> to CupomList.Item[i].Payments.Count do<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView1.Items.AddChild(nodeFormas,<font color="#0000ff">'&Iacute;ndice: '</font> + intToStr(CupomList.Item[i].Payments.Item[j].Index) + ' Valor: ' + FloatToStr(CupomList.Item[i].Payments.Item[j].Amount));<br />&nbsp;&nbsp; end;<br />end;</font></p>
<p><font face="Verdana" size="2">El ejemplo completo con c&oacute;digo fuente esta en nuestro s&iacute;tio, usted puede descargarlo haciendo&nbsp;clic </font><a href="http://www.bematech.com/es/support/Ejemplo_Aruak.zip"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2">.</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 6 - Como utilizar las funciones del dll en C#</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2006/06/como_utilizar_las_funciones_de_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=68" title="Edición 6 - Como utilizar las funciones del dll en C#" />
    <id>tag:partners.bematech.com.br,2006:/espanol/flashtip//9.68</id>
    
    <published>2006-06-16T18:06:56Z</published>
    <updated>2007-11-22T15:18:58Z</updated>
    
    <summary><![CDATA[En este FlashTip aprenderemos como utilizar las funciones del dll de Bematech con el lenguaje C#. Para esto usted debe hacer el download del dll en nuestro s&iacute;tio en el internet. Haga un click aqu&iacute; para hacer el download.Hecho esto,...]]></summary>
    <author>
        <name>Rafael Ribas</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<font face="Verdana" size="1"><img height="15" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/venezuela_flag-t.gif" width="25" /><br /><br /><font size="2">En este FlashTip aprenderemos como utilizar las funciones del dll de Bematech con el lenguaje C#. Para esto usted debe hacer el download del dll en nuestro s&iacute;tio en el internet. Haga un click </font></font><a href="http://www.bematech.com/support/downloads/BemaFI32_ES.zip"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2"> para hacer el download.<br />Hecho esto, usted debe abrir su software en C# en el Visual Studio .NET y siga con los pasos abajo.</font>]]>
        <![CDATA[<p><font face="Verdana" size="2">1) Cree un archivo .cs para declarar las funciones. El ejemplo de abajo muestra solamente algunas funciones, para mayor informaci&oacute;n consulte el Help del dll.<br /><br /></font></p>
<p align="left"><font size="2"><font face="Courier New"><font color="#0000ff">namespace</font> FiscalPrinterBematech<br />{<br />&nbsp;&nbsp;&nbsp;<font color="#0000ff">public class</font> BemaFI32<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int&nbsp;</font>Bematech_FI_AbreComprobanteDeVenta(<font color="#0000ff">string </font>RIF, <font color="#0000ff">string</font> Nombre);<br /></font></font></p>
<p align="left"><font size="2"><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int</font> Bematech_FI_VendeArticulo(<font color="#0000ff">string </font>Codigo, <font color="#0000ff">string</font> Descripcion, <font color="#0000ff">string</font>&nbsp;Alicuota,<font color="#0000ff">string</font> TipoCantidad, <font color="#0000ff">string</font> Cantidad, <font color="#0000ff">int</font> CasasDecimales,<font color="#0000ff">string</font>&nbsp;ValorUnitario<font color="#000000">,</font></font></font><font size="2"><font face="Courier New"><font color="#0000ff">string</font> TipoDescuento, <br /><font color="#0000ff">string</font> Descuento);<br /></font></font></p>
<p align="left"><font size="2"><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int</font>&nbsp;Bematech_FI_CierraCupon(<font color="#0000ff">string</font> FormaPago, <font color="#0000ff">string</font> IncrementoDescuento,<font color="#0000ff">string</font>&nbsp;TipoIncrementoDescuento, <font color="#0000ff">string </font></font></font><font face="Courier New" size="2">ValorIncrementoDescuento,<br /><font color="#0000ff">string</font><font color="#0000ff">&nbsp;</font>ValorPago,<font color="#0000ff">string </font>Mensaje); <br /></font></p>
<p align="left"><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int&nbsp;</font>Bematech_FI_IniciaCierreCupon(<font color="#0000ff">string</font> IncrementoDescuento, <font color="#0000ff">string&nbsp;</font>TipoIncrementoDescuento, <font color="#0000ff">string</font> ValorIncrementoDescuento); <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int</font>&nbsp;&nbsp;Bematech_FI_EfectuaFormaPago(<font color="#0000ff">string</font> FormaPago,<font color="#0000ff"> string </font>ValorFormaPago);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&quot;BemaFi32.dll&quot;)] <font color="#0000ff">public static extern int</font>&nbsp;Bematech_FI_Autenticacion();&nbsp;<br /><br /></font><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br /></font></p>
<p><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;}<br />} </font></p>
<p><font size="2"><font face="Courier New"><font face="Verdana">2) Abajo siguen ejemplos de como utilizar las funciones declaradas arriba. Observen que estamos importando el namespace </font><font color="#0000ff"><font face="Verdana">FiscalPrinterBematech, <font color="#000000">que corresponde al archivo creado arriba.</font></font> </font></font></font></p>
<p><font face="Courier New" size="2">...<br /><font color="#0000ff">using</font> FiscalPrinterBematech;<br />{<br />...<br /></font><font color="#0000ff"><br /><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;private void</font></font><font face="Courier New" size="2"> mnuAbrirComprobante_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno = BemaFI32.Bematech_FI_AbreComprobanteDeVenta(&quot;123.456.789-<font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>10&quot;,&quot;Fulano&quot;); <br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>}</font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;private void</font> mnuVenderArticulo_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno =<font color="#0000ff"> </font>BemaFI32.Bematech_FI_VendeArticulo(&quot;123&quot;,&quot;Pantalon&quot;,<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>&quot;FF&quot;,&quot;I&quot;,&quot;2&quot;,2,&quot;350,00&quot;,&quot;%&quot;,&quot;0100&quot;);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>}</font></font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;private void</font> mnuEmpezaCierre_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno = BemaFI32.Bematech_FI_IniciaCierreCupon(&quot;A&quot;,&quot;%&quot;,&quot;0000&quot;);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>}</font></font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;private void</font> mnuFormadePago_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno = BemaFI32.Bematech_FI_EfectuaFormaPago(&quot;Efectivo&quot;,&quot;5000,00&quot;);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>}</font></font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;private void</font> mnuFinalizaCierre_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno =<font color="#0000ff"> </font>BemaFI32.Bematech_FI_CierraCupon(&quot;Tarjeta&quot;,&quot;A&quot;,&quot;%&quot;,&quot;0000&quot;,<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font> <font color="#0000ff">&nbsp;&nbsp;</font>&quot;5000,00&quot;,&quot;Vuelva <font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>Siempre!&quot;);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>}<br /></font></font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;private void</font> mnuAutenticacion_Click(<font color="#0000ff">object</font> sender, System.EventArgs e)<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>{<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>IRetorno = BemaFI32.Bematech_FI_Autenticacion();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_iRetorno(IRetorno);<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>BemaFI32.Analisa_RetornoImpresora();<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>} </font></font></p>
<p><font size="2"><font face="Courier New"><font color="#0000ff">&nbsp;&nbsp;&nbsp;</font>... <strong></strong></font></font></p>
<p><font face="Courier New" size="2">}</font></p>
<p><font face="Verdana" size="2">El ejemplo completo con c&oacute;digo fuente esta en nuestro s&iacute;tio, usted puede hacer el download haciendo un click </font><a href="http://www.bematech.com/support/downloads/EjemploCSharp.zip"><font face="Verdana" size="2">aqu&iacute;</font></a><font face="Verdana" size="2">.</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 5 - Funciones del Dll para Impresoras Fiscales Bematech</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2006/06/funciones_del_dll_para_impreso.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=67" title="Edición 5 - Funciones del Dll para Impresoras Fiscales Bematech" />
    <id>tag:partners.bematech.com.br,2006:/espanol/flashtip//9.67</id>
    
    <published>2006-06-09T17:58:18Z</published>
    <updated>2007-11-22T14:58:07Z</updated>
    
    <summary> En este FlashTip aprenderemos como declarar y utilizar las funciones del dll BemaFI32 para las impresoras fiscales Bematech. Pero para que podamos utilizar el dll de Bematech es necesario saber como configurar y donde se debe grabar el dll.El...</summary>
    <author>
        <name>Rafael Ribas</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p><span class="txttitulo"><strong><img height="15" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/venezuela_flag-t.gif" width="25" /></strong></span></p>
<p><span class="txttitulo"><font face="Verdana" size="2">En este FlashTip aprenderemos como declarar y utilizar las funciones del dll BemaFI32 para las impresoras fiscales Bematech. Pero para que podamos utilizar el dll de Bematech es necesario saber como configurar y donde se debe grabar el dll.<br /><br />El dll debe ser grabado en el directorio de sistema de Windows, junto con el archivo BemaFI32.ini (archivo de configuraci&oacute;n del dll). </font></span></p>]]>
        <![CDATA[<strong><font face="Verdana" size="2">Ejemplo: </font></strong>
<p><font face="Verdana"><font size="2">C:\WINDOWS\SYSTEM <br />C:\WINNT\SYSTEM32 <br /><br />El dll BemaFI32.dll posee un archivo de configuraci&oacute;n llamado BemaFI32.ini en el que algunas opciones pueden ser configuradas. Ese archivo de configuraci&oacute;n posee secciones con algunos par&aacute;metros de configuraci&oacute;n que vemos a continuaci&oacute;n: <br /><br /><strong>Secci&oacute;n [Sistema] </strong><br />Esa secci&oacute;n posee las siguientes opciones de configuraci&oacute;n:<br /><br /><strong><u>Puerta: </u></strong><br />Indica el puerto serial de comunicaci&oacute;n entre la impresora y el micro. Caso el valor sea igual a &quot;DEFAULT&quot;, el DLL buscar&aacute; el puerto donde est&aacute; la impresora, automaticamente. <br /><br /><strong><u>Path: </u></strong><br />Configura el directorio donde ser&aacute; creado el archivo &quot;STATUS.TXT&quot;, &quot;RETORNO.TXT&quot; y &quot;BEMAFI32.LOG&quot;. El path default es el directorio ra&iacute;z en la unidad C:\. <br /><br /><strong><u>Status:</u></strong> <br />Caso esa opci&oacute;n est&eacute; con el valor 1, las funciones del dll van a grabar el status de la impresora (ACK, ST1 y ST2) en el archivo llamado &quot;STATUS.TXT&quot;. El valor default de esa opci&oacute;n es 0, con el status de la impresora volviendo a trav&eacute;s de la funci&oacute;n Bematech_FI_RetornoImpressora. <br /><br /><strong><u>Retorno:</u></strong> <br />Caso esa opci&oacute;n est&eacute; con el valor 1, las Funciones de Informaciones* del dll van a grabar el retorno en el archivo llamado &quot;RETORNO.TXT &quot;. El valor default de esa opci&oacute;n es 0, con las informaciones siendo retornadas a trav&eacute;s de las variables pasadas como par&aacute;metro en las funciones. <br /><br /><strong><u>StatusFuncion: </u></strong><br />Esta llave configura el dll para retornar el valor &ndash;27 en las funciones, cuando el status de la impresora (ACK, ST1, ST2) sea diferente de 6,0,0. Con esa configuraci&oacute;n, la funci&oacute;n Bematech_FI_RetornoImpresora podr&aacute; ser ejecutada solamente cuando el retorno sea &ndash;27. El valor uno &quot;1&quot; habilita y el valor cero &quot;0&quot; deshabilita esa configuraci&oacute;n. El valor default es cero &quot;0&quot;. <br /><br /><strong><u>ControlPuerta: </u></strong><br />Caso est&eacute; con el valor 0, la apertura y el cierre del puerto ser&aacute;n controlados por el programador.En caso que est&eacute; con el valor 1, ser&aacute;n controlados por el dll. El dll va a abrir y cerrar la puerto automaticamente en cada funci&oacute;n. Es recomendable que el control del puerto sea realizado por el programador y que esta sea abierta al inicio de la ejecuci&oacute;n del programa y encerrada solamente al final de la ejecuci&oacute;n. <br /><br /><strong><u>ModeloImp: </u></strong><br />Es utilizada para identificar qu&eacute; tipo de impresora fiscal est&aacute; siendo usada. En nuestro caso utilizaremos BEMATECH como configuraci&oacute;n.<br /><br /><strong><u>Pais: </u></strong><br />Es utilizada para identificar el Pais donde la impresora es utilizada (Pais=VENEZUELA) <br /><br /><strong>ConfigRede: </strong><br />Identifica el modo en que ser&aacute; utilizada el dll. En caso que sea igual a 0 (cero) - modo de utilizaci&oacute;n normal, caso sea igual a 1 (uno) - modo de utilizaci&oacute;n por el servidor y caso sea igual a 2 (dos) - modo de utilizaci&oacute;n por el terminal (Cliente). En caso que esta llave sea diferente de 0 (cero), el dll tendr&aacute; su funcionalidad remota (cliente / Servidor), con el uso del Windows Terminal Server o del Frame-Relay.<br /><br /><strong><u>ModoGaveta:</u> </strong><br />Es utilizada para compatibilizar la se&ntilde;al l&oacute;gica que la gaveta env&iacute;a a la impresora, cuando es accionada (abierta) o no. El Default es 0 (cero), es decir, la se&ntilde;al enviada por la gaveta es la misma retornada por la DLL. En algunos modelos de gaveta, esta se&ntilde;al podr&aacute; venir invertida, es decir, la se&ntilde;al que corresponde a la gaveta abierta &quot;gaveta aberta &quot;, puede ser la se&ntilde;al para la gaveta cerrada &quot;gaveta fechada &quot;. En este caso habilite esta llave, sustituyendo el valor 0 (cero) para (1) uno. <br /><br /><strong><u>Log:</u></strong> <br />En caso que esta opci&oacute;n est&eacute; con el valor 1, el DLL crear&aacute; un archivo de log llamado &quot;BEMAFI32.LOG&quot; con todas las funciones ejecutadas, sus par&aacute;metros y valores de retorno. <br /><br />Ahora podemos empezar a utilizar las funciones del dll. Primero debemos declarar las funciones en nuestro software para que estas puedan ser ejecutadas. La sintaxis de declaraci&oacute;n de las funciones es: BemaFI32_[Nombre de la funci&oacute;n](Par&aacute;metros que seran utilizados)<br /><br />Declare las funciones del dll en el Load de su FORM principal. El ejemplo de abajo muestra solamente algunas funciones, para mayor informaci&oacute;n consulte el Help del dll.<br /><br /><br /></font><font size="2"><font face="Courier New"><font color="#0000ff">DECLARE INTEGER Bematech_FI_AbreComprobanteDeVenta IN &quot;BemaFi32.dll&quot;;<br />STRING RIF,;<br />STRING NOMBRE<br /><br />DECLARE INTEGER Bematech_FI_VendeArticulo IN &quot;BemaFi32.dll&quot;;<br />STRING Codigo,;<br />STRING Descripcion,;<br />STRING Alicuota,;<br />STRING TipoCtd,;<br />STRING Cantidad,;<br />INTEGER CasasDecimales,;<br />STRING ValorUnitario,;<br />STRING TipoDesc,;<br />STRING ValorDesc<br /><br />DECLARE INTEGER Bematech_FI_IniciaCierreCupon IN &quot;BemaFi32.dll&quot;;<br />STRING IncrDesc,;<br />STRING TipoIncrDesc,;<br />STRING ValorIncrDesc<br /><br />DECLARE INTEGER Bematech_FI_EfectuaFormaPago IN &quot;BemaFi32.dll&quot;;<br />STRING FormaPago,;<br />STRING ValorFormaPago <br /><br />DECLARE INTEGER Bematech_FI_FinalizarCierreCupon IN &quot;BemaFi32.dll&quot;;<br />STRING Mensaje</font> </font></font>
<p><font color="#0000ff"><font size="2"><font face="Courier New">...<br /></font><br /></font><font color="#000000"><font size="2">Abajo siguen ejemplos de como utilizar las funciones declaradas arriba<br /><br /></font>
<p><font color="#0000ff"><font size="2"><font face="Courier New"><strong>&amp;&amp;Abrir Comprobante</strong><br /><br />cNombre = &quot;Fulano&quot;<br />cRIF = &quot;111111111111-11&quot;<br /><br />iRetorno = Bematech_FI_AbreComprobanteDeVenta(cRIF,cNombre)<br /><br /><strong>&amp;&amp;Vender Art&iacute;culo</strong><br /><br />cCodigo = &quot;123&quot;<br />cDescripcion = &quot;Frijoles&quot;<br />cAlicuota = &quot;II&quot;<br />cTipoCtd = &quot;I&quot;<br />cCtd = &quot;1&quot;<br />cValor = &quot;35,00&quot;<br />cTipo = &quot;%&quot;<br />cDesc = &quot;0&quot;</font></font></font></p>
<p><font face="Courier New" color="#0000ff" size="2">iRetorno = Bematech_FI_VendeArticulo( cCodigo, cDescripcion, cAlicuota, cTipoCtd, cCtd, 2, cValor, cTipo, cDesc )<br /></font></p>
<p><font color="#0000ff"><font size="2"><font face="Courier New"><strong>&amp;&amp;Empieza cierre Cup&oacute;n<br /><br /></strong>cIncremDesc = &quot;D&quot;<br />cTipoIncremDesc = &quot;%&quot;<br />cValorIncremDesc = &quot;0&quot;<br /><br />iRetorno = Bematech_FI_IniciaCierreCupon(cIncremDesc,cTipoIncremDesc,<br />cValorIncremDesc) <br /><br /><strong>&amp;&amp;Efectua Forma de Pago</strong><br /></font></font></font></p>
<p><font face="Courier New" color="#0000ff" size="2">cFormaPago = &quot;Dinero&quot;<br />cValorFormaPago = &quot;50,00&quot;</font></p>
<p><font face="Courier New" color="#0000ff" size="2">iRetorno = Bematech_FI_EfectuaFormaPago(cFormaPago,cValorFormaPago)</font></p>
<p><font color="#0000ff"><font size="2"><font face="Courier New"><strong>&amp;&amp;Finaliza Cierre Cup&oacute;n <br /><br /></strong>cMensaje = &quot;Vuelva Siempre&quot;</font></font></font></p>
<p><font face="Courier New" color="#0000ff" size="2">iRetorno = Bematech_FI_FinalizarCierreCupon(cMensaje</font></p>
<p><br /><font color="#000000" size="2">El ejemplo completo con c&oacute;digo fuente esta en nuestro s&iacute;tio, usted puede hacer el download haciendo un click </font><a href="http://www.bematech.com/support/downloads/EjemploFoxPro.zip"><font size="2">aqu&iacute;</font></a><font color="#000000" size="2">.</font></p>
</font></font></p>
</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 4 - Utilizando comandos de impresión en el driver genérico de Windows</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2006/05/utilizando_comandos_de_impresi_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=59" title="Edición 4 - Utilizando comandos de impresión en el driver genérico de Windows" />
    <id>tag:partners.bematech.com.br,2006:/espanol/flashtip//9.59</id>
    
    <published>2006-05-24T14:17:31Z</published>
    <updated>2007-11-22T15:05:52Z</updated>
    
    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;En este FlashTip aprenderemos como utilizar comandos de impresi&oacute;n en el driver gen&eacute;rico de windows. Estos comandos son para configurar el avance del papel, impresi&oacute;n en negrita, accionamiento de gaveta y otros.Primero debemos seguir los seguientes pasos:...]]></summary>
    <author>
        <name>Rafael Ribas</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p align="justify"><font size="2"><img height="15" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/venezuela_flag-t.gif" width="25" />&nbsp;<img height="13" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/ar-t.gif" width="25" />&nbsp;<img style="WIDTH: 25px; HEIGHT: 14px" height="19" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/bolivia-t.gif" width="25" />&nbsp;<img style="WIDTH: 22px; HEIGHT: 12px" height="16" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/chile_flag-t.gif" width="23" />&nbsp;<img height="15" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/colombia-t.gif" width="25" />&nbsp;<img height="16" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/pe-t.gif" width="23" />&nbsp;<img height="15" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/py-t.gif" width="23" />&nbsp;<img height="16" alt="" src="http://partners.bematech.com.br/mt/mt-static/FCKeditor/UserFiles/Image/uruguay-t.gif" width="23" /><br /><br /></font><font face="Verdana" size="2">En este FlashTip aprenderemos como utilizar comandos de impresi&oacute;n en el driver gen&eacute;rico de windows. Estos comandos son para configurar el avance del papel, impresi&oacute;n en negrita, accionamiento de gaveta y otros.<br /><br />Primero debemos seguir los seguientes pasos:</font></p>]]>
        <![CDATA[<p><font face="Verdana" size="2">1) Abra el menu de impresora y faxes. Hecho esto haga un click con el bot&oacute;n derecho del mouse en la impresora Generic/Text Only.<br /><br />2) Click en Propiedades y la ventana de configuraci&oacute;n abrir&aacute;, ahora haga click en Comandos de impresora. <br /><br />Entonces podemos empezar a configurar los comandos de la impresora. Para configurar el avance del papel escriba la siguiente secuencia de comandos, tal como muestra la figura de abajo.</font> </p>
<p align="center"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/tlaavanzo.jpg" align="absMiddle" /></p>
<p><font size="2"><font face="Verdana">Usted tambi&eacute;n puede configurar la impresi&oacute;n para que salga toda en negrita. El comando abajo salta 5 l&iacute;neas e imprime todo el texto en negrita. Recordando que todo el texto salir&aacute; en negrita, en esta configuraci&oacute;n no hay como configurar para que solamente una l&iacute;nea salga en negrita, it&aacute;lico o subrayado.</font><br /></font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/tlaavanzo_enfatizado.jpg" align="absMiddle" /></font></p>
<p align="justify"><font face="Verdana" size="2">El comando en la figura de abajo hace que la impresi&oacute;n, salte 5 l&iacute;neas y al final abra la gaveta con un espacio de tiempo de 140 milisegundos. Los comandos de configuraci&oacute;n de p&aacute;gina y formateo son insertados en el campo &quot;Empezar trabajo de impresi&oacute;n&quot; y los de fin de p&aacute;gina, corte de papel y accionamiento de gaveta son insertados en el campo &quot;Finalizar trabajo de impresi&oacute;n&quot;.</font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/tlaavanzo_gaveta.jpg" align="absMiddle" /></font></p>
<p><font face="Verdana" size="2">&iexcl;Listo!! Ahora usted puede utilizar su impresora Bematech con comandos de impresi&oacute;n. Para mayor informaci&oacute;n sobre otros comandos de impresi&oacute;n, verifique en el manual la tabla de comandos.<br /><br />Observaci&oacute;n: Los comandos &lt;1B&gt;C&lt;05&gt; solo funcionan para las versiones NT/2000/XP/2003 de Windows, para las versiones inferiores usted debe presionar la tecla ESC, insertar la letra C + n&uacute;mero de l&iacute;neas(caracter ASCII). <br /><br />En el pr&oacute;ximo FlashTip aprenderemos como utilizar el DLL de comunicaci&oacute;n con la Impresora Fiscal Bematech.</font></p>]]>
    </content>
</entry>
<entry>
    <title>Edición 3 - Como utilizar el driver genérico de Windows con las impresoras Bematech</title>
    <link rel="alternate" type="text/html" href="http://partners.bematech.com.br/espanol/flashtip/2006/05/como_utilizar_el_driver_generi.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://partners.bematech.com.br/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=58" title="Edición 3 - Como utilizar el driver genérico de Windows con las impresoras Bematech" />
    <id>tag:partners.bematech.com.br,2006:/espanol/flashtip//9.58</id>
    
    <published>2006-05-16T12:28:05Z</published>
    <updated>2007-11-22T15:08:20Z</updated>
    
    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;En este FlashTip aprenderemos como instalar el Driver Gen&eacute;rico de Windows para utilizar con las impresoras no fiscales Bematech. Recordando que es un Driver desarrollado por la Microsoft y que es compatible con las Impresoras Bematech.Primeramente debemos seguir los seguientes...]]></summary>
    <author>
        <name>Rafael Ribas</name>
        
    </author>
            <category term="Información Técnica" />
    
    <content type="html" xml:lang="es" xml:base="http://partners.bematech.com.br/espanol/flashtip/">
        <![CDATA[<p><font size="2"><img height="15" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/venezuela_flag-t.gif" width="25" />&nbsp;<img height="13" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/ar-t.gif" width="25" />&nbsp;<img style="WIDTH: 25px; HEIGHT: 14px" height="19" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/bolivia-t.gif" width="25" />&nbsp;<img style="WIDTH: 22px; HEIGHT: 12px" height="16" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/chile_flag-t.gif" width="23" />&nbsp;<img height="15" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/colombia-t.gif" width="25" />&nbsp;<img height="16" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/pe-t.gif" width="23" />&nbsp;<img height="15" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/py-t.gif" width="23" />&nbsp;<img height="16" alt="" src="/mt/mt-static/FCKeditor/UserFiles/Image/uruguay-t.gif" width="23" /><br /><br /></font><font face="Verdana" size="2">En este FlashTip aprenderemos como instalar el Driver Gen&eacute;rico de Windows para utilizar con las impresoras no fiscales Bematech. Recordando que es un Driver desarrollado por la Microsoft y que es compatible con las Impresoras Bematech.<br />Primeramente debemos seguir los seguientes pasos:</font></p>]]>
        <![CDATA[<p><font face="Verdana" size="2">1) Agregue una nueva impresora en el sistema. Para esto usted debe hacer click en el bot&oacute;n Start de <br />Windows &gt;Configuraciones&gt;Impresoras.<br /><br />2) Despu&eacute;s de abrir la ventana de Impresoras instaladas en el sistema, usted debe instalar una nueva impresora.<br /><br />3) El asistente de instalaci&oacute;n de impresoras debe abrir, click en Seguiente. La ventana abajo surgir&aacute;.</font></p>
<p><font size="2"></font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/impr01.jpg" align="middle" /></font></p>
<p><font size="2">4<font face="Verdana">) Seleccione la opci&oacute;n &quot;Impresora Local conectada en este equipo&quot;. No dejar la opci&oacute;n Plug and Play seleccionada.</font></font></p>
<p><font size="2"></font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/impr02.jpg" align="middle" /></font></p>
<p><font face="Verdana" size="2">5) Utilizar el puerto LPT1 (paralelo) o puerto serie caso su impresora tenga esta salida disponible.</font></p>
<p><font size="2"></font></p>
<p align="center"><font size="2"><img alt="" src="http://www.bematech.com.br/marketing/fasttip/impr04.jpg" align="middle" /></font></p>
<font face="Verdana" size="2">Hecho esto, usted debe buscar en la lista &quot;Fabricante&quot; la opci&oacute;n &quot;Gen&eacute;rica&quot; y el primer driver Generic/TextOnly en la lista &quot;Impresoras&quot;. Despu&eacute;s de configurar la impresora como default, seleccionar el nombre de la impresora, usted debe hacer una impresi&oacute;n de prueba. <br /><br />&iexcl;Listo! Su impresora Bematech ya est&aacute; configurada para trabajar con el Driver Gen&eacute;rico de Windows.<br /><br />En el pr&oacute;ximo FlashTip usted aprender&aacute; como configurar este driver con los comandos (configurar tama&ntilde;o de papel, modos de impresi&oacute;n y etc.) de la Impresora Bematech.</font>]]>
    </content>
</entry>

</feed> 

