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 escpos.printer import Dummy
# from escpos.printer import Network
from escpos.printer import Network
import sys
import json
@ -25,9 +25,9 @@ class Info(BaseModel):
def print_bill(data, address, waiter):
d = data
# Crea una instancia de la impresora ficticia
# printer = Network(str(address))
# printer.open()
printer = Dummy()
printer = Network(str(address))
printer.open()
# printer = Dummy()
# Imprime el encabezado
printer.set(align='center', bold=False, height=1, width=1)
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.textln('==============================================\n')
if d["fe_cufe"]:
# printer.qr(d["fe_cufe"])
QR = QRCodeGenerator(d["fe_cufe"]).generate_qr()
with tempfile.NamedTemporaryFile(
delete=True, suffix='.png', dir='/tmp') as temp_file:
temp_filename = temp_file.name
QR.save(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("@bicipizza\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')
# Corta el papel (solo para impresoras que soportan esta función)
# printer.cut()
# printer.close()
printer.cut()
printer.close()
# Obtiene el contenido del ticket de prueba
ticket_contenido = printer.output
# ticket_contenido = printer.output
# raise Exception(ticket_contenido)
# 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):

View File

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

View File

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