Skip to Content

How Blackpaw Innovations Solved a Tiny Problem with Huge Consequences

How Blackpaw Innovations Solved a Tiny Problem with Huge Consequences

It should’ve been easy.

A simple click. A slip of paper. A crisp, branded receipt delivered to a paying customer — no drama, no deciphering hieroglyphics. But anyone who has ever tried printing receipts from Odoo POS to a thermal printer knows this tale rarely ends so neatly. If you want to download a universal thermal printer, go to the bottom of the page. If you want a custom XML receipt design file for Odoo POS go to the bottom of the page as well. 

Instead of a clear, professional receipt, we got a chaotic haiku of technical glitches:

  • Misaligned product lines
  • Fonts that moonlighted as Chinese symbols
  • Garbled characters straight out of a bad ‘90s promotional website
  • Previews that were perfect, but prints that looked like ransom notes

If you're searching for how to fix Odoo POS receipt printing issues or you're wondering why your thermal printer is printing weird symbols in Odoo, you're not alone. This is one of the most common frustrations for businesses integrating Odoo POS printer setups without a dedicated IoT Box.

It was a brutal reminder that in the world of point-of-sale systems, thermal printers are divas. And Odoo — for all its elegance as an ERP system — leaves just enough of the setup to you to make it feel like a riddle wrapped in printer tape.

Thermal Printer that Blackpaw Innovations had to troubleshoot with

🛠️ A Little History of a Big Pain: Why This Keeps Happening

Sample of receipt that Blackpaw Innovations had to deal with after

Thermal printers, beloved for their speed and lack of ink, work with ESC/POS commands — a protocol originally designed by Epson and widely adopted in retail hardware. Unlike inkjets or lasers that interpret graphical layout files like PDFs, thermal printers thrive on raw text commands with precise spacing, code pages, and alignment cues.

If your Odoo POS thermal printer is not working, it’s likely a combination of:

  • Code page mismatches (e.g., code page 1253 or Chinese encoding)
  • A broken QZ Tray thermal printer integration
  • Or a poorly configured Odoo receipt template

Here’s where things break down:

  • Odoo’s default output is designed for screen-perfect rendering, not low-level printer logic.
  • Browser-based printing (via PDF preview) introduces margins, scaling, and font issues.
  • QWeb templates, while flexible, don't translate well unless the printer is ready to interpret them — which many aren't, straight out of the box.
  • And driver conflicts, like the notorious “Generic / Text Only” driver, often default to incorrect encoding.

Add to this the complexity of manual port mapping (USB001 vs. LPT1 vs. COM3), the need to support ESC/POS universal drivers for Odoo, and the optional-but-powerful QZ Tray setup, and you have yourself a printing pipeline that feels more like defusing a bomb than issuing a sales receipt.

🖨️ The Machine in Question: TEP-220MC Printer Diagnostics

The Receipt Printer that Blackpaw Innovations

From our initial diagnostics, we identified that the client was using an E-POS TEP-220MC Thermal Receipt Printer, integrated with Odoo POS. Upon testing, the printed receipts were exhibiting the following problems:

  • Strange formatting with misaligned layouts and broken spacing
  • Garbled characters or foreign language symbols (such as Chinese), despite using an English POS interface
  • Inconsistent printing depending on which workstation was initiating the print job

These issues pointed toward character encoding mismatches and improper driver configurations, especially related to the printer's default code page settings and USB assignments. If you've typed "Odoo POS printing strange characters" or "how to fix garbled receipts in Odoo" into Google, you're already halfway here.

🚣️ The Wrong Roads We Took (So You Don’t Have To)

The previous system drivers that Blackpaw Innovations worked with

We tried everything. Here's a breakdown of what didn't work and why:

1. Browser Print via Preview

Odoo's on-screen preview looked stunning — but printed with huge margins, cropped sections, and inconsistent font sizing. Thermal printers aren’t built for this kind of layout-heavy rendering.

2. Fancy HTML & CSS Styling in QWeb

Sure, you can design a gorgeous receipt template in XML and HTML — but thermal printers don't understand divs and classes. What you see in the browser isn’t what you get on the print roll.

3. Odoo IoT Box Integration

Odoo’s recommended IoT Box offers great plug-and-play printer support — but in this case, it wasn’t available. Our system needed to run on a local Windows setup, relying on a manual QZ Tray setup.

