In the digital world, most businesses have transitioned to modern laser or thermal printers. However, many industries such as manufacturing, logistics, and wholesale distribution still depend on dot matrix printers for printing invoices, delivery slips, and carbon-copy documents.
These printers remain popular for one key reason: they are reliable, cost-effective, and built to handle multi-part forms and tough environments.
This article explains how to integrate dot matrix printing into Odoo, why it remains relevant, and how a custom XML-based template can make Odoo compatible with traditional printers.
Why Dot Matrix Printing Still Matters
Despite their age, dot matrix printers continue to offer practical benefits:
Carbon copy printing
Ideal for multi-layer NCR paper.
Low operational cost
Uses affordable ribbon cartridges instead of toner.
Rugged reliability
Performs consistently in dusty, humid, or high-temperature conditions.
Continuous feed support
Well-suited for long invoices and reports.
Implementing Dot Matrix Printing in Odoo
Odoo’s standard PDF reports are optimized for laser or inkjet printers, which rely on rich formatting and page rendering. Dot matrix printers, on the other hand, require plain-text output with precise control over spacing, line breaks, and font width.
To achieve this, developers can create a custom QWeb template that outputs raw ESC/P control characters and fixed-width text, instead of using the default HTML-to-PDF conversion.
This custom approach allows Odoo to:
- Define page length and line spacing.
- Truncate and pad text for consistent alignment.
- Insert ESC/P commands (such as \x1B\x40) for printer control.
- Manage pagination based on character count rather than page size.
The result is a clean, continuous-feed printout compatible with standard dot matrix models like the Epson LX, FX, or LQ series.
Key Technical Highlights
Direct Printer Commands
ESC/P sequences such as \x1B\x40 (initialize printer) and \x1B\x28\x43 (set page length) are embedded directly in the report output.
Character Width Precision
Each text field is truncated or padded to maintain exact alignment. For example, customer names can be limited to 45 characters for uniform column spacing.
Multi-Page Handling
A loop determines how many invoice lines fit on a page (for instance, 32 lines) and automatically adds a “Continue on next page” marker when needed.
Performance
Since the output is plain text, there is no PDF rendering or font embedding involved. This results in fast, lightweight, and reliable printing.
Real-World Example
A client approached us with a specific requirement:
Print invoices from Odoo using a dot matrix printer.
Print invoices from Odoo using a dot matrix printer. This was not a matter of preference. Their partner banks required invoices printed on dot matrix forms to verify transaction authenticity.
Using Odoo’s default PDF reports led to misalignment and formatting issues when printed on continuous paper.
After implementing a custom dot matrix report template, the client achieved:
- Bank-compliant, perfectly aligned invoices
- Instant print performance directly from Odoo
- Elimination of form misalignment and paper waste
This customization allowed the retailer to meet strict documentation requirements while retaining the efficiency and automation of Odoo’s accounting system.
Conclusion
Dot matrix printing may seem outdated, but it remains essential for industries that rely on multi-copy paper forms.
With Odoo’s flexible QWeb reporting engine, businesses can bridge the gap between modern ERP systems and legacy printing infrastructure. This integration ensures operational continuity without compromising on automation or performance.
If your business still uses dot matrix printers and you want to integrate them with Odoo, our team can help you design and implement a custom report template that fits your specific workflow and printer setup.
Start writing here...
Dot Matrix Printing in Odoo — Bridging Modern ERP with Legacy Hardware