- Complete project overview and features - Quick start guides for both Python and executable - Step-by-step PyInstaller build instructions - File structure and dependencies overview - Troubleshooting section - Platform support matrix - Technical specifications - Contributing guidelines
5.9 KiB
5.9 KiB
Label Printer GUI
A cross-platform barcode label printing application with a modern GUI. Create, generate, and print labels with automatic Code128 barcode encoding.
Features
✨ Core Features
- 🎨 Beautiful Kivy GUI interface
- 📊 Automatic Code128 barcode generation
- 📄 High-quality PDF label generation
- 💾 Automatic PDF backup system
- ✅ Input validation with 25-character limit
- 🔢 Number-only filter for quantity field
🖨️ Printer Support
- Windows printer detection and printing
- Linux CUPS printer support
- macOS printing support
- PDF fallback (works everywhere)
🚀 Distribution
- PyInstaller support for standalone Windows .exe
- No Python installation needed
- Cross-platform source code (Windows, Linux, macOS)
Quick Start
Option 1: Python Source (Recommended for Development)
# 1. Clone/Download the project
cd Label-design
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements_gui.txt
# 4. Run the app
python label_printer_gui.py
Option 2: Windows Standalone Executable
- Download
LabelPrinter.exefrom releases - Double-click to run (no Python needed!)
- First run takes ~5 seconds to initialize
Building Your Own Executable
Windows Build Steps
# 1. Activate virtual environment
venv\Scripts\activate
# 2. Install PyInstaller
pip install pyinstaller
# 3. Build executable
python build_exe.py
Your executable will be in dist/LabelPrinter.exe (~200 MB)
Manual Build Command
pyinstaller --onefile --windowed --name=LabelPrinter ^
--hidden-import=kivy ^
--hidden-import=kivy.core.window ^
--hidden-import=kivy.core.text ^
--hidden-import=kivy.core.image ^
--hidden-import=kivy.uix.boxlayout ^
--hidden-import=kivy.uix.gridlayout ^
--hidden-import=kivy.uix.label ^
--hidden-import=kivy.uix.textinput ^
--hidden-import=kivy.uix.button ^
--hidden-import=kivy.uix.spinner ^
--hidden-import=kivy.uix.scrollview ^
--hidden-import=kivy.uix.popup ^
--hidden-import=kivy.clock ^
--hidden-import=kivy.graphics ^
--hidden-import=PIL ^
--hidden-import=barcode ^
--hidden-import=reportlab ^
--hidden-import=print_label ^
--hidden-import=print_label_pdf ^
label_printer_gui.py
File Structure
Label-design/
├── label_printer_gui.py # Main GUI application
├── print_label.py # Printing functionality
├── print_label_pdf.py # PDF generation
├── build_exe.py # PyInstaller build script
├── requirements_gui.txt # GUI dependencies
├── pdf_backup/ # Generated label PDFs
├── dist/ # Built executables
├── documentation/ # Docs and guides
│ ├── WINDOWS_SETUP.md
│ ├── PYINSTALLER_GUIDE.md
│ └── [other docs]
└── venv/ # Python virtual environment
Dependencies
Required (Core):
python-barcode- Barcode generationpillow- Image processingreportlab- PDF generation
GUI:
kivy- Cross-platform GUI framework
Optional (Printing):
pycups- Linux CUPS supportpywin32- Windows printer support
Usage
Basic Workflow
-
Enter Data:
- SAP-Nr: Article code (up to 25 chars)
- Cantitate: Quantity (numbers only)
- ID rola: Reel/Cable ID (up to 25 chars)
-
Select Printer:
- Choose from detected printers
- Or select "PDF" for PDF output
-
Print:
- Click "PRINT LABEL"
- PDF is auto-saved to
pdf_backup/folder - Label sent to printer
PDF Backup
All generated labels are automatically saved with timestamps:
pdf_backup/
├── final_label_20260205_120530.pdf
├── final_label_20260205_120542.pdf
└── final_label_20260205_120555.pdf
Guides
- WINDOWS_SETUP.md - Windows installation guide
- PYINSTALLER_GUIDE.md - Building executables
- documentation/ - All documentation
Troubleshooting
"No Printers Found"
This is normal. Select "PDF" option - labels will be saved to pdf_backup/ folder.
"GUI Won't Start"
Ensure all dependencies are installed:
pip install -r requirements_gui.txt
Windows Executable Issues
- Update PyInstaller:
pip install --upgrade pyinstaller - Rebuild:
python build_exe.py - Check dependencies:
pip list
Kivy Graphics Issues
On Linux, you may need SDL2 dependencies:
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
Platform Support
| Platform | Source | Executable | Status |
|---|---|---|---|
| Windows | ✅ Yes | ✅ Yes | ✅ Fully Supported |
| Linux | ✅ Yes | ❌ No | ✅ Fully Supported |
| macOS | ✅ Yes | ⚠️ Possible | ⚠️ Untested |
Technical Details
Barcode Format
- Type: Code128
- Max Length: 25 characters
- DPI: 300 (print quality)
PDF Specifications
- Page Size: 11.5 x 8 cm (landscape)
- Quality: High-resolution barcodes
- Font: Helvetica with automatic sizing
GUI Specifications
- Framework: Kivy 2.3+
- Size: 420 x 700 pixels (mobile-optimized)
- Color: White text on dark background
Contributing
Feel free to fork, modify, and improve!
Suggested improvements:
- Custom barcode formats (QR, Code39, etc.)
- Batch label printing
- Label preview before printing
- Printer-specific settings
- Multi-language support
- Database integration
License
Open source - modify and use freely
Support
For issues, questions, or suggestions:
- Check the documentation in
documentation/folder - Review the code comments
- Test with the source code first before building exe
Status: Production Ready ✅
Last Updated: February 2026