Émulateur d'imprimante pour système de point de vente (POS). Ce fork est optimisé pour l'intégration avec le système Véloce POS.
Note : Ce fork se concentre exclusivement sur le protocole ESC/POS (support ZPL retiré).
Intégrer le système POS Véloce pour :
- ✅ Capturer les données de factures ESC/POS en temps réel
- 📊 Analyser la structure des données via hexdump
- 💾 Stocker les factures dans MariaDB (Phase 2)
- 📱 Exposer les données aux systèmes d'affichage externes
┌──────────────┐ Port 9100 ┌────────────────┐ Hexdump ┌──────────┐
│ Véloce POS │ ───────────────> │ VelocePrinter │ ────────────> │ /logs/ │
└──────────────┘ TCP/ESC-POS └────────────────┘ Analyse └──────────┘
│
│ (Phase 2)
v
┌─────────────┐
│ MariaDB │
└─────────────┘
- Télécharger
zpl-escpos-printer-*-setup.exedepuis Releases - Exécuter l'installateur
# Debian/Ubuntu
sudo dpkg -i zpl-escpos-printer_*_amd64.deb
# RedHat/CentOS
sudo rpm -i zpl-escpos-printer-*.x86_64.rpm# Décompresser le zip
unzip Zpl-EscPos.Printer-darwin-*.zip
# Déplacer vers Applications
mv "Zpl-EscPos Printer.app" /Applications/- Lancer l'application
- Cliquer sur l'icône ⚙️ (Paramètres)
- Décocher "ZPL Mode" (on utilise uniquement ESC/POS)
- Configurer le serveur TCP :
- Host :
0.0.0.0(écoute toutes les interfaces réseau) - Port :
9100(standard imprimantes ESC/POS) - Buffer Size :
4096(par défaut, suffit pour factures Véloce)
- Host :
- Aller dans Configuration → Imprimantes
- Ajouter une nouvelle imprimante :
- Type : Imprimante réseau ESC/POS
- Adresse IP :
<IP du PC où tourne VelocePrinter> - Port :
9100 - Protocole : TCP/IP
- Tester avec une facture
- Imprimer une facture depuis Véloce
- ✅ La facture s'affiche dans VelocePrinter
- ✅ Un fichier hexdump est créé dans
/logs/hexdumps/ - ✅ Pas de timeout dans Véloce
- ✅ Capture automatique de toutes les données ESC/POS reçues
- ✅ Stockage en format hexdump lisible (
/logs/hexdumps/) - ✅ Métadonnées : timestamp, IP client, taille données
- ✅ Export Base64 pour retraitement
- ✅ Affichage visuel des factures (UI inchangée)
- 🔄 Extraction des données structurées (articles, prix, totaux)
- 🔄 Stockage dans MariaDB
- 🔄 API REST pour systèmes externes
- 🔄 Dashboard d'affichage temps réel
- Node.js 18+ (recommandé : 20 LTS)
- yarn (recommandé) ou npm
- Git
git clone https://github.com/KimBelanger/VelocePrinter.git
cd VelocePrinter
yarn install # ou: npm installyarn start # Mode développement avec logs
yarn package # Package pour OS courant
yarn make # Générer binaires multi-OSÉquivalent npm : npm start, npm run package, npm run make
# Test simple
echo -ne '\x1b\x40TEST\x0a\x1b\x64\x03' | nc localhost 9100
# Facture simulée
cat test_facture.bin | nc localhost 9100VelocePrinter/
├── main.js # Processus Electron principal
├── package.json # Dépendances npm
├── forge.config.js # Config build Electron Forge
│
├── ZplEscPrinter/
│ ├── main.html # Interface utilisateur
│ └── js/
│ ├── main.js # ⭐ Serveur TCP + traitement ESC/POS
│ └── esc_commands.js # Gestion commandes de status
│
├── logs/
│ └── hexdumps/ # 📁 Captures hexdump (non tracké git)
│
├── _PLAN.md # Plan d'implémentation (tracké)
└── README.md # Ce fichier
- Factures/jour : 50-150
- Factures/heure (max) : 50
- Taille moyenne facture : 256-2048 bytes
- ✅ Asynchrone non-bloquant
- ✅ Buffer accumulatif (gère >64KB)
- ✅ Timeout débounce 100ms (entre chunks)
- erikn69/ZplEscPrinter (upstream)
- ✅ Nouveau : Capture hexdump automatique des données ESC/POS
- ✅ Nouveau : Logging structuré (
/logs/hexdumps/) - ✅ Nouveau : Documentation française complète
- ✅ Optimisation : Focus exclusif ESC/POS (ZPL retiré)
- 📋 Planifié : Parsing intelligent + MariaDB (Phase 2)
- Ajout support ESC/POS
- Refonte architecture
- Support multi-plateforme
Les contributions sont bienvenues !
- Fork le projet
- Créer une branche feature :
git checkout -b feature/ma-feature - Commit :
git commit -m 'Ajout ma feature' - Push :
git push origin feature/ma-feature - Ouvrir une Pull Request
ISC License - Voir fichier LICENSE
================================================================================
CAPTURE TIMESTAMP: 2025-12-04T14:30:45.123Z
CLIENT: 192.168.1.100:9100
DATA SIZE: 256 bytes
================================================================================
00000000 1b 40 1b 61 01 56 65 6c 6f 63 65 20 50 4f 53 0a |.@.a.Veloce POS.|
00000010 1b 61 00 46 41 43 54 55 52 45 20 23 31 32 33 34 |.a.FACTURE #1234|
...
- Issues GitHub : KimBelanger/VelocePrinter/issues
- Upstream Original : erikn69/ZplEscPrinter
- Guide Véloce POS (système de point de vente)
- Protocole ESC/POS (Wikipedia)
- RFC Imprimantes Réseau (LPD/LPR)
