Skip to main content
Drag & Drop PDF Report Designer — A drag-and-drop layout designer for Odoo QWeb PDF reports with real-time preview, so your t — 1/1Illustrative preview

A drag-and-drop layout designer for Odoo QWeb PDF reports with real-time preview,

so your team can restyle invoices, quotations, and delivery slips without touching XML. Built to order, installed, and supported by ECOSIRE.

What is Drag & Drop PDF Report Designer?

A drag-and-drop layout designer for Odoo QWeb PDF reports with real-time preview, so your team can restyle invoices, quotations, and delivery slips without touching XML. Built to order, installed, and supported by ECOSIRE. 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

Visual drag-and-drop canvas that composes real QWeb `<template>` output rendered by Odoo's native `wkhtmltopdf` pipeline — no shadow PDF engine
Real-time preview rendered against a live sample record of the target model, so what you design is what the PDF prints
Field binding sourced from the ORM via `fields_get`, including related and `@api.depends` computed fields on `account.move`, `sale.order`, `stock.picking`, and any nominated model
Designs stored as versioned `ir.model` records — layouts are data, not code, so changes ship without a module upgrade or redeploy
Reusable block library: header, party block, line-item table, tax/totals summary, terms & conditions, footer, signature zone, and free text/image regions
Conditional visibility on any block via `t-if` expressions (e.g. hide bank details unless payment is pending, show tax table only when tax lines exist)
A4/Letter canvas honoring `res.company` paper formats, margins, and header/footer heights
Full translation support — bound fields emit `t-field`/`t-esc` so multilingual PDFs and `lang`-aware rendering keep working
Multi-company aware: per-company logos, footers, and record-rule-scoped design publishing
Raw-QWeb escape hatch for advanced blocks needing hand-written `t-foreach`, `t-set`, or custom XML — power users are never boxed in
Role-based publishing governed by `ir.model.access.csv` plus record rules, separating draft designs from production-live reports
Assign a finished design to a real `ir.actions.report` so it appears in the standard Print menu alongside native reports
Scriptable over `XML-RPC`/`JSON-RPC` for provisioning identical report designs across multiple databases or Odoo.sh branches
Built and regression-tested against Odoo 17.0, 18.0, and 19.0, 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

Every finance and operations team hits the same wall in Odoo: the invoice, sales order, or delivery slip PDF is "almost right," but the last mile — moving the totals block, adding a bank-details footer, tightening the tax breakdown, dropping in a signature line — means editing a QWeb <template>, wrestling with Bootstrap-grid markup and inherited xpath overrides, and pushing a module upgrade. So the change waits for a developer, a ticket, and a maintenance window. Odoo core lets you swap a logo and a paper format in Settings, but the moment you need real layout control it sends you straight into ir.actions.report XML. That gap is exactly where everyday branding and compliance changes go to die.

The Drag & Drop PDF Report Designer closes that gap. It is a visual layout editor that sits on top of Odoo's native QWeb reporting engine — not a parallel PDF system — so everything it produces is a real ir.actions.report rendered by wkhtmltopdf exactly as Odoo would. Business users drag blocks (header, party details, line-item table, tax/totals summary, terms, footer, signature, custom text and image zones) onto an A4/Letter canvas, bind fields to the report's model with a picker sourced from the ORM (fields_get over account.move, sale.order, stock.picking, or any model you nominate), set fonts, spacing, borders, and conditional visibility, and see a real-time preview rendered against a live sample record. No XML editing for the layout changes your team makes week to week.

Technically, we ship a Community-compatible addon with its own __manifest__.py, an ir.model layout store (your designs are data, versioned records — not code you have to redeploy), and a compiler that emits standards-clean QWeb at save time so the output stays fully compatible with translations (t-field, t-esc), multi-company rules, and res.company paper formats. Access is governed by ir.model.access.csv plus record rules so only authorized roles publish a report to production, and every design change is tracked. Power users keep an escape hatch: a raw-QWeb view for the rare block that needs a hand-written t-foreach or a @api.depends computed field, and the whole thing is reachable over XML-RPC/JSON-RPC if you want to script report provisioning across databases. It is built and tested against Odoo 17.0, 18.0, and 19.0, Community and Enterprise.

Because this is build-to-order, nothing is auto-downloaded. After a short scoping call we confirm which report models, layouts, and edge cases (multi-currency totals, per-company footers, localization-specific tax tables) are in scope, then build, test on a staging clone of your database, run UAT with your team, and deploy with a rollback plan — typically one working week from confirmed scope. You receive the installable source, documentation, a git repo handover, and a post-go-live support window. Pricing starts from $999 (indicative, single-company base scope); additional report models, multi-company per-entity layouts, and deep localization requirements (country-specific tax and legal footer rules) increase the quoted scope. You get a fixed quote after the scoping call — never a surprise.

What you get

  • Installable source code for your commissioned version of the module (Odoo 17.0 / 18.0 / 19.0 as required), Community-compatible
  • Installation and configuration on your environment (staging first, then production), including paper-format and access-rights setup
  • Technical documentation: module architecture, `__manifest__.py`, model/ORM structure, security model (`ir.model.access.csv` + record rules), and the QWeb compilation approach
  • End-user guide plus a live training session for the team who will design reports
  • UAT on a staging clone of your database with a documented rollback plan before any production deploy
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and tagged release
  • Sample report designs seeded for your priority models (e.g. invoice, quotation, delivery slip) as an on-boarding starting point

