POS Network ESC/POS Printers for Odoo 18
Direct LAN ESC/POS printing for Odoo POS kitchen tickets and customer receipts without an IoT Box and without browser print dialogs.
Overview
POS Network ESC/POS Printers adds direct network thermal printer support to Odoo 18 Point of Sale.
It sends raw ESC/POS commands from the Odoo server to LAN printers over TCP/IP, usually on port 9100.
The module is ideal for restaurants, bars, cafes, fast-food locations and shops that need separate kitchen preparation tickets and customer receipt printers.
Main Features
Multiple Printers
Configure multiple LAN ESC/POS printers per POS and assign each one a clear role: kitchen, receipt or both.
POS Category Routing
Print only the relevant product categories on each printer, such as kitchen, bar, grill, salads or drinks.
Customer Receipts
Use network receipt printers from the POS Print Full Receipt button without falling back to Windows/browser printing.
Cyrillic Support
Supports Bulgarian/Cyrillic text with configurable ESC/POS encoding and codepage table.
Bitmap Receipt Mode
Print customer receipts as images to preserve layout, logo, Cyrillic text and euro symbol exactly.
Auto Cut
Feed paper before cutting and cut only after the full ticket or receipt has been printed.
Supported Use Cases
- Kitchen tickets printed by POS preparation printers
- Customer receipts printed from the payment screen
- Two-printer restaurant setup: one kitchen printer and one customer receipt printer
- Multiple preparation printers filtered by POS categories
- Bulgarian/Cyrillic product names and receipt content
- Logo printed from company logo or custom printer logo
- Euro symbol printed correctly in bitmap receipt mode
Tested Printer Profile
| Printer | XPrinter XP-T80Q |
|---|---|
| Connection | LAN / Ethernet |
| Port | 9100 |
| Paper | 80mm |
| Cyrillic encoding | CP866 |
| Working codepage tables | 17 and 46 |
| Recommended receipt mode | Bitmap / Image Receipt |
Installation
- Copy the module folder to your Odoo addons path.
- Restart Odoo.
- Update Apps List.
- Install POS Network ESC/POS Printers.
- Configure POS printers.
- Close and reopen the POS interface after changing printer settings.
odoo -c /etc/odoo/odoo.conf -d YOUR_DATABASE -u pos_escpos_network_printer --stop-after-init
Configuration
1. Create POS Printers
Go to:
Point of Sale → Configuration → POS Printers
Select:
Printer Type: Network ESC/POS Printer
2. Kitchen Printer
ESC/POS Role: Kitchen Printer IP Address: printer LAN IP Port: 9100 Text Encoding: CP866 ESC/POS Codepage Table: 17 Cut After Print: enabled Feed Before Cut: 5 POS Categories: kitchen categories
3. Receipt Printer
ESC/POS Role: Receipt Printer IP Address: printer LAN IP Port: 9100 Customer Receipt Print Mode: Bitmap / Image Receipt Bitmap Receipt Width: 576 Print Logo: enabled Logo Source: Company Logo Cut After Print: enabled Feed Before Cut: 5
4. Assign Printers to POS
Kitchen printers are added under the standard Odoo preparation printer setting:
Point of Sale → Configuration → Point of Sale → Preparation → Preparation Printers
Customer receipt printers are added under:
Point of Sale → Configuration → Point of Sale → Network ESC/POS Printers → Network ESC/POS Receipt Printers
Receipt Modes
Text ESC/POS
Fast text printing mode for simple receipts and kitchen tickets. Recommended for kitchen tickets.
Bitmap / Image Receipt
Renders the customer receipt as an image and prints it as ESC/POS raster data. Recommended when the receipt needs logo, Cyrillic and € symbol.
Logo Printing
The module can print the Odoo company logo or a custom logo configured on the printer. Transparent PNG logos are composited on a white background to avoid black rectangles behind the logo.
Troubleshooting
| Problem | Solution |
|---|---|
| POS opens browser/Windows print dialog | Make sure the receipt printer is active, configured as Receipt/Both, and added to Network ESC/POS Receipt Printers. |
| Cyrillic is wrong in text mode | Use CP866 with table 17 or 46, or switch customer receipts to Bitmap / Image Receipt mode. |
| Euro symbol prints as ? | Use Bitmap / Image Receipt mode. |
| Logo has black background | Use this version or newer. Transparent logos are handled on white background. |
| Cutter is too close to text | Increase Feed Before Cut to 5, 6 or 7 lines. |
Please log in to comment on this module