Clean repository and update .gitignore
- Remove build artifacts from git tracking (build/, dist/, __pycache__/, *.spec) - Updated .gitignore to properly exclude generated files - Added old_code/ documentation folder - Updated sample_data.txt to show new 5-field format - Exclude user-specific conf/app.conf from tracking
This commit is contained in:
270
old_code/WORKFLOW_CORRECTED.md
Normal file
270
old_code/WORKFLOW_CORRECTED.md
Normal file
@@ -0,0 +1,270 @@
|
||||
# Label Printing Workflow - Corrected & Restored
|
||||
|
||||
## 📋 Complete Workflow
|
||||
|
||||
### ✅ Correct Process (Now Working)
|
||||
|
||||
```
|
||||
1. File Monitoring
|
||||
↓
|
||||
txt file changes detected (e.g., "COM-2024-002;ART-67890;SN-20260212")
|
||||
↓
|
||||
2. Parse Data
|
||||
↓
|
||||
Split by semicolon:
|
||||
- Value 1 (Article/Comanda): "COM-2024-002"
|
||||
- Value 2 (Nr. Art.): "ART-67890"
|
||||
- Value 3 (Serial No.): "SN-20260212"
|
||||
↓
|
||||
3. Load SVG Template
|
||||
↓
|
||||
Read: conf/label_template.svg
|
||||
↓
|
||||
4. Replace Variables in Template
|
||||
↓
|
||||
{Article} → "COM-2024-002"
|
||||
{NrArt} → "ART-67890"
|
||||
{Serial} → "SN-20260212"
|
||||
↓
|
||||
5. Convert SVG → PDF
|
||||
↓
|
||||
CairoSVG converts to high-quality PDF @ 1200 DPI
|
||||
Saves to: pdf_backup/final_label_TIMESTAMP.pdf
|
||||
↓
|
||||
6. Print PDF
|
||||
↓
|
||||
SumatraPDF sends to configured printer
|
||||
↓
|
||||
7. Done! ✓
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Key Features
|
||||
|
||||
### 1. **Customizable Layout** (SVG Template)
|
||||
- Location: `conf/label_template.svg`
|
||||
- Users can edit this file to change:
|
||||
- Position of text fields
|
||||
- Font size and style
|
||||
- Graphics/images
|
||||
- Label dimensions
|
||||
- **No code changes needed!**
|
||||
|
||||
### 2. **Variable Placeholders**
|
||||
The template uses curly braces for variables:
|
||||
- `{Article}` - First value (Nr. Comanda)
|
||||
- `{NrArt}` - Second value (Nr. Art.)
|
||||
- `{Serial}` - Third value (Serial No.)
|
||||
|
||||
User can move these anywhere in the SVG template.
|
||||
|
||||
### 3. **Automatic File Monitoring**
|
||||
- Watches: The configured txt file
|
||||
- On change: Automatically reads and prints
|
||||
- No manual intervention needed
|
||||
|
||||
---
|
||||
|
||||
## 🔧 What Was Fixed
|
||||
|
||||
### Problem 1: SVG Template Was Disabled ❌
|
||||
**Before:** Code was using fallback PDF generation (hardcoded layout)
|
||||
**Now:** SVG template is properly enabled and used
|
||||
|
||||
### Problem 2: Poor SVG Rendering ❌
|
||||
**Before:** svglib was failing with many errors, causing fragmentedoutput
|
||||
**Now:** CairoSVG is used first (better font/rendering support)
|
||||
|
||||
### Problem 3: Extra Conversion Steps ❌
|
||||
**Before:** GhostScript was re-converting already good PDFs
|
||||
**Now:** Direct SVG → PDF → Print (no extra conversions)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Data Flow Example
|
||||
|
||||
### Input File Content:
|
||||
```
|
||||
COM-2024-002;ART-67890;SN-20260212
|
||||
```
|
||||
|
||||
### Parsing:
|
||||
```python
|
||||
parts = text.split(';')
|
||||
article = parts[0] # "COM-2024-002"
|
||||
nr_art = parts[1] # "ART-67890"
|
||||
serial = parts[2] # "SN-20260212"
|
||||
```
|
||||
|
||||
### Template Before Replacement:
|
||||
```xml
|
||||
<text>Nr. Comanda:{Article}</text>
|
||||
<text>Nr. Art.:{NrArt}</text>
|
||||
<text>Serial No.:{Serial}</text>
|
||||
```
|
||||
|
||||
### Template After Replacement:
|
||||
```xml
|
||||
<text>Nr. Comanda:COM-2024-002</text>
|
||||
<text>Nr. Art.:ART-67890</text>
|
||||
<text>Serial No.:SN-20260212</text>
|
||||
```
|
||||
|
||||
### Output:
|
||||
- PDF file: `pdf_backup/final_label_20260213_HHMMSS.pdf`
|
||||
- Print: Sent to configured printer
|
||||
- Log: Entry added to `logs/print_log_20260213.csv`
|
||||
|
||||
---
|
||||
|
||||
## 🎨 How to Customize the Label Layout
|
||||
|
||||
1. **Open the template:**
|
||||
```
|
||||
conf/label_template.svg
|
||||
```
|
||||
|
||||
2. **Edit in any SVG editor:**
|
||||
- Inkscape (free)
|
||||
- Adobe Illustrator
|
||||
- CorelDRAW
|
||||
- Or any text editor
|
||||
|
||||
3. **Keep the variable placeholders:**
|
||||
- `{Article}`
|
||||
- `{NrArt}`
|
||||
- `{Serial}`
|
||||
|
||||
4. **Save the file**
|
||||
|
||||
5. **Next print will use the new layout!**
|
||||
|
||||
### Example Changes:
|
||||
- Move text to different positions
|
||||
- Change font size in the SVG
|
||||
- Add company logo
|
||||
- Change colors
|
||||
- Adjust spacing
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Testing the Workflow
|
||||
|
||||
### Test 1: Verify Template is Used
|
||||
```powershell
|
||||
.\venv\Scripts\python.exe label_printer_gui.py
|
||||
```
|
||||
|
||||
Watch console output - should see:
|
||||
```
|
||||
Using SVG template: conf\label_template.svg
|
||||
Converting SVG to PDF using CairoSVG (high quality)...
|
||||
✅ PDF created from SVG template: pdf_backup\final_label_...pdf
|
||||
```
|
||||
|
||||
### Test 2: Check the Generated PDF
|
||||
```powershell
|
||||
# Open latest PDF to verify content
|
||||
$latest = Get-ChildItem pdf_backup\*.pdf | Sort-Object LastWriteTime -Desc | Select-Object -First 1
|
||||
Start-Process $latest.FullName
|
||||
```
|
||||
|
||||
Verify you see:
|
||||
- ✅ Three lines of text (Nr. Comanda, Nr. Art., Serial No.)
|
||||
- ✅ Values filled in correctly
|
||||
- ✅ Checkmark image (if template has it)
|
||||
|
||||
### Test 3: Print Test
|
||||
Put sample data in your monitored file:
|
||||
```
|
||||
COM-TEST-001;ART-7777;SN-20260213
|
||||
```
|
||||
|
||||
Should automatically print with correct values.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Configuration Files
|
||||
|
||||
### 1. **Label Template** (conf/label_template.svg)
|
||||
- **Purpose:** Defines layout, positions, fonts
|
||||
- **Editable:** Yes - by user
|
||||
- **Format:** SVG (XML-based vector graphics)
|
||||
|
||||
### 2. **App Configuration** (conf/app.conf)
|
||||
- **Purpose:** Stores GUI settings
|
||||
- **Contains:**
|
||||
- File path to monitor
|
||||
- Selected printer
|
||||
- Preview settings
|
||||
|
||||
### 3. **Images** (conf/*.png)
|
||||
- **accepted.png:** Checkmark/approval image (embedded in template)
|
||||
- **refused.png:** Rejection image (if needed)
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Complete Print Quality Settings
|
||||
|
||||
The system now maintains quality through:
|
||||
|
||||
1. **SVG Template** → Vector graphics (scalable, sharp)
|
||||
2. **CairoSVG Conversion** → Renders @ 1200 DPI
|
||||
3. **PDF Output** → Uncompressed, high quality
|
||||
4. **Printer Configuration** → Set to 600 DPI minimum
|
||||
5. **Direct Printing** → No extra conversions
|
||||
|
||||
---
|
||||
|
||||
## 📊 Workflow States
|
||||
|
||||
| Step | Status | Output |
|
||||
|------|--------|--------|
|
||||
| File changed | ✅ Working | Triggers processing |
|
||||
| Parse data | ✅ Working | Splits by `;` |
|
||||
| Load template | ✅ Working | Reads SVG file |
|
||||
| Replace variables | ✅ Working | Substitutes `{...}` |
|
||||
| SVG→PDF | ✅ Working | CairoSVG @ 1200 DPI |
|
||||
| Print | ✅ Working | SumatraPDF direct |
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Issue: "SVG template not found"
|
||||
**Solution:** Check that `conf/label_template.svg` exists
|
||||
|
||||
### Issue: "CairoSVG conversion failed"
|
||||
**Solution:**
|
||||
```powershell
|
||||
.\venv\Scripts\pip.exe install --upgrade cairosvg
|
||||
```
|
||||
|
||||
### Issue: Wrong values printed
|
||||
**Solution:** Verify data format in txt file: `value1;value2;value3`
|
||||
|
||||
### Issue: Printer prints blank/partial
|
||||
**Solution:** Run printer configuration:
|
||||
```powershell
|
||||
.\configure_label_size.ps1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📖 Summary
|
||||
|
||||
The workflow is now **fully restored** and **working correctly**:
|
||||
|
||||
✅ SVG template enabled for customizable layouts
|
||||
✅ Variable replacement working ({Article}, {NrArt}, {Serial})
|
||||
✅ High-quality PDF generation via CairoSVG
|
||||
✅ Direct printing without extra conversions
|
||||
✅ User can modify template without code changes
|
||||
|
||||
**No more hardcoded layouts!**
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** February 13, 2026
|
||||
**Status:** ✅ Workflow Restored & Working
|
||||
Reference in New Issue
Block a user