| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Inventory (stock) • Invoicing (account) • Manufacturing (mrp) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 426 |
| Technical Name |
yis_direct_print |
| License | LGPL-3 |
| Website | https://higa.group |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Inventory (stock) • Invoicing (account) • Manufacturing (mrp) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 426 |
| Technical Name |
yis_direct_print |
| License | LGPL-3 |
| Website | https://higa.group |
| Versions | 16.0 17.0 18.0 19.0 |
Direct Print
Push Odoo documents straight to your printer — no PDF download required.
Works on Odoo 16.0 · 17.0 · 18.0 · 19.0
Overview
Direct Print sends Odoo reports (sale orders, invoices, delivery slips, manufacturing orders, purchase orders, contacts) straight to a configured printer without forcing the user to download the PDF first. It supports per-user and per-area rules and an optional auto-print mode that fires on key business events.
Key Features
- Printer registry: manage a catalogue of printers (USB/local, network TCP/IP, Wi-Fi, Bluetooth) with system identifier, IP and port.
- Flexible rules: assign printers per area (Sales, Purchase, Invoicing, Inventory, Manufacturing or Global) and per user.
- One-click button: a "Direct Print" button is added to the header of Sale Orders, Invoices, Pickings, Manufacturing Orders, Purchase Orders and Contacts.
- Auto-print: optionally print automatically when a sale is confirmed, an invoice is posted, a picking is validated or a manufacturing order is marked done.
- Print log: every attempt is recorded (success/error, printer used, user, timestamp, error message) in its own transaction so logs survive even if the main one rolls back.
- Two delivery channels: raw socket (port 9100, JetDirect-style) for network printers, or the system
lpcommand for CUPS-installed queues.
Supported Documents
| Model | Manual Button | Auto-print Trigger |
|---|---|---|
| sale.order | Yes | action_confirm |
| account.move | Yes | action_post |
| stock.picking | Yes | button_validate |
| mrp.production | Yes | button_mark_done |
| purchase.order | Yes | — (manual only) |
| res.partner | Yes | — (manual only) |
Installation
- Drop the
DirectPrintOdoofolder in your custom addons path. - Go to Apps → Update Apps List.
- Search for "Direct Print" and click Install.
- Make sure the Odoo server can reach the printer:
- Network: the Odoo container/host must reach the printer IP on the configured port (default 9100).
- Local / CUPS: the
lpcommand must be installed and the printer queue defined in the OS where Odoo runs.
Configuration
- Go to Settings → Direct Print → Printers and create one record per physical printer (system identifier, connection type, IP/port).
- Then go to Settings → Direct Print → Configurations and create rules:
- Print area: Sales, Purchase, Invoicing, Inventory, Manufacturing or Global.
- User: leave empty to apply to everyone, or pick a specific user to override.
- Auto-print: tick it if you want documents in this area to print automatically when confirmed/posted/validated.
- Resolution order: per-user + area → per-user + global → everyone + area → everyone + global.
Daily Use
- Open any supported document and click the Direct Print button in the header.
- The default report for that model is rendered to PDF and pushed to the configured printer.
- If auto-print is enabled, the same flow happens automatically when you confirm/post/validate/mark-done.
- Audit attempts at Settings → Direct Print → Logs.
Security
- A dedicated group Direct Print Manager is created and assigned to the admin/root user.
- Internal users can read printers, configurations and logs (and append log entries) but only managers can edit them.
- The configuration menu is only visible to members of the manager group.
Technical Notes
- Models:
direct.print.printer,direct.print.config,direct.print.log, abstractdirect.print.mixin, abstract servicedirect.print.service. - Network delivery: raw TCP socket with a 10 s timeout, sending the PDF bytes to
host:port. - Local delivery: writes a temp PDF and runs
lp -d <identifier> <file>, cleaning up the temp file afterwards. - Logs: created on a separate cursor + commit, so they persist even if the originating transaction rolls back.
Dependencies
base, sale, account, stock, mrp, purchase, contacts
Supported Versions
- Odoo 16.0
- Odoo 17.0
- Odoo 18.0
- Odoo 19.0 (this build)
Maintainer
HIGA
Maintained and supported by HIGA. For issues, requests or commercial support, get in touch through our website.
Visit higa.group →
Author: HIGA · Website: higa.group · License: LGPL-3
Please log in to comment on this module