Who this is for

Finance & Accounting Manager

Owns invoice, credit note, and statement PDFs and needs them to reflect current branding, bank details, and tax presentation without filing a developer ticket for every wording or layout tweak.

Odoo Administrator / Internal Functional Lead

Maintains the Odoo instance and wants business users to self-serve report layout changes safely, with role-based publishing and a staging-then-production path, instead of every change routing through them.

Operations & Sales Ops Manager

Manages quotations, sales orders, and delivery/picking documents and needs consistent, professional customer-facing PDFs that they can adjust in-house as processes and templates evolve.

SME Business Owner on Odoo

Runs a lean team without in-house Odoo developers and wants full control over how company documents look, without paying for a developer every time a footer or line-item column needs to change.

How Drag & Drop PDF Report Designer Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Layout changes without a developerDrag-and-drop for everyday changes, raw-QWeb escape hatch for the restEvery change is a code edit and redeployVaries; often a fixed editor with limited field bindingRequires editing QWeb XML directly
How designs are storedVersioned `ir.model` records — data, not codeHard-coded in module templatesUsually stored as records, portability variesAs `ir.ui.view` QWeb templates in a module
Real-time previewLive preview against a real sample recordPrint-and-check cycle unless custom-builtOften present but may preview stale/mock dataNone — print the report to see the result
Fit to your exact processScoped and built to your models and edge casesFully bespoke, but you own all the effortGeneric; you adapt to its assumptionsGeneric core templates only
Odoo version coverageBuilt and tested for 17.0 / 18.0 / 19.0, Community & EnterpriseWhatever you build and maintainDepends on the vendor's version supportShips with your Odoo version
Ownership & handoverFull source + git repo handover, you own itYou own it, but built from scratchLicensed binary/module; source access variesPart of Odoo core
Support & deliveryStaging UAT, rollback plan, post-go-live support windowOnly what your team or contractor providesVendor ticket support, no tailored UATCommunity/Enterprise support, not report-specific
Upfront cost & timeFrom $999 indicative; one working week build-to-orderHigher effort, longer timeline, developer-rate costLow list price, but generic and self-fitIncluded, but limited to core capability

Frequently Asked Questions about Drag & Drop PDF Report Designer

How long does delivery take?

This is a build-to-order module, not an instant download. After a scoping call to confirm which report models and layouts are in scope, typical delivery is one working week from confirmed scope. We build on a branch, test on a staging clone of your database, run UAT with your team, and then deploy to production with a rollback plan.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. The final number depends on how many report models you need covered, whether you require per-company layouts, and localization depth. We give you a fixed, written quote after the scoping call — there is no open-ended hourly billing and no surprise on the invoice.

What happens with support and updates after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration help. Because you receive the full source and git repo, you own the module outright. We also offer ongoing support and version-upgrade engagements (for example moving your designs from Odoo 17 to 18 or 19) as a separate, quoted arrangement whenever you need it.

Does this work with Odoo Community, or only Enterprise?

It is built to run on both. The module is Community-compatible and does not depend on Enterprise-only features, and it is regression-tested against Odoo 17.0, 18.0, and 19.0. If you use Enterprise, it coexists with your existing reports and the standard Print menu.

Will the PDFs it produces still support translations and multi-company?

Yes. The designer compiles to standards-clean QWeb, so bound fields emit `t-field`/`t-esc` and keep working with Odoo's translation and `lang`-aware rendering. It is multi-company aware, honoring per-company logos, footers, and `res.company` paper formats, and design publishing is scoped by record rules.

Can it design any report, or only invoices?

It can target any model you nominate. Common starting points are `account.move` (invoices), `sale.order` (quotations), and `stock.picking` (delivery slips), but the field picker reads the model via the ORM's `fields_get`, so purchase orders, manufacturing documents, or custom models are all in scope — the number of models is one of the main scope drivers we confirm on the call.

What if a report needs logic the drag-and-drop editor can't express?

There is a raw-QWeb escape hatch for exactly that. Business users handle everyday layout changes visually, and for the rare block that needs a hand-written `t-foreach`, a `t-set`, or a computed value via `@api.depends`, a developer can drop into raw QWeb without leaving the tool. You are never boxed in by the visual editor.

Request a quote

Drag & Drop PDF Report Designer

A drag-and-drop layout designer for Odoo QWeb PDF reports with real-time preview, so your team can restyle invoices, quotations, and delivery slips without touching XML. Built to order, installed, and supported by ECOSIRE.

  • Visual drag-and-drop canvas that composes real QWeb `<template>` output rendered by Odoo's native `wkhtmltopdf` pipeline — no shadow PDF engine
  • Real-time preview rendered against a live sample record of the target model, so what you design is what the PDF prints
  • Field binding sourced from the ORM via `fields_get`, including related and `@api.depends` computed fields on `account.move`, `sale.order`, `stock.picking`, and any nominated model
  • Designs stored as versioned `ir.model` records — layouts are data, not code, so changes ship without a module upgrade or redeploy

Request a Quotation

Tell us about your Drag & Drop PDF Report Designer 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.