Feat: Implementacion Impresion de QR
This commit is contained in:
parent
022dbc35c5
commit
83ea8b2ac5
10
api.py
10
api.py
@ -5,6 +5,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import tempfile
|
||||||
|
from .qr_generator import QRCodeGenerator
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="Print Server FastAPI",
|
title="Print Server FastAPI",
|
||||||
@ -81,6 +83,14 @@ def print_bill(data, address, waiter):
|
|||||||
printer.textln(text)
|
printer.textln(text)
|
||||||
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"]:
|
||||||
|
# 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.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")
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import qrcode
|
import qrcode
|
||||||
|
import tempfile
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class QRCodeGenerator:
|
class QRCodeGenerator:
|
||||||
@ -8,8 +10,8 @@ class QRCodeGenerator:
|
|||||||
def __init__(self, url):
|
def __init__(self, url):
|
||||||
self.url = url
|
self.url = url
|
||||||
|
|
||||||
def generate_qr(self, filename="codigo_qr.png"):
|
def generate_qr(self):
|
||||||
"""Genera un código QR a partir de la URL y lo guarda en un archivo."""
|
"""Genera un código QR a partir de la URL y lo guarda en un archivo temporal."""
|
||||||
qr = qrcode.QRCode(
|
qr = qrcode.QRCode(
|
||||||
version=1,
|
version=1,
|
||||||
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
||||||
@ -19,5 +21,5 @@ class QRCodeGenerator:
|
|||||||
qr.add_data(self.url)
|
qr.add_data(self.url)
|
||||||
qr.make(fit=True)
|
qr.make(fit=True)
|
||||||
img = qr.make_image(fill_color="black", back_color="white")
|
img = qr.make_image(fill_color="black", back_color="white")
|
||||||
img.save(filename)
|
|
||||||
return filename
|
return img
|
||||||
|
@ -7,6 +7,4 @@ from ..qr_generator import QRCodeGenerator
|
|||||||
def test_generate_qr():
|
def test_generate_qr():
|
||||||
url = "https://www.gnu.org/"
|
url = "https://www.gnu.org/"
|
||||||
qr_generator = QRCodeGenerator(url)
|
qr_generator = QRCodeGenerator(url)
|
||||||
filename = qr_generator.generate_qr("test_codigo_qr.png")
|
filename = qr_generator.generate_qr()
|
||||||
assert os.path.exists(filename)
|
|
||||||
os.remove(filename)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user