Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Python (https://www.clubdelphi.com/foros/forumdisplay.php?f=46)
-   -   Reporteador Python (https://www.clubdelphi.com/foros/showthread.php?t=97253)

jourdan 27-02-2025 23:32:03

Reporteador Python
 
Buenas tardes, qué reporteador Python recomendarian para imprimir directamente a una impresora térmica epson de tickets?
Gracias

Casimiro Notevi 28-02-2025 11:43:33

Para imprimir directamente a una impresora térmica Epson de tickets desde Python, te recomendaría las siguientes opciones:
1. ESCPOS Python
  • Descripción: Es una librería diseñada específicamente para impresoras térmicas que soportan el protocolo ESC/POS (usado por Epson).
  • Características:
    • Permite impresión de texto, imágenes, códigos de barras y QR.
    • Soporta caracteres especiales y ajuste de formato (negrita, tamaño, alineación).
    • Permite cortar el papel y abrir el cajón de dinero si está conectado.
  • Instalación:
    pip install python-escpos
  • Ejemplo de uso:
    from escpos.printer import Usb # Configurar con el Vendor ID y Product ID de la impresora (ajustar según tu modelo) p = Usb(0x04b8, 0x0202) p.text("Hola, este es un ticket\n") p.barcode('123456789012', 'EAN13', 64, 2, '', '') p.cut()
  • Ideal para: Control total sobre la impresión en impresoras térmicas Epson.
2. ReportLab (Si necesitas generar PDFs antes de imprimir)
  • Descripción: No es específico para impresoras térmicas, pero permite generar PDFs y luego enviarlos a la impresora.
  • Instalación:
    pip install reportlab
  • Ejemplo de uso:
    from reportlab.pdfgen import canvas c = canvas.Canvas("ticket.pdf") c.drawString(100, 750, "Hola, este es un ticket") c.save()
  • Luego puedes enviarlo a la impresora con:
    lp -d NOMBRE_IMPRESORA ticket.pdf
  • Ideal para: Casos donde se requiere generar una versión digital del ticket antes de imprimir.
3. Directo a la impresora con cups (en Linux)
  • Si la impresora está instalada en el sistema, puedes imprimir texto plano directamente usando cups:
    import cups conn = cups.Connection() printers = conn.getPrinters() printer_name = "nombre_de_tu_impresora" conn.printFile(printer_name, "ticket.txt", "Ticket de Venta", {})
  • Ideal para: Impresión sencilla sin formato avanzado.
¿Cuál elegir?
  • Para impresión directa y control total en impresoras térmicas Epson → Usa ESCPOS Python.
  • Si necesitas generar PDFs antes de imprimir → Usa ReportLab.
  • Si la impresora ya está configurada en el sistema y solo necesitas texto → Usa CUPS (Linux).


PD: Respuesta patrocinada por chatgtp :D

jourdan 28-02-2025 16:14:17

Muchas gracias Casimoro, voy a revisar estas opciones.
Saludos


La franja horaria es GMT +2. Ahora son las 11:27:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi