Skip to content

Configurando mediante config.ini

Gonzalo Hourcade edited this page Feb 22, 2019 · 9 revisions

config.ini: Es el archivo de configuracion, básicamente tiene el dato donde se le deberá indicar el nombre de la impresora como nombre de sección, y luego definir que Comando y Driver se va a utilizar. El nombre de la impresora va a ser el nombre que busque el servidor cuando reciba el JSON desde el cliente.

El comando define la Marca y Modelo. Mientras que el driver define la salida. Cada Marca y Modelo tiene un Driver por defecto (selecconar el driver en la configuracion es opcional, pero recomendado). El driver sirve ser modificado para el testing o desarrollo, usando los Drivers: Dummy, File o Txt.

Comandos disponibles

  • Bematech
  • Epson
  • EscP
  • Hasar2Gen
  • Sam4s2Gen
  • Hasar

es decir que estas son las opciones para la variable marca. El modelo es opcional, y cada comando tiene un listado de modelos disponibles.

# .......
AVAILABLE_MODELS = []

Drivers disponibles

  • Dummy (para debugg)
  • Txt (para debugg)
  • File (para debugg)
  • ReceiptFile (para comanderas o para enviar -en linux- a algun dev como file)
  • Epson (para fiscales marca Epson)
  • Hasar (para fiscales marca Hasar)
  • Json (envia un JSON a un host determinado, se usa en la Hasar 2 gen)
  • ReceiptDirectJet (para comanderas wthernet)
  • ReceiptSerial (para comanderas serial)
  • ReceiptUSB (para comanderas USB)

en el caso de las ultimas, se usa el modulo python-escpos el cual recomendamos leer para conectar las comanderas

Ejemplos de configuracion:

[impresora_fiscal]  
marca = Hasar  
modelo = 715v2
path = /dev/ttyUSB0
driver = Hasar
marca = Hasar  
modelo = ["615", "715v1", "715v2", "320"]
marca = Epson
modelo = ["tickeadoras", "epsonlx300+", "tm-2000-af", "tm-220-af", "tm-t900fa", "sm-srp-270"]

Ademas se le podrá pasar parametros determinados por el constructor del Driver (init) Por ejemplo, si se usa el driver FileDriver, hay que agregar, como configuracion de esa impresora un "path", tal como es requerido en el init de la clase FileDriver.

[impresora1]  
marca = EscP  
driver = File  
path = /tmp/archivo_salida.txt

Mientras que para usar el driver ReceiptDirectJetDriver hay que pasarle el host obligatoriamente, y, opcionalmente port, timeout y codepage.

[impresora2]  
marca = EscP  
driver = ReceiptDirectJet  
host = 192.168.1.100

o, si no quiero usar los valores port, y codepage que vienen por defecto, puedo sobreescribirlos:

[impresora2]  
marca = EscP  
driver = ReceiptDirectJet  
host = 192.168.1.100  
port = 9012  
codepage=cp866  

Configuración del Servidor de Websockets

[SERVIDOR]  
puerto = 12000

Drivers disponibles y cómo se configuran?

Driver ReceiptDirectJet

Sirve para impresoras que funcionan en RED, que tienen conexion ethernet.

Variables de configuracion en el config.ini para impresoras con el driver ReceiptDirectJet:

  • host *REQUERIDO Numero Ip o hostname de la impresora receipt (comandera)
  • port default 9100, puerto donde escucha la impresora
  • timeout default 10 segundos por defecto
  • codepage default cp858

Ej:

[impresora Direct Ject Comandera]  
host = 192.168.1.250

Driver Dummy

Es un driver que sirve para testing, cuando no tengo la impresora, puedo usarl el Dummy para no obtener salida alguna.

Driver JSON

Es un driver para envió de comandos en formato JSON a una URL.

Variables de configuracion en el config.ini para impresoras con el driver JSON:

  • host *REQUERIDO Numero Ip o hostname de la impresora
  • port default 80, puerto donde escucha la impresora
  • after_port default empty string "", string que prosigue a la ip / hostname de la impresora (el path). Por ej: 192.168.1.123:80/ifcmd.json o 192.168.1.123:80/fiscal.json
  • user default None, usuario para autenticar y poder enviar comando a la impresora.
  • password default None, password para autenticar y poder enviar comando a la impresora.

Luego, la impresora se configurara de la siguiente manera:

[samas_2g]
driver = Json
marca = Sam4s2Gen
host = 192.168.1.123
after_port = ifcmd.json
user = user
password = password

Driver USB

Sirve para las impresoras conectadas por puerto USB. Para hacer uso de este driver es necesario obtener los siguientes datos: id_vendor, id_product, interface, in_ep y out_ep. En el siguiente enlace encontrarás los pasos a seguir para obtener esos datos: https://pythonhosted.org/python-printer-escpos/manual/connections/usb.html#getting-vendor-id-and-product-id

Luego, la impresora se configurara de la siguiente manera:

[IMPRESORA_USB]
marca = EscP
driver = ReceiptUSB
usb_vendor = 0x1c8a
usb_product = 0x3a0e
in_ep = 0x81
out_ep = 0x02