✅ The Real Fix: What Finally Worked

Sample of a good receipt printed by the machine

If you’re facing Odoo POS printing to wrong port or printer, the solution lies in rebuilding your entire printer setup methodically.

1. Delete Conflicting Drivers

We wiped out all previous installations — especially the “Generic / Text Only” driver, which defaulted to the Greek 1253 code page (yes, seriously).

2. Install a Universal ESC/POS Driver

Using a driver that supported code pages 437 or 850 (commonly used in Western scripts) ensured compatibility with special characters, currency symbols, and barcode commands.

3. Reassign to USB001

From Windows’ Device Manager, we reassigned the printer to USB001 — a physical port tied to the system — ensuring consistency and eliminating "ghost" ports.

4. Set the Paper Size Correctly

Thermal printers usually work with 80mm x 200–300mm roll sizes. We manually set this dimension in both the driver and print dialogue.

5. Rename the Printer Smartly

To ensure no conflicts in we gave the printer a simple, unique name — easy to call and debug.

6. Assign the Right Printer Properties

When printing from a web app, ensure Margins are set to none and receipt size set to "Media Size".

🎨 Odoo POS Receipt Design: The Finishing Touch

Sample of a receipt designed by Blackpaw Innovations

Once the hardware was properly configured, we shifted to Odoo receipt template customization:

  • Headed to POS > Configuration > Receipt Designs
  • Edited the XML to:
    • Decrease font-size for thermal clarity
    • Boost font-weight for bold headers
    • Add spacing between product lines and totals for legibility

This not only improved legibility, it brought the printout in line with the brand's visual identity. So if you’re searching for how to customize Odoo receipt templates, this is your starting point.

🧪 Case Study: A Client’s Receipt Redemption

A sample of a watch store in downtown Nairobi

A Nairobi-based watch retail store came to us with a frustrating problem: receipts printing inconsistently across multiple thermal printers. Some showed garbled text, others skipped product lines entirely. Customers were confused. Cashiers were improvising. The store manager was ready to abandon the system altogether.

Rather than apply a one-time fix, we implemented a repeatable, scalable configuration across their network:

  • Cleared outdated and conflicting drivers across all machines
  • Installed a universal ESC/POS-compatible driver supporting code page 437
  • Mapped each printer cleanly to USB001 or its correct port
  • Renamed each printer for clarity and system-wide consistency
  • Customized the receipt template to include branding, tax ID, and contact details

This solution was rolled out station by station, ensuring standardization. Within 72 hours, the entire retail floor was back in sync — and printing beautifully.

Not only did the printers behave, but the team could now onboard new hardware with confidence — using the same proven setup process.

🎯 Final Thoughts: When Receipt Printing Is Mission Critical

Blackpaw Innovations Customizes Odoo POS Receipt to the clients' requirements

If you’re Googling "best thermal printer driver for Odoo QZ Tray" or "fix misaligned receipts in Odoo", know that you’re in good company. For businesses using Odoo POS, these issues aren’t just technical hiccups — they’re serious friction points in customer experience.

But with the right setup —customized XML receipt template for Odoo POS a properly configured driver, a stable USB connection, and a — you can get clean, reliable prints that reflect the professionalism of your brand.

Download Universal Driver Download XML Design

🤝 Contact Us for a Free Consultation

If your receipts are still coming out as abstract art or foreign script, we can help.

At Blackpaw Innovations, we specialize in Odoo ERP implementations, POS customizations, and full-stack business automation. From QZ Tray setup to receipt branding, we’ll get your printouts looking sharp — and working perfectly.

📩 Talk to us today. Let’s fix your POS once and for all.

​ Let’s Talk – Contact us at WhatsApp or visit blackpawinnovations.com

Would you like this packaged as a LinkedIn article or downloadable one-pager? I can also generate a custom PDF version or create a visual walkthrough for your tech team.

Schedule Free Consultation

How Blackpaw Innovations Solved a Tiny Problem with Huge Consequences
Blackpaw Innovations April 21, 2025
Share this post
Archive
Kenyan Small Businesses Are Ditching Expensive Software – Here’s the Free Tool That’s Changing Everything!
Revolutionizing Small Businesses in Kenya with Odoo Community – The Free ERP Solution You Need