Generador de Cheques nextMEET es una aplicación de escritorio desarrollada en Python con PySide6 que permite generar cheques de donación personalizados con códigos de barras únicos. Diseñada para la campaña de donaciones nextMEET, la aplicación facilita la creación masiva de cheques en formato PDF listos para imprimir.
- 🎨 Interfaz moderna con tema oscuro elegante
- 📊 7 tipos de billetes disponibles (B005, B010, B020, B050, B100, B200, B500)
- 🔢 Códigos de barras únicos generados automáticamente (Code128)
- 📄 Exportación a PDF en formato A4 (8 cheques) o A3 (16 cheques)
- 🔍 Vista previa con zoom para verificar los cheques antes de exportar
- ⚙️ Configuración personalizable de colores y posición del código de barras
- 📝 Sistema de logs para registro de todas las generaciones
- 💾 Múltiples configuraciones guardables y reutilizables
Vista principal con configuración de múltiples tipos de billetes y preview de página
Panel de ajustes para personalizar el color del código de barras por tipo de billete
Panel de ajustes para modificar la posición del código de barras en el cheque
Ventana de preview con capacidad de zoom para inspeccionar cheques individuales y páginas completas
Ejemplo de página PDF generada con múltiples cheques listos para imprimir
- Python 3.10 o superior
- Sistema operativo: Windows, macOS o Linux
PySide6>=6.5.0
Pillow>=10.0.0
python-barcode>=0.15.1
pyinstaller>=6.0.0 # Solo para generar el .exe
git clone https://github.com/DaniS1448/nextMEETChequesGenerator.git
cd nextMEETChequesGeneratorpython -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activatepip install -r requirements.txtpython app.py-
Añadir tipos de billete: Haz clic en "+ Añadir Tipo de Billete" para agregar una configuración.
-
Seleccionar imagen modelo: Para cada tipo de billete, selecciona la imagen base del cheque (debe ser de 613x1746 píxeles).
-
Configurar rango de códigos: Define el rango de códigos a generar (ej: C001 → C100).
-
Elegir formato de salida: Selecciona A4 (8 cheques por página) o A3 (16 cheques por página).
-
Vista previa: Haz clic en "Actualizar Preview" para ver cómo quedará la página.
-
Generar PDF: Haz clic en "GENERAR PDF" para exportar el documento final.
Los códigos de barras siguen el formato:
nextMEET{TIPO}C{NUMERO}
Ejemplo: nextMEETB005C001 para el cheque #001 del tipo B005.
Haz clic en el botón "⚙ Ajustes" en la esquina superior derecha para abrir el panel de configuración.
Cada tipo de billete tiene un color de código de barras predeterminado que se integra con el diseño del cheque:
| Tipo | Color por defecto |
|---|---|
| B005 | #35362b |
| B010 | #f1b6cf |
| B020 | #c7deec |
| B050 | #e6c3b5 |
| B100 | #94f9b0 |
| B200 | #535353 |
| B500 | #141408 |
Posición por defecto: X=32, Y=1506 (píxeles desde la esquina superior izquierda)
El cheque tiene un tamaño de 613x1746 píxeles.
- Nueva: Crear una configuración desde cero
- Duplicar: Copiar una configuración existente
- Eliminar: Borrar una configuración (excepto "default")
- Las configuraciones se guardan automáticamente en
config.json
nextMEETChequesGenerator/
├── app.py # Aplicación principal (interfaz gráfica)
├── core.py # Lógica de generación de cheques y PDFs
├── config.json # Configuraciones guardadas
├── requirements.txt # Dependencias del proyecto
├── README.md # Este archivo
│
├── build.py # Script de build para generar .exe
├── build.bat # Script batch de build (Windows)
├── build_installer.py # Script para crear instalador
├── build_installer.bat # Script batch del instalador
├── prepare_release.py # Script para preparar release de GitHub
├── prepare_release.bat # Script batch del release
├── nextMEETChequesGenerator.spec # Configuración de PyInstaller
├── installer.iss # Script de Inno Setup
│
├── .github/
│ └── workflows/
│ └── release.yml # GitHub Actions para releases automáticos
│
├── resources/
│ ├── fonts/
│ │ └── Lato-Regular.ttf # Fuente para códigos de barras
│ ├── icon.png # Icono de la aplicación
│ ├── logo.png # Logo de nextMEET
│ └── screenshots/ # Capturas de pantalla
│
├── Modelos/ # Imágenes modelo de los cheques
│ ├── nextMEETB005.jpg
│ ├── nextMEETB010.jpg
│ ├── nextMEETB020.jpg
│ ├── nextMEETB050.jpg
│ ├── nextMEETB100.jpg
│ ├── nextMEETB200.jpg
│ └── nextMEETB500.jpg
│
├── exports/ # PDFs generados (directorio de salida sugerido)
│
└── logs/ # Registros de generaciones en formato JSON
└── gen_YYYYMMDD_HHMMSS.json
| Característica | Especificación |
|---|---|
| Resolución de cheque | 613 × 1746 px |
| Resolución A4 | 2480 × 3508 px (300 DPI) |
| Resolución A3 | 3508 × 4961 px (300 DPI) |
| Cheques por A4 | 8 (4×2) |
| Cheques por A3 | 16 (8×2) |
| Tipo de código de barras | Code128 |
| Formato de exportación |
Cada vez que se genera un PDF, se crea un archivo de log en la carpeta logs/ con la siguiente información:
{
"timestamp": "2025-12-12T20:22:53",
"format": "A4",
"billetes": [
{
"tipo": "B005",
"desde": "001",
"hasta": "010",
"cantidad": 10
}
],
"total_cheques": 10,
"total_pages": 2,
"output_file": "nextMeet_A4_20251212_202253.pdf"
}La aplicación puede compilarse en un ejecutable standalone para Windows usando PyInstaller.
pip install pyinstallerbuild.bat# Build estándar (carpeta con dependencias)
python build.py
# Build en un solo archivo .exe
python build.py --onefile
# Limpiar archivos de build previos
python build.py --cleanpyinstaller --noconfirm nextMEETChequesGenerator.specDespués de compilar, encontrarás el ejecutable en:
- Build estándar:
dist/nextMEETChequesGenerator/nextMEETChequesGenerator.exe - Onefile:
dist/nextMEETChequesGenerator.exe
Para distribuir la aplicación:
- Build estándar: Copia toda la carpeta
dist/nextMEETChequesGenerator/ - Build onefile: Copia solo el archivo
dist/nextMEETChequesGenerator.exe
La aplicación creará automáticamente:
config.json(configuraciones)logs/(registros de generación)
en el mismo directorio donde se encuentre el ejecutable.
Para crear un instalador profesional (.exe) que incluya asistente de instalación, accesos directos y desinstalador:
- Inno Setup (gratuito): Descargar aquí
- Haber compilado la aplicación previamente (
python build.py)
build_installer.batO con Python:
python build_installer.py- Abrir Inno Setup Compiler
- Abrir el archivo
installer.iss - Compilar (Ctrl+F9)
El instalador se generará en: installer_output/nextMEETChequesGenerator_Setup_v1.0.0.exe
- ✅ Asistente de instalación en español/inglés
- ✅ Instalación en Program Files (o carpeta personalizada)
- ✅ Acceso directo en menú Inicio
- ✅ Acceso directo en escritorio (opcional)
- ✅ Desinstalador desde Panel de Control
- ✅ Opción de ejecutar la app al finalizar
Para publicar una nueva versión en GitHub Releases con instalador, versión portable y código fuente.
- Haber compilado la aplicación (
python build.py) - Haber creado el instalador (
python build_installer.py)
python prepare_release.py 1.0.0Esto creará en la carpeta release/:
nextMEETChequesGenerator-v1.0.0-setup.exe- InstaladornextMEETChequesGenerator-v1.0.0-portable-win64.zip- Versión portableRELEASE_NOTES.md- Plantilla de notas de la versión
- Ve a tu repositorio en GitHub
- Haz clic en Releases → Create a new release
- Choose a tag: Escribe
v1.0.0y selecciona "Create new tag" - Release title:
nextMEET Cheques Generator v1.0.0 - Description: Copia el contenido de
release/RELEASE_NOTES.md - Attach binaries: Arrastra los archivos de la carpeta
release/:nextMEETChequesGenerator-v1.0.0-setup.exenextMEETChequesGenerator-v1.0.0-portable-win64.zip
- Haz clic en Publish release
💡 GitHub añadirá automáticamente el Source code (zip) y Source code (tar.gz)
El proyecto incluye un workflow de GitHub Actions que automatiza todo el proceso:
# Crear y subir el tag
git tag v1.0.0
git push origin v1.0.0GitHub Actions se encargará de:
- Compilar la aplicación
- Crear el instalador
- Preparar los archivos
- Publicar el release automáticamente
app.py: Interfaz gráfica con PySide6, manejo de eventos y widgets personalizadoscore.py: Lógica de negocio, generación de códigos de barras, composición de cheques y exportación a PDF
MainWindow: Ventana principal de la aplicaciónBilleteConfigWidget: Widget para configurar cada tipo de billeteSettingsDialog: Diálogo de configuración de colores y posiciónImageViewerDialog: Visor de imágenes con zoomConfigManager: Gestor de configuraciones persistentesPDFGeneratorThread: Thread para generación de PDFs sin bloquear la UI
Funcionalidades que me gustaría implementar en futuras versiones:
- Vista previa en tiempo real del código de barras sobre la imagen modelo
- Visualizar cómo quedará la generación antes de aplicar los cambios
- Comparador antes/después para ajustar el color óptimo
- Permitir subir y gestionar fuentes personalizadas (.ttf, .otf)
- Selector de fuente para el texto del código de barras
- Previsualización de la fuente seleccionada
- Biblioteca de fuentes integrada con las más populares
- Crear "presets" o versiones de cheques que guarden:
- Las imágenes modelo utilizadas
- Los ajustes de posición del código de barras
- Los colores configurados para cada tipo
- Cargar un diseño completo con un solo clic
- Importar/exportar configuraciones para compartir entre equipos
- Historial de versiones de diseño
- Interfaz gráfica de arrastrar y soltar (drag & drop)
- Previsualización en tiempo real del código de barras sobre el cheque
- Herramientas de centrado horizontal y vertical automático
- Guías de alineación y snapping
- Controles de rotación del código de barras
Este proyecto fue desarrollado para la campaña de donaciones nextMEET.
Queda prohibido el uso comercial o cualquier actividad con fines lucrativos sin autorización expresa.
Las contribuciones son bienvenidas. Por favor, abre un issue para discutir cambios mayores antes de enviar un pull request.
Si este proyecto te resulta útil y quieres apoyar la campaña nextMEET, puedes hacer una donación:
Desarrollado con ❤️ para nextMEET
