Skip to main content
Report Full Background per Company — A build-to-order Odoo module that applies custom full-page background images and waterma — 1/1Illustrative preview

A build-to-order Odoo module that applies custom full-page background images and watermarks to your QWeb PDF

reports, resolved per company so each legal entity prints on its own branded stationery.

ECOSIRE builds, installs, and supports it on your database after a short scoping call.

What is Report Full Background per Company?

A build-to-order Odoo module that applies custom full-page background images and watermarks to your QWeb PDF reports, resolved per company so each legal entity prints on its own branded stationery. ECOSIRE builds, installs, and supports it on your database after a short scoping call. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Per-company background image and watermark stored on `res.company` via `fields.Binary`/`fields.Char`, configured from a `res.config.settings` Settings panel
QWeb rendering resolves the asset from the document's own company (`o.company_id`), not the current user's company — correct in multi-company invoice/PO batches
Thin template inheritance over `web.external_layout` and `web.internal_layout` so existing custom report templates keep rendering unchanged
Full-bleed, print-safe CSS background layer (`position: fixed`, controlled `z-index`, `@media print`) that stays behind body content on every page under wkhtmltopdf
Configurable opacity, and tiling versus full-page stretch, per company so backgrounds don't fight text legibility
Diagonal or centered text watermark (`DRAFT`, `COPY`, `PAID`, custom string) rendered as a CSS layer with adjustable angle and opacity
Optional image watermark (logo/seal) alongside or instead of the text watermark
Conditional watermark firing via QWeb `t-if` on record state — e.g. `DRAFT` only while `move_state = draft`, `COPY` on reprints
Per-report-type toggles so you can enable backgrounds on invoices and quotations but leave delivery slips clean
Security via `ir.model.access.csv` plus a dedicated settings group and multi-company record rules — restricted users never touch another entity's assets
Respects report paper format margins and header/footer bands so the background never clips the logo or page numbers
Cleanly upgradable additive addon with its own `__manifest__.py` — survives Odoo minor upgrades without re-patching core templates
Optional exposure of the background/watermark fields over the standard XML-RPC/JSON-RPC API for scripted setup across many companies
Built and tested against Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Finance and operations teams running Odoo across more than one company hit the same wall the moment they need branded output: quotations, invoices, delivery slips, and purchase orders all render through the same shared QWeb templates, so every legal entity prints on the same generic page. Odoo's external and internal report_layout settings give you a header logo, a company color, and a font, but they do not provide a true full-bleed background image behind the document body, nor a diagonal DRAFT / COPY / PAID watermark, nor — critically — a way to make those assets differ per company. The usual workarounds are pre-printed stationery (which breaks the moment someone emails a PDF) or hard-coding an <img> into a template override that then applies to every company on the database and quietly regresses on the next upgrade.

This is a productized module that ECOSIRE builds to order for your database. We add a per-company configuration layer on res.company (background image, optional watermark image or text, opacity, tiling versus full-page stretch, page-margin behavior, and per-report-type toggles), stored as fields.Binary / fields.Char / fields.Float and exposed through a clean Settings view driven by res.config.settings. At render time the resolved asset is injected into the QWeb pipeline through a small template-inheritance layer over web.external_layout (and web.internal_layout where needed), using an <t t-set> lookup on the document's own company rather than the logged-in user's company — so a multi-company invoice batch prints each record on the correct entity's stationery. Because Odoo renders PDFs with wkhtmltopdf, we implement the background as a fixed, print-safe CSS layer (position: fixed with controlled z-index and @media print rules) so it sits behind the content on every page without pushing the body or clipping the header/footer bands.

Technically, the module ships as a standard addon with its own __manifest__.py declaring dependencies on web and the relevant report modules, an inheriting view set, and ir.model.access.csv plus record rules so only users in the right group can change a company's background and watermark. It respects multi-company record rules end to end, so a user restricted to one company never sees or edits another entity's assets. We keep the QWeb override thin and additive so your existing custom report templates keep working, and we can scope the watermark to fire conditionally (for example, only while an invoice is in draft, or a COPY mark on reprints) using t-if on the record state. It targets Odoo 17.0, 18.0, and 19.0 and works on Community and Enterprise; where Enterprise-only report layouts are in play we adapt the inheritance point accordingly.

Delivery is build-to-order. After a short scoping call we confirm which report types, which companies, and which watermark rules you need, then build against a copy of your environment, run UAT on a staging database, and install on production with a rollback path. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); the number of legal entities, additional report types, conditional/state-driven watermark logic, and integration with heavily customized existing report templates increase the quoted scope. You receive a fixed quote after the scoping call, never a surprise on the invoice.

