Fix: Test impresora fisica

This commit is contained in:
Rodia 2024-10-19 13:54:24 -05:00
parent 1b8619f95e
commit 458ff6f89f
3 changed files with 14 additions and 11 deletions

View File

@ -1,6 +1,6 @@
from fastapi import FastAPI, Response from fastapi import FastAPI, Response
from escpos.printer import Dummy from escpos.printer import Dummy
# from escpos.printer import Network from escpos.printer import Network
import sys import sys
import json import json
@ -25,9 +25,9 @@ class Info(BaseModel):
def print_bill(data, address, waiter): def print_bill(data, address, waiter):
d = data d = data
# Crea una instancia de la impresora ficticia # Crea una instancia de la impresora ficticia
# printer = Network(str(address)) printer = Network(str(address))
# printer.open() printer.open()
printer = Dummy() # printer = Dummy()
# Imprime el encabezado # Imprime el encabezado
printer.set(align='center', bold=False, height=1, width=1) printer.set(align='center', bold=False, height=1, width=1)
printer.text(d["shop_name"]+'\n') printer.text(d["shop_name"]+'\n')
@ -85,13 +85,16 @@ def print_bill(data, address, waiter):
printer.set(align='center', bold=False, height=1, width=1) printer.set(align='center', bold=False, height=1, width=1)
printer.textln('==============================================\n') printer.textln('==============================================\n')
if d["fe_cufe"]: if d["fe_cufe"]:
# printer.qr(d["fe_cufe"])
QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() QR = QRCodeGenerator(d["fe_cufe"]).generate_qr()
with tempfile.NamedTemporaryFile( with tempfile.NamedTemporaryFile(
delete=True, suffix='.png', dir='/tmp') as temp_file: delete=True, suffix='.png', dir='/tmp') as temp_file:
temp_filename = temp_file.name temp_filename = temp_file.name
QR.save(temp_filename) QR.save(temp_filename)
printer.image(f"{temp_filename}") printer.image(f"{temp_filename}")
printer.set(align='left', bold=False, height=1, width=1)
text = str(payment["statement"])+" $"+str(payment["amount"])
printer.textln(text)
printer.set(align='center', bold=False, height=1, width=1)
printer.text("Sigue nuestras redes sociales\n") printer.text("Sigue nuestras redes sociales\n")
printer.text("@bicipizza\n") printer.text("@bicipizza\n")
printer.text("Recuerde que la propina es voluntaria.\n") printer.text("Recuerde que la propina es voluntaria.\n")
@ -104,13 +107,13 @@ def print_bill(data, address, waiter):
printer.text(str(waiter)+'\n') printer.text(str(waiter)+'\n')
# Corta el papel (solo para impresoras que soportan esta función) # Corta el papel (solo para impresoras que soportan esta función)
# printer.cut() printer.cut()
# printer.close() printer.close()
# Obtiene el contenido del ticket de prueba # Obtiene el contenido del ticket de prueba
ticket_contenido = printer.output # ticket_contenido = printer.output
# raise Exception(ticket_contenido) # raise Exception(ticket_contenido)
# Imprime el contenido en la consola # Imprime el contenido en la consola
sys.stdout.write(ticket_contenido.decode('utf-8', errors='ignore')) # sys.stdout.write(ticket_contenido.decode('utf-8', errors='ignore'))
def print_customer_order(data, address, waiter): def print_customer_order(data, address, waiter):

View File

@ -13,7 +13,7 @@ class QRCodeGenerator:
qr = qrcode.QRCode( qr = qrcode.QRCode(
version=1, version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L, error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10, box_size=6,
border=4, border=4,
) )
qr.add_data(self.url) qr.add_data(self.url)

View File

@ -18,7 +18,7 @@ def test_print_bill():
json.dumps( json.dumps(
load_json('test/fixtures/bill.json') load_json('test/fixtures/bill.json')
)), )),
"ip_printer": "192.168.1.100", "ip_printer": "192.168.1.105",
"user_name": "Juan" "user_name": "Juan"
} }