seiton-printer 1.0.5
Set de metodos para controlar la impresora Seiton
Requires Python: >=3.6

# Seiton Driver Python

Librería Python para el control de impresoras térmicas SEITON usando el protocolo ESC/POS. Diseñada para ser simple y fácil de usar, permitiendo la impresión de texto, imágenes, códigos QR y códigos de barras.

## 📋 Requisitos Previos

- Python >= 3.6
- Impresora Seiton conectada vía USB

## 🚀 Instalación

```bash
pip install seiton-printer
```

## 💡 Uso Básico

```python
from seiton_printer import Seiton

# Crear una nueva instancia de Seiton
printer = Seiton('/dev/usb/lp0')

# Crear un ticket
printer.align_to_center()  # Centrar el contenido
       .double_tall_double_wide()  # Texto doble alto y ancho
       .add_text('Mi Negocio')  # Agregar texto
       .feed_lines(1)  # Avanzar una línea
       .set_default_styles()  # Restablecer estilos
       .align_to_left()  # Alinear a la izquierda
       .add_text('Ticket #001')  # Agregar número de ticket
       .feed_lines(2)  # Avanzar dos líneas
       .generate_qr_code('https://minegocio.com', 8)  # Generar código QR
       .feed_and_cut_paper()  # Avanzar y cortar papel
       .print()  # Imprimir el ticket
```

## 📖 Métodos Disponibles

### Estilos de Texto

- `.set_default_styles()` - Restablece todos los estilos a sus valores predeterminados
- `.double_tall()` - Aplica formato de texto doble alto
- `.double_wide()` - Aplica formato de texto doble ancho
- `.double_tall_bold()` - Aplica formato de texto doble alto y negrita
- `.double_tall_double_wide()` - Aplica formato de texto doble alto y doble ancho
- `.enable_bold()` - Habilita el estilo negrita
- `.disable_bold()` - Deshabilita el estilo negrita
- `.enable_underline()` - Habilita el estilo subrayado
- `.disable_underline()` - Deshabilita el estilo subrayado

### Alineación

- `.align_to_center()` - Centra el contenido
- `.align_to_right()` - Alinea el contenido a la derecha
- `.align_to_left()` - Alinea el contenido a la izquierda

### Manejo de Texto y Papel

- `.add_text(texto: str)` - Agrega texto al ticket
- `.feed_line()` - Avanza una línea
- `.feed_lines(lineas: int)` - Avanza múltiples líneas
- `.feed_and_cut_paper()` - Avanza y corta el papel
- `.cut_paper()` - Corta el papel

### Códigos y Elementos Especiales

- `.generate_qr_code(contenido: str, tamaño: int)` - Genera un código QR
- `.print_barcode(datos: str, ancho: int, alto: int)` - Imprime un código de barras
- `.pos_beep(cantidad_pitidos: int, duracion_ms: int)` - Activa el buzzer
- `.add_image(ruta_archivo: str)` - Agrega una imagen
- `.open_cash_drawer()` - Abre el cajón de dinero
- `is_printer_connected(port: str)` - Verifica si la impresora está conectada

### Control de Impresión

- `.print()` - Imprime el ticket
- `.print_self_test()` - Imprime página de prueba

## 🎯 Ejemplos Prácticos

### Ticket de Venta

```python
Seiton('/dev/usb/lp0')
  .align_to_center()
  .double_tall_bold()
  .add_text('Supermercado XYZ')
  .set_default_styles()
  .feed_lines(1)
  .align_to_left()
  .add_text('Fecha: 2024-01-20')
  .add_text('Ticket #: 001')
  .feed_lines(1)
  .add_text('Producto 1 ........... $100')
  .add_text('Producto 2 ........... $200')
  .feed_lines(1)
  .double_tall_bold()
  .align_to_right()
  .add_text('Total: $300')
  .set_default_styles()
  .feed_lines(2)
  .align_to_center()
  .generate_qr_code('https://miticket.com/001', 8)
  .feed_and_cut_paper()
  .print()
```

### Ticket Simple con Código de Barras

```python
Seiton('/dev/usb/lp0').align_to_center().add_text('Código de Producto').print_barcode('12345678', 4, 100).feed_lines(4).print()
```

## 🔧 Configuración del Puerto USB

Dependiendo del sistema operativo y la configuración de tu impresora, la ruta del puerto USB generalmente se encuentra en:

- **Linux**:
  - /dev/usb/lp0 (primera impresora)
  - /dev/usb/lp1 (segunda impresora)
- **Windows**:
  - USB001 (primera impresora)
  - USB002 (segunda impresora)
- **Mac OS**:
  - /dev/cu.usbmodem1411 (primera impresora)
  - /dev/cu.usbmodem1422 (segunda impresora)

Las rutas de los puertos USB pueden variar dependiendo de la configuración de tu sistema operativo y el modelo de impresora.

## 📜 Términos y Condiciones de Uso

- Esta librería es de uso gratuito para los clientes de Seiton.
- No se garantiza funcionamiento con otras impresoras.
- Seiton se reserva el derecho de realizar cambios en la librería, publicando actualizaciones sin previo aviso.

## 🏢 Empresa

[Seiton](https://seiton.com.ar/) - Soluciones de impresión para tu negocio.

## 📞 Soporte

- Sitio Web: [https://seiton.com.ar/](https://seiton.com.ar/)
- Email: [contacto@seiton.com.ar](mailto:contacto@seiton.com.ar)