What you get

  • Installable, version-pinned module source code for your Odoo edition (17.0, 18.0, or 19.0)
  • Installation and configuration on your environment, with per-company backgrounds and watermarks set up for the agreed report types
  • Technical documentation: manifest, inherited views, model fields, security rules, and the QWeb injection points
  • End-user guide plus a live training session for the staff who manage company branding
  • UAT on a staging/copy database with sign-off before any production change, plus a documented rollback plan
  • A post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with the full commit history for your module

Who this is for

Multi-company finance controller

Runs several legal entities in one Odoo database and needs every invoice, credit note, and quotation to print on the right entity's branded page — automatically, without staff picking the correct stationery by hand.

Brand and marketing operations lead

Owns visual identity and wants consistent, on-brand PDF documents (background stationery, seals, and watermarks) across all outbound Odoo reports, matching each company's guidelines.

Compliance and audit manager

Needs unambiguous document status on the page itself — `DRAFT`, `COPY`, or `PAID` watermarks driven by record state — so reprints and working copies can never be mistaken for issued originals.

Odoo administrator / internal IT

Wants the capability delivered as a clean, upgrade-safe addon with proper access control and documentation, rather than a fragile hand-patched core template that breaks on the next version bump.

How Report Full Background per Company Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
AvailabilityBuilt to order for your database and versionYou brief and manage a developerInstant download, generic buildShips with Odoo, no background feature
Per-company backgroundsResolved from the document's own companyPossible, depends on your specOften single global background onlyNot available — one shared layout
State-driven watermarksConditional DRAFT/COPY/PAID via record stateBuildable if you specify itUsually a fixed static markNone
Upgrade safetyAdditive addon, upgrade-reviewedDepends on developer disciplineVaries; may lag new versionsN/A
Multi-company securityRecord rules + dedicated settings groupYou must design and test itOften not multi-company awareStandard company rules, no asset control
Support & warrantyPost-go-live window + fixed-quote upgradesRetainer or ad-hoc, your riskMarketplace-level, genericCommunity/your subscription only
Fit to your report setScoped to your exact report typesWhatever you commissionGeneric defaults, self-configureNo report-level targeting
Total cost clarityIndicative from-price, fixed quote after scopingTime-and-materials, variableLow sticker, self-install effortIncluded but lacks the feature

Frequently Asked Questions about Report Full Background per Company

Is this an existing app I can download and install right now?

No. It is a build-to-order module. We build it for your database against your Odoo version and your specific report types, then install and support it. There is no instant download — you request a quotation and we produce your version.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we build against a copy of your environment, run UAT on a staging database, and schedule the production install. Larger multi-company or heavily-customized-report scopes sit at the longer end of that range.

How does pricing and scoping work?

Pricing starts from $999 as an indicative, single-company base scope. The number of legal entities, extra report types, conditional/state-driven watermark rules, and integration with existing custom templates affect the final number. You get a fixed quote after the scoping call — never a moving figure at invoice time.

What about support and future Odoo upgrades?

Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because the module is an additive addon rather than a core-template patch, it survives minor upgrades cleanly; a paid upgrade to a new major Odoo version (for example 18.0 to 19.0) can be quoted separately.

Will it work with our existing customized invoice and quotation templates?

Yes. We inherit `web.external_layout` (and `web.internal_layout` where relevant) with a thin, additive override, so your existing custom QWeb report templates keep rendering. During scoping we review your current customizations to confirm the background layer sits behind your content without conflicts.

Does the correct company's background appear on a multi-company document batch?

Yes. The background and watermark are resolved from the document's own company (`o.company_id`), not the logged-in user's company. When you print or email a batch spanning multiple entities, each record prints on its own company's stationery.

Does it work on Odoo Community, and which versions are supported?

It works on both Community and Enterprise, targeting Odoo 17.0, 18.0, and 19.0. Where an Enterprise-only report layout is involved, we adapt the inheritance point so the background and watermark render correctly on your edition.

Request a quote

Report Full Background per Company

A build-to-order Odoo module that applies custom full-page background images and watermarks to your QWeb PDF reports, resolved per company so each legal entity prints on its own branded stationery. ECOSIRE builds, installs, and supports it on your database after a short scoping call.

  • Per-company background image and watermark stored on `res.company` via `fields.Binary`/`fields.Char`, configured from a `res.config.settings` Settings panel
  • QWeb rendering resolves the asset from the document's own company (`o.company_id`), not the current user's company — correct in multi-company invoice/PO batches
  • Thin template inheritance over `web.external_layout` and `web.internal_layout` so existing custom report templates keep rendering unchanged
  • Full-bleed, print-safe CSS background layer (`position: fixed`, controlled `z-index`, `@media print`) that stays behind body content on every page under wkhtmltopdf

Request a Quotation

Tell us about your Report Full Background per Company requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.