168 lines
4.5 KiB
Markdown
168 lines
4.5 KiB
Markdown
# Quality Windows Print Service - Complete Self-Contained Package
|
|
|
|
## 🎯 Overview
|
|
This is a complete, self-contained Windows print service for Quality Label system with zero external dependencies.
|
|
|
|
## 📦 Package Contents
|
|
|
|
### Core Files:
|
|
- `print_service_complete.py` - Main Python service (uses only standard library)
|
|
- `install_service_complete.bat` - Complete installer (run as Administrator)
|
|
- `uninstall_service_complete.bat` - Complete uninstaller
|
|
- `requirements_complete.txt` - Dependencies list (all standard library)
|
|
|
|
### Chrome Extension:
|
|
- `chrome_extension/` - Complete Chrome extension for web integration
|
|
- `chrome_extension/manifest.json` - Extension configuration
|
|
- `chrome_extension/background.js` - Service communication
|
|
- `chrome_extension/popup.html` - Extension interface
|
|
|
|
### Documentation:
|
|
- `README.md` - This file
|
|
- `PORTABLE_PYTHON_INSTRUCTIONS.txt` - Guide for Python distribution
|
|
- `INSTALLATION_COMPLETE.md` - Detailed installation guide
|
|
|
|
### Optional Build Tools:
|
|
- `build_executable.bat` - Creates standalone .exe (requires PyInstaller)
|
|
- `build_package.py` - Package builder script
|
|
|
|
## 🚀 Quick Installation (5 Minutes)
|
|
|
|
### Prerequisites:
|
|
- Windows 10/11 or Windows Server 2016+
|
|
- Administrator privileges
|
|
- Python 3.7+ (or use included portable Python)
|
|
- Google Chrome browser
|
|
|
|
### Steps:
|
|
1. **Extract Package**: Extract all files to a temporary location
|
|
2. **Run Installer**: Right-click `install_service_complete.bat` → "Run as administrator"
|
|
3. **Install Extension**: Load `chrome_extension` folder in Chrome (chrome://extensions/)
|
|
4. **Test Service**: Visit http://localhost:8765/health
|
|
|
|
## 🔧 Technical Details
|
|
|
|
### Service Architecture:
|
|
```
|
|
Web App → Chrome Extension → Windows Service → Printer
|
|
```
|
|
|
|
### Features:
|
|
- ✅ Pure Python implementation (standard library only)
|
|
- ✅ Multiple printing methods (Adobe Reader, SumatraPDF, PowerShell, Edge, System Default)
|
|
- ✅ Automatic service recovery and restart
|
|
- ✅ Comprehensive logging system
|
|
- ✅ Cross-printer compatibility
|
|
- ✅ Zero external dependencies
|
|
- ✅ Windows service integration
|
|
- ✅ Chrome extension communication
|
|
|
|
### Service Endpoints:
|
|
- `GET /health` - Service health check
|
|
- `GET /printers` - List available printers
|
|
- `GET /status` - Service status and statistics
|
|
- `POST /print_pdf` - Print PDF file
|
|
|
|
### Printing Methods (Fallback Chain):
|
|
1. Adobe Reader command line
|
|
2. SumatraPDF automation
|
|
3. PowerShell printing
|
|
4. Microsoft Edge integration
|
|
5. System default application
|
|
|
|
## 🛠️ Advanced Configuration
|
|
|
|
### Service Configuration:
|
|
- Service Name: `QualityPrintService`
|
|
- Display Name: `Quality Label Print Service`
|
|
- Installation Path: `C:\QualityPrintService\`
|
|
- Log Directory: `%USERPROFILE%\PrintService\logs\`
|
|
- Port: `8765` (localhost only)
|
|
|
|
### Logging:
|
|
- Daily log rotation
|
|
- Separate error and output logs
|
|
- Configurable log levels
|
|
- Automatic cleanup
|
|
|
|
### Recovery Options:
|
|
- Auto-restart on failure (3 attempts)
|
|
- 5-second delay between restarts
|
|
- 24-hour reset period
|
|
- Scheduled task fallback
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Service Won't Start:
|
|
1. Check Windows Event Viewer
|
|
2. Verify Python installation
|
|
3. Check port 8765 availability
|
|
4. Run as Administrator
|
|
|
|
### Printing Issues:
|
|
1. Verify printer installation
|
|
2. Check printer permissions
|
|
3. Test with different print methods
|
|
4. Review service logs
|
|
|
|
### Extension Issues:
|
|
1. Reload extension in Chrome
|
|
2. Check extension permissions
|
|
3. Verify service connectivity
|
|
4. Clear browser cache
|
|
|
|
### Common Solutions:
|
|
```bash
|
|
# Check service status
|
|
sc query QualityPrintService
|
|
|
|
# Restart service
|
|
sc stop QualityPrintService
|
|
sc start QualityPrintService
|
|
|
|
# Test connectivity
|
|
curl http://localhost:8765/health
|
|
|
|
# View logs
|
|
type "%USERPROFILE%\PrintService\logs\print_service_*.log"
|
|
```
|
|
|
|
## 📋 System Requirements
|
|
|
|
### Minimum Requirements:
|
|
- Windows 10 (1903) or Windows Server 2016
|
|
- 50 MB free disk space
|
|
- Python 3.7+ (can be portable)
|
|
- Chrome/Edge browser
|
|
- Local printer access
|
|
|
|
### Recommended:
|
|
- Windows 10/11 (latest)
|
|
- 100 MB free disk space
|
|
- Python 3.9+
|
|
- Administrative privileges
|
|
- Network printer access
|
|
|
|
## 🔒 Security Notes
|
|
- Service runs on localhost only (127.0.0.1:8765)
|
|
- No external network access required
|
|
- Uses Windows authentication
|
|
- Temporary files auto-cleanup
|
|
- Secure PDF handling
|
|
|
|
## 🚀 Performance
|
|
- Memory usage: ~15-30 MB
|
|
- CPU usage: <1% (idle)
|
|
- Startup time: ~2 seconds
|
|
- Print processing: ~1-3 seconds per job
|
|
|
|
## 📞 Support
|
|
For issues or questions:
|
|
1. Check this README
|
|
2. Review log files
|
|
3. Test with different browsers
|
|
4. Verify printer connectivity
|
|
|
|
## 📝 License
|
|
Internal use only - Quality Label System
|