Improve GUI and barcode generation
- Update GUI title to 'Label Printing' with white text - Add character limit (25 chars) to all input fields - Add number-only filter to quantity field - Fix barcode generation in PDF module - Create pdf_backup folder for storing generated PDFs - Add pdf backup logging and confirmation - Move demo files and tests to documentation folder - Reorganize project structure for better clarity
This commit is contained in:
246
documentation/QUICK_REFERENCE.md
Normal file
246
documentation/QUICK_REFERENCE.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# Label Printing System - Quick Reference Card
|
||||
|
||||
## System Specifications ✓
|
||||
|
||||
| Parameter | Value | Notes |
|
||||
|-----------|-------|-------|
|
||||
| **Label Width** | 11.5 cm | Full width |
|
||||
| **Label Height** | 8 cm | Full height |
|
||||
| **Rows** | 3 | SAP-Nr, Cantitate, Lot Nr |
|
||||
| **Barcode Height** | 18 mm (1.8 cm) | Fixed, optimal for scanning |
|
||||
| **Barcode Format** | Code128 | Standard barcode format |
|
||||
| **Character Limit** | 25 chars max | Per field |
|
||||
| **DPI** | 300 | Print-ready quality |
|
||||
| **File Format** | PDF | Vector-based, professional |
|
||||
| **Margin** | 3 mm | All sides |
|
||||
|
||||
## Quick Start
|
||||
|
||||
### 1. Activate Environment
|
||||
```bash
|
||||
cd /srv/Label-design
|
||||
source venv/bin/activate
|
||||
```
|
||||
|
||||
### 2. Run GUI
|
||||
```bash
|
||||
python label_printer_gui.py
|
||||
```
|
||||
|
||||
### 3. Enter Data
|
||||
- SAP-Nr: Up to 25 characters
|
||||
- Cantitate: Up to 25 characters
|
||||
- Lot Nr: Up to 25 characters
|
||||
- Select Printer
|
||||
|
||||
### 4. Print
|
||||
- Click "PRINT LABEL"
|
||||
- PDF generates automatically
|
||||
- Sends to printer
|
||||
|
||||
## Command Line Usage
|
||||
|
||||
```bash
|
||||
# Generate PDF label
|
||||
python3 -c "from print_label import print_label_standalone; \
|
||||
print_label_standalone('SAP-123|100|LOT-ABC', 'printer_name')"
|
||||
|
||||
# Generate without printing (test)
|
||||
python3 -c "from print_label import create_label_pdf; \
|
||||
pdf = create_label_pdf('SAP-123|100|LOT-ABC'); \
|
||||
print(f'Generated: {pdf}')"
|
||||
```
|
||||
|
||||
## Label Data Format
|
||||
|
||||
```
|
||||
Input Format: "SAP|CANTITATE|LOT"
|
||||
|
||||
Example: "SAP-12345|100|LOT-ABC"
|
||||
└─────┬─────┘ └──┬──┘ └──┬──┘
|
||||
SAP-Nr Qty Lot Nr
|
||||
|
||||
Each becomes a barcode row in the PDF
|
||||
```
|
||||
|
||||
## Barcode Specifications
|
||||
|
||||
| Aspect | Specification | Details |
|
||||
|--------|---------------|---------|
|
||||
| **Type** | Code128 | Standard barcode |
|
||||
| **Height** | 18 mm | Fixed (1.8 cm) |
|
||||
| **Width** | Auto | Fits within label |
|
||||
| **Module Width** | 0.5 mm | Bar thickness |
|
||||
| **Quiet Zone** | 2 mm | Auto-applied |
|
||||
| **Max Length** | 25 chars | Auto-truncates |
|
||||
|
||||
## File Locations
|
||||
|
||||
```
|
||||
/srv/Label-design/
|
||||
├── label_printer_gui.py ← GUI application
|
||||
├── print_label.py ← Main module (PDF/PNG)
|
||||
├── print_label_pdf.py ← PDF generation engine
|
||||
├── requirements_gui.txt ← Dependencies
|
||||
└── venv/ ← Virtual environment
|
||||
```
|
||||
|
||||
## Generated Files
|
||||
|
||||
Labels are saved with timestamps:
|
||||
```
|
||||
final_label_20260205_001617.pdf
|
||||
└─────────┬─────────┘
|
||||
YYYYMMDD_HHMMSS
|
||||
```
|
||||
|
||||
Files are retained in working directory for reprinting.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### PDF Won't Generate
|
||||
```bash
|
||||
# Check dependencies
|
||||
pip list | grep reportlab
|
||||
|
||||
# Reinstall if needed
|
||||
pip install reportlab
|
||||
```
|
||||
|
||||
### Barcode Won't Scan
|
||||
- Verify printer DPI (300+ required)
|
||||
- Check label dimensions (11.5cm × 8cm)
|
||||
- Use "Borderless" printing
|
||||
- Test with standard scanner
|
||||
|
||||
### Text Gets Cut Off
|
||||
- Max 25 characters per field
|
||||
- Longer text auto-truncates
|
||||
- Check for special characters
|
||||
|
||||
### File Not Found
|
||||
```bash
|
||||
# Verify virtual environment is active
|
||||
which python
|
||||
# Should show: /srv/Label-design/venv/bin/python
|
||||
```
|
||||
|
||||
## Printer Setup (CUPS)
|
||||
|
||||
### View Available Printers
|
||||
```bash
|
||||
lpstat -p -d
|
||||
```
|
||||
|
||||
### Configure Printer Size
|
||||
```bash
|
||||
# Open CUPS web interface
|
||||
http://localhost:631
|
||||
```
|
||||
|
||||
### Test Print
|
||||
```bash
|
||||
python3 -c "from print_label import print_label_standalone; \
|
||||
print_label_standalone('TEST|123|ABC', 'your_printer_name', use_pdf=True)"
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- **Full Guide:** `PDF_UPGRADE_GUIDE.md`
|
||||
- **Setup Guide:** `QUICK_START.md`
|
||||
- **Barcode Details:** `BARCODE_HEIGHT_CORRECTION.md`
|
||||
- **Test Results:** `TEST_RESULTS_PDF_SYSTEM.md`
|
||||
|
||||
## API Summary
|
||||
|
||||
### Simple Function
|
||||
```python
|
||||
from print_label import print_label_standalone
|
||||
print_label_standalone(text, printer, use_pdf=True)
|
||||
```
|
||||
|
||||
### PDF Generation
|
||||
```python
|
||||
from print_label import create_label_pdf
|
||||
pdf_file = create_label_pdf("SAP|QTY|LOT")
|
||||
```
|
||||
|
||||
### Advanced (Custom Size)
|
||||
```python
|
||||
from print_label_pdf import PDFLabelGenerator
|
||||
gen = PDFLabelGenerator(label_width=11.5, label_height=8)
|
||||
pdf = gen.create_label_pdf("SAP", "QTY", "LOT", "output.pdf")
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
| Task | Time |
|
||||
|------|------|
|
||||
| Single label PDF | 200-500ms |
|
||||
| Single label PNG | 300-600ms |
|
||||
| Batch (4 labels) | ~1.5 sec |
|
||||
| Print submission | ~100ms |
|
||||
|
||||
## Quality Levels
|
||||
|
||||
### Standard (300 DPI)
|
||||
- Good for most applications
|
||||
- Barcode easily scannable
|
||||
- Default setting
|
||||
|
||||
### High Quality (600 DPI)
|
||||
```python
|
||||
gen = PDFLabelGenerator(dpi=600)
|
||||
```
|
||||
- Premium color reproduction
|
||||
- Extra-high barcode precision
|
||||
|
||||
## Common Issues & Solutions
|
||||
|
||||
| Issue | Cause | Solution |
|
||||
|-------|-------|----------|
|
||||
| Barcode too small | Old config | Update to v2.0+ |
|
||||
| Text cut off | >25 chars | Values auto-truncate |
|
||||
| PDF won't print | Printer config | Check CUPS settings |
|
||||
| Module not found | Missing venv | Run `source venv/bin/activate` |
|
||||
| No barcodes | Generation error | Falls back to text |
|
||||
|
||||
## Environment Variables (Optional)
|
||||
|
||||
```bash
|
||||
# Set default printer
|
||||
export CUPS_DEFAULT_PRINTER="your_printer"
|
||||
|
||||
# Set temporary directory
|
||||
export TMPDIR="/tmp/labels"
|
||||
```
|
||||
|
||||
## Support Resources
|
||||
|
||||
1. **Error Messages** - Check console output
|
||||
2. **GUI Issues** - Verify Kivy installation
|
||||
3. **Print Issues** - Check CUPS configuration
|
||||
4. **Barcode Issues** - Test with standard scanner
|
||||
|
||||
## System Requirements
|
||||
|
||||
- **Python:** 3.10+
|
||||
- **OS:** Linux (CUPS required)
|
||||
- **Printer:** Any CUPS-compatible printer
|
||||
- **Display:** For GUI (optional, can run headless)
|
||||
|
||||
## Version Info
|
||||
|
||||
- **System Version:** 2.0 (PDF-based)
|
||||
- **Release Date:** February 5, 2026
|
||||
- **Status:** ✓ Production Ready
|
||||
|
||||
---
|
||||
|
||||
**Quick Notes:**
|
||||
- Always activate venv before running
|
||||
- Label size is 11.5cm × 8cm (fixed)
|
||||
- Barcode height 18mm (fixed)
|
||||
- Max 25 characters per field (auto-truncates)
|
||||
- PDF format for best quality
|
||||
- Use CUPS for printing
|
||||
Reference in New Issue
Block a user