ZebraDirect: Raw Printer Engine Thermal Barcode Label PDF
by Odoocrafts Innovations https://odoocrafts.com$ 86.69
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 192 |
| Technical Name |
zebra_direct_print |
| License | OPL-1 |
| Website | https://odoocrafts.com |
ZebraDirect: Raw Printer Engine
Pixel-Perfect Barcodes without PDF Margin Shifts
Odoo's default PDF rendering is great for documents, but frequently fails for small industrial thermal printers (Zebra, TSC). ZebraDirect completely bypasses PDF generation, compiling your label designs directly into raw printer control languages (ZPL / TSPL) and dispatching them instantly via local WebSockets.
- Zero Margin Shifts: Vector PDF scaling artifacts are eliminated.
- Instantaneous Speed: Raw string arrays print orders of magnitude faster.
- Visual Designer: Jinja2 templating with dynamic data injection.
How it Works
1. Design the Template
Write raw ZPL or TSPL using dynamic Jinja2 placeholders (e.g. {{ record.name }}) inside Odoo.
2. Configure Location
Assign the template to your specific Picking Type (e.g., Delivery Orders) and set your local WebSocket URL.
3. Direct Socket Print
Click "Print ZPL Labels" to instantly send raw code via the client's local WebSocket directly to the thermal printer.
Frequently Asked Questions (FAQ)
Why is my Zebra printer printing blurry barcodes from Odoo?
By default, Odoo renders barcodes into a PDF. When the browser scales this PDF down to tiny labels (e.g., 32x15mm), anti-aliasing causes blurriness, making it unscannable for industrial scanners. ZebraDirect solves this by sending raw ZPL, so the printer natively draws crisp barcodes.
How do I fix margin shifting when printing thermal labels?
Browsers inject their own margins and headers/footers during PDF printing, often offsetting the label by a few millimeters. By using ZebraDirect to send raw ZPL or TSPL via WebSocket, you completely bypass the browser's print dialog and ensure pixel-perfect placement every time.
Do I need QZ Tray or IoT box for this to work?
ZebraDirect outputs raw commands to any WebSocket URL you define (e.g., ws://127.0.0.1:8181). You can use popular local print spoolers like QZ Tray to catch these WebSockets and forward them to your local USB or Network printer. You do not need the expensive Odoo IoT Box.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 192 |
| Technical Name |
zebra_direct_print |
| License | OPL-1 |
| Website | https://odoocrafts.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module