This module provides the core framework to send Odoo reports directly to printers. It defines the base models, configuration options and printing workflow, without depending on a specific printing protocol.
The actual connection with printers is delegated to extension modules (e.g. base_report_to_printer_cups), which implement support for a given printing backend.
Key features:
Flexible report output behavior:
Send to Client (default): generates a downloadable PDF.
Send to Printer: sends the report directly to a configured printer (via backend module).
Support for user-level, report-level, and combined user/report printing rules.
Extensible design: new modules can add support for additional printing systems or protocols.
This modular approach allows administrators to configure printing globally, per user, per report, or per user/report combination, while keeping the printing backend independent and replaceable.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Lets administrators and users choose whether each Odoo report is downloaded as a PDF or sent straight to a configured printer, with default rules per report, per user, or per user-and-report combination.
This module adds the framework for sending Odoo reports directly to printers. It does not talk to any printer itself; a companion module must provide the actual connection.
Where it appears in Odoo: - A new "Printing" menu under Settings, containing "Printers", a shortcut to report actions, and a "Print Attachments" wizard. - A "Print" tab on each report configuration screen (Settings > Technical > Reports) with a default behaviour, default printer, paper source and output bin, plus a list of specific actions per user. - Printing preferences on the user form: default action and default printer.
Business rules and automatic behaviour: - Each report can be set to "Send to Printer", "Send to Client" (default) or "Use user's defaults". - A per-user, per-report rule can override the report setting, including a specific printer and trays. - When a report is generated and the resolved action is "Send to Printer", the document is sent to the chosen printer automatically; otherwise it is returned to the user as a PDF. - Changing the selected printer clears the previously chosen paper source and output bin. - Only PDF and text report types can be printed directly; other types raise an error. - Print jobs are recorded with creation, processing and completion dates and a state, and can be cancelled. - A wizard lets users print existing PDF attachments, choosing copies per attachment, and warns about attachments that could not be printed.
It touches ir.actions.report, res.users, and introduces printers, trays, print jobs, printing actions and the attachment printing wizard.
Depends on
Required by other modules
Menus it adds
Models and fields (12)
- res.users · extends an existing modelprinting_action, printing_printer_id (Default Printer), printer_input_tray_id (Default Printer Paper Source), printer_output_tray_id (Default Printer Output Bin)
- printing.job · new modelname, job_state (State), printer_id (Printer), time_at_creation (Creation Date), time_at_completed (Completion Date), time_at_processing (Processing Date)
- printing.tray · new modelname, printer_id (Printer), system_name
- printing.action · new modelname, action_type (Type)
- printing.printer · new modeluri (URI), name, model, active, status, backend, default, location, system_name, multi_thread, status_message
- ir.actions.report · extends an existing modelprinting_action_ids (Actions), printing_printer_id (Default Printer), printer_input_tray_id (Paper Source), printer_output_tray_id (Output Bin), property_printing_action_id (Default Behaviour)
- printing.tray.input · new model
- printing.tray.output · new model
- wizard.print.attachment · new modelprinter_id (Printer), attachment_line_ids (Attachments to print)
- printing.report.xml.action · new modelaction, active, user_id (User), report_id (Report), printer_id (Printer), printer_input_tray_id (Paper Source), printer_output_tray_id (Output Bin)
- wizard.print.attachment.line · new modelcopies, wizard_id, record_name, attachment_id
- printing.printer.update.wizard · new model
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/report-print-send.
terminal Installation and usage
OCA documentation · Odoo 19.0Installation
Source · Odoo 19.0To install this module, you need to:
- Install PyCups -
sudo apt-get install cups
sudo apt-get install libcups2-dev
sudo apt-get install python3-dev
sudo pip install pycupsConfiguration
Source · Odoo 19.0Configuration Guide
To configure and start using the Base Report to Printer module, follow these steps:
- User Access Rights
Go to Settings → Users & Companies → Users.
Open the user form and in the Access Rights tab, enable:
Printing / Print User → grants access to the printing menu and user-specific printing preferences.
- Global Printing Settings
Navigate to Settings → Technical → Printing → Printing Settings.
Define the default printing behavior for reports:
Send to Client (default): generates a downloadable PDF.
Send to Printer: sends the report directly to a configured printer (requires a backend module such as base_report_to_printer_cups).
- User Preferences
Each user can configure their own printing behavior:
Go to Preferences (top-right menu, click on your name).
In the Printing section, choose:
Default action (Send to Client / Send to Printer).
Preferred printer (if a backend module is installed and printers are detected).
- Report-Specific Configuration
Go to Settings → Technical → Reports → Reports.
For each report, you can define:
Default printing action.
Default printer (if available).
These settings can be overridden at the user level.
- Per User & Report Combination
Navigate to Settings → Technical → Printing → Report Configurations.
Here you can assign specific rules combining:
A user.
A report.
A printing action (Send to Client / Send to Printer).
A printer and tray (if supported by the backend).
- Installing a Backend (e.g., CUPS)
The base module does not include any printing backend. To connect with actual printers you must install an extension module, such as:
base_report_to_printer_cups → adds support for CUPS printers, trays, and job management.
Once installed, printers from the backend will be available in the configuration menus above.
Usage
Source · Odoo 19.0Usage
Guidelines for use:
- To use a specific printing backend (e.g. CUPS), make sure the corresponding module (such as
base_report_to_printer_cups) is installed and configured. - To print a report on a specific printer or tray, you can configure defaults in Settings > Printing > Reports.
- To define user-specific behaviour, go to Settings > Printing > Reports and configure Specific actions per user.
- Each user can also select a default action, printer or tray in their Preferences.
- When no tray is configured for a report or a user, the default tray defined by the printing backend (e.g. the CUPS server) will be used.
Notes
- This module (
base_report_to_printer) only provides the base framework. - To connect with a real print system, you must install an additional backend module (e.g.
base_report_to_printer_cupsfor CUPS). - Other backend modules can be developed to support different print protocols or environments.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.