Skip to main content

Report to printer

Project description

Odoo Community Association

Report to printer

Beta License: AGPL-3 OCA/report-print-send Translate me on Weblate Try me on Runboat

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.

Table of contents

Installation

To install this module, you need to:

  1. Install PyCups - https://pypi.python.org/pypi/pycups

sudo apt-get install cups
sudo apt-get install libcups2-dev
sudo apt-get install python3-dev
sudo pip install pycups

Configuration

Configuration Guide

To configure and start using the Base Report to Printer module, follow these steps:

  1. 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.

  1. 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).

  1. 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).

  1. 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.

  1. 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).

  1. 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

Usage

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_cups for CUPS).

  • Other backend modules can be developed to support different print protocols or environments.

Known issues / Roadmap

  • With threaded printing there’s no download fallback when the issue isn’t detected by the CUPS Odoo backend. To able to do it, we would need to notify the bus or use web_notify for it.

Changelog

19.0.1.0.0 (2025-12-18)

  • [REF] Extracted all CUPS-specific functionality into a dedicated module: base_report_to_printer_cups.

  • [ADD] Introduced a base abstraction layer for report-to-printer, to allow adding new backends (protocols) without modifying the core module.

  • [IMP] Improved configuration instructions (global, per-user, per-report, and per user+report).

  • [CLEAN] Updated documentation and module description to reflect new architecture.

13.0.1.0.0 (2019-09-30)

  • [RELEASE] Port from V12.

12.0.1.0.0 (2018-02-04)

  • [RELEASE] Port from V11.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Agile Business Group & Domsense

  • Pegueroles SCP

  • NaN

  • LasLabs

  • Camptocamp

  • Open for Small Business Ltd

Contributors

Other credits

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/report-print-send project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file odoo_addon_base_report_to_printer-19.0.1.0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_addon_base_report_to_printer-19.0.1.0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7b463ceef4030b4c6d625e9ea37d9e3f9885819fad616c5d0c782a720a1ae5a0
MD5 8ee72834b87c3e8f6237c6f959597449
BLAKE2b-256 3b4b94c86be1d93d3ae3b72f58145bdaf278e53caf6fa6825883ff00fc022609

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page