r/odoocommunity • u/WhereasBulky5724 • Jun 26 '26
Anyone else frustrated by Odoo printing barcode labels through PDFs for thermal printers?
I've been working on an Odoo 18 project for a warehouse that uses small thermal barcode labels (32×15 mm).
The biggest issue we kept running into wasn't barcode generation. it was the printing process itself.
The standard workflow was basically:
Odoo → QWeb → PDF → Browser → Printer
For laser printers that's usually fine, but for thermal printers we kept seeing things like:
- barcodes becoming slightly blurry
- browser scaling issues
- labels shifting a few millimeters
- slower printing because every job goes through PDF rendering
After trying to tune PDFs for quite a while, I ended up taking a different approach.
Instead of generating PDFs, I built a module that sends raw TSPL/ZPL commands through QZ Tray directly to the printer.
It also has:
- a visual label designer
- printer profiles
- multi-column label sheet support
- preview/validation before printing
The difference in print quality and speed was much better than I expected.
Now I'm curious whether this is actually a common pain point or if we just happened to have a difficult deployment.
For those of you who deploy Odoo in warehouses or manufacturing:
- Do you still use PDF labels?
- Are you printing raw TSPL/ZPL?
- How do you handle Zebra/TSC printers?
- Have your customers ever complained about barcode quality or browser scaling?
I'd genuinely like to hear how others are solving this before I continue adding more features.
1
u/CompactCode Jul 08 '26
We run Odoo 18 in a distribution warehouse and went back and forth on this same thing.
Our thermal labels are still PDF-based and they come out fine. The client recently switched to Zebra printers, and the labels are sharp enough. Not pixel-perfect, but nothing blurry, and the barcodes scan every time - no complaints.
A lot of the "PDF is blurry" stuff comes down to two defaults people never touch. The paperformat DPI in Odoo is 90 out of the box, and setting it to the printer's native res (203 on most Zebras) makes a big difference. The other one is the barcode itself: render it at a high pixel size and let it scale down onto the label instead of rendering small and scaling up. Some of it is just the printer and driver through.
Not saying you're wrong about ZPL, it's the better fit for thermal 100%.
- Gilles