- 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
176 lines
5.2 KiB
Markdown
176 lines
5.2 KiB
Markdown
# Print Quality Improvements - Label Printer
|
|
|
|
## Summary of Changes
|
|
|
|
This document outlines the comprehensive print quality improvements made to enhance label output quality, particularly for thermal label printers.
|
|
|
|
---
|
|
|
|
## 🎯 Key Improvements
|
|
|
|
### 1. **Increased DPI Resolution**
|
|
- **Before:** 600 DPI
|
|
- **After:** 1200 DPI
|
|
- **Impact:** Significantly sharper text and images, especially on thermal printers
|
|
- **Changed in:** `print_label_pdf.py` - PDFLabelGenerator class
|
|
|
|
### 2. **Enhanced Font Size**
|
|
- **Before:** 6pt font (~2.1mm height)
|
|
- **After:** 8pt font (~2.8mm height)
|
|
- **Impact:** Better readability, especially for serial numbers and part numbers
|
|
- **Changed in:** `print_label_pdf.py` - create_label_pdf() method
|
|
|
|
### 3. **Disabled PDF Compression**
|
|
- **Before:** Compression enabled (level 1)
|
|
- **After:** Compression disabled (level 0)
|
|
- **Impact:** No quality loss from compression artifacts
|
|
- **Changed in:** `print_label_pdf.py` - create_label_pdf() method
|
|
|
|
### 4. **Improved Image Quality**
|
|
- **Before:** Converted images to grayscale ('L' mode)
|
|
- **After:** Keep images in RGB mode with DPI metadata
|
|
- **Impact:** Better image quality; thermal printers will handle color→BW conversion optimally
|
|
- **Changed in:** `print_label_pdf.py` - load_image() and create_label_pdf() methods
|
|
|
|
### 5. **Fixed Image Resampling**
|
|
- **Before:** Used deprecated `Image.LANCZOS`
|
|
- **After:** Uses `Image.Resampling.LANCZOS` with fallback
|
|
- **Impact:** Compatible with newer Pillow versions, maintains quality
|
|
- **Changed in:** `print_label.py` - create_label_image() method
|
|
|
|
### 6. **Improved SumatraPDF Print Settings**
|
|
- **Before:** `noscale,landscape`
|
|
- **After:** `noscale,landscape,fit`
|
|
- **Impact:** Ensures content fits page properly without clipping
|
|
- **Changed in:** `print_label.py` - print_to_printer() method
|
|
|
|
---
|
|
|
|
## 📋 Additional Recommendations
|
|
|
|
### Printer Settings Configuration
|
|
|
|
For optimal print quality, ensure your thermal printer is configured with:
|
|
|
|
1. **Print Quality:** Highest/Best (600 DPI or higher)
|
|
2. **Darkness/Intensity:** Medium to High (adjust based on label material)
|
|
3. **Print Speed:** Medium to Slow (slower = better quality)
|
|
4. **Dithering:** None/Off (for sharp text and barcodes)
|
|
5. **Graphics Mode:** Vector or High Quality
|
|
6. **Paper Type:** Label/Thermal (match your label stock)
|
|
|
|
### How to Configure Windows Printer Settings
|
|
|
|
1. Open **Windows Settings** → **Devices** → **Printers & scanners**
|
|
2. Click on your **Labels** printer
|
|
3. Click **Manage** → **Printing preferences**
|
|
4. Look for these settings:
|
|
- **Quality tab:** Set to highest DPI available
|
|
- **Advanced tab:** Check for density/darkness settings
|
|
- **Graphics tab:** Disable dithering, enable vector mode
|
|
5. Click **Apply** and **OK**
|
|
|
|
---
|
|
|
|
## 🔧 Troubleshooting
|
|
|
|
### If print quality is still poor:
|
|
|
|
1. **Run the printer quality check:**
|
|
```powershell
|
|
.\check_printer_quality.ps1
|
|
```
|
|
|
|
2. **Check label material:**
|
|
- Direct thermal labels need heat-sensitive coating
|
|
- Thermal transfer labels need ribbon cartridge
|
|
- Wrong label type = poor quality
|
|
|
|
3. **Verify printer driver:**
|
|
- Update to latest driver from manufacturer's website
|
|
- Some generic drivers don't support high-quality settings
|
|
|
|
4. **Test print from printer:**
|
|
- Print a self-test page from the printer
|
|
- This verifies printer hardware is functioning correctly
|
|
|
|
5. **Check printhead:**
|
|
- Dirty printhead = streaky output
|
|
- Clean printhead with isopropyl alcohol and cleaning cards
|
|
|
|
6. **Adjust print darkness:**
|
|
- Too light: Increase darkness/temperature
|
|
- Too dark: Decrease darkness/temperature
|
|
- Adjust in printer preferences or physical dial
|
|
|
|
---
|
|
|
|
## 📊 Quality Comparison
|
|
|
|
| Aspect | Before | After | Improvement |
|
|
|--------|--------|-------|-------------|
|
|
| DPI | 600 | 1200 | +100% |
|
|
| Font Size | 6pt | 8pt | +33% |
|
|
| Image Mode | Grayscale | RGB | Better quality |
|
|
| PDF Compression | Enabled | Disabled | No artifacts |
|
|
| Image Resampling | Deprecated API | Modern API | Better compatibility |
|
|
|
|
---
|
|
|
|
## 🧪 Testing
|
|
|
|
To verify improvements:
|
|
|
|
1. **Print a test label** with all three fields filled
|
|
2. **Check text readability:** Should be crisp and clear
|
|
3. **Inspect image:** Should have clean edges without jaggedness
|
|
|
|
Expected results:
|
|
- ✅ Text is sharp and readable at arm's length
|
|
- ✅ Images (accepted/refused checkmark) are crisp
|
|
- ✅ No pixelation or compression artifacts visible
|
|
|
|
---
|
|
|
|
## 📝 Code Changes Summary
|
|
|
|
### Files Modified:
|
|
1. `print_label_pdf.py` - 5 changes
|
|
2. `print_label.py` - 2 changes (image resampling + print settings)
|
|
|
|
### Backward Compatibility:
|
|
- ✅ All changes are backward compatible
|
|
- ✅ No breaking changes to API
|
|
- ✅ Fallback for older Pillow versions included
|
|
|
|
---
|
|
|
|
## 🔄 Rollback Instructions
|
|
|
|
If you need to revert changes:
|
|
|
|
```bash
|
|
git checkout HEAD~1 print_label_pdf.py print_label.py
|
|
```
|
|
|
|
Or manually adjust these values back in the files:
|
|
- DPI: 1200 → 600
|
|
- Font size: 8 → 6
|
|
- Compression: 0 → 1
|
|
|
|
---
|
|
|
|
## 📞 Support
|
|
|
|
If print quality issues persist after these changes:
|
|
|
|
1. Verify printer model and capabilities
|
|
2. Check printer firmware version
|
|
3. Test with different label stock
|
|
4. Contact printer manufacturer support with sample outputs
|
|
|
|
---
|
|
|
|
**Last Updated:** February 13, 2026
|
|
**Version:** 2.0 - Quality Enhancement Release
|