A build-to-order Odoo extension that renders any QWeb PDF report inside the browser so users can preview, page through, and print without first saving a file. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
应用清单
围绕您的工作流程构建
A build-to-order Odoo extension that renders any QWeb PDF report inside the browser so users can preview, page through, and print without first saving a file. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.
无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。
以一次性构建价格开始。我们在启动时与您共同确定范围。
ECOSIRE 在您的 Odoo 上构建、配置并安装。
约 2–4 周内上线,并提供上线后的支持期。
Every Odoo team hits the same friction with reports. A user clicks Print on an invoice, delivery slip, or sales order, Odoo streams back a PDF, and the browser immediately drops it into the Downloads folder or hands it to a plugin the user has to hunt through. Just to confirm the right template rendered — correct company logo, tax lines, page breaks — someone opens the file manager, launches a viewer, checks, then deletes a file they never wanted. Multiply that across hundreds of documents a day and you get cluttered download folders, misprinted batches, and support tickets that begin with "the layout looks wrong." Odoo core has no in-browser preview surface for QWeb reports: ir.actions.report is wired to return the binary as an attachment or stream, and the standard report controller has no viewer step in between.
We build a focused extension that inserts a real preview stage in front of that download. Technically, we override the report action flow so a report_type of qweb-pdf opens an in-browser viewer dialog — an OWL component embedding a pdf.js canvas — instead of triggering an immediate file save. The component calls the existing /report/pdf/<report_name>/<ids> controller (or a thin custom controller we add for streaming) via the standard JSON-RPC action service, receives the rendered bytes, and paints them page-by-page with zoom, page navigation, fit-to-width, and a Print button that targets only the document iframe. Because we reuse Odoo's own IrActionsReport._render_qweb_pdf and wkhtmltopdf pipeline, the preview is byte-identical to what the printer or the eventual download would produce — no second rendering engine, no drift between "preview" and "real" output.
The build is configured to your rules rather than a generic toggle. We add a preview_before_print flag on ir.actions.report (surfaced in the report form view via XML) so you decide per report — or per report category — whether Print opens the preview or keeps the legacy direct download. Access is governed through ir.model.access.csv and record rules so users only ever preview documents they are already entitled to see, and an optional automated action can log preview events for audit. Everything ships as a versioned module with a proper __manifest__.py, pinned to your target series, and is tested against Community and Enterprise (the viewer is framework-level, so it works in both; Enterprise's studio-defined reports are supported the same way).
Delivery is build-to-order. After a short scoping call we confirm exactly which reports get the preview, your Odoo version and edition, and any branding or audit requirements, then produce a fixed quotation. Typical delivery is 2–4 weeks from confirmed scope: we develop against a staging copy, run UAT with your team, and hand over installable source, docs, and a git repository. Pricing starts from $249 (indicative, single-company base scope); the number of report templates in scope, multi-company preview rules, custom streaming controllers for very large PDFs, and edition-specific report handling increase the quoted scope.
Staff who print or email dozens of invoices, credit notes, and statements daily and need to eyeball the layout — tax lines, totals, company branding — before committing paper or a downloaded file. They want to catch a wrong template before it reaches a customer, not after.
People running batch prints of delivery slips, picking lists, and labels who currently drown in throwaway PDF downloads. In-browser preview lets them confirm the right documents and page ranges before sending a batch to the printer.
Admins who own the report configuration and want a controlled, per-report rollout governed by access rules rather than a blunt global setting. They value that the preview reuses Odoo's native rendering so there is nothing new to maintain in parallel.
Consultancies, agencies, and back-office teams that generate quotations, work orders, and contracts and need a fast look-and-print loop without cluttering shared machines with sensitive downloaded files.
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | 奥杜本机 |
|---|---|---|---|---|
| Fit to your reports & rollout rules | Per-report preview flag, configured to your document set and branding | Fully bespoke but you specify and maintain every detail | Fixed global behavior, little per-report control | |
| Rendering accuracy | Reuses native `_render_qweb_pdf` — byte-identical to print/download | Depends on how the developer wires the controller | Usually native pipeline, but varies by vendor | |
| Access & security | Enforced via `ir.model.access.csv` + record rules, optional audit log | Only as strong as the build team's discipline | Generally respects ACLs; audit varies | |
| Odoo 17/18/19 + Community & Enterprise | Built and tested for your exact series and edition | Whatever you commission and test | Depends on vendor's supported matrix | |
| Support & ownership | Support window + full git repo and source handover | You own it; you also own all maintenance | Vendor support terms vary; source often obfuscated | |
| Upgrade safety | Pinned manifest, tracks native report flow, low-risk upgrades | Risk depends on how closely it followed core patterns | Reliant on vendor keeping pace with new series | |
| Time to value | 2–4 weeks from confirmed scope, with UAT and rollback | Often longer; full spec-to-delivery cycle | Instant install, but generic and untailored | |
| Total cost profile | From $249 indicative; fixed quote after scoping | Typically highest — full bespoke development | Low sticker price, tailoring/support costs later |
This is a build-to-order module. Typical delivery is 2–4 weeks from confirmed scope. After a scoping call we agree which reports get the preview, your Odoo version and edition, and any audit or branding rules, then build against a staging copy, run UAT with your team, and hand over. Complex multi-company or large-PDF streaming requirements can extend the timeline, which we state in the quotation.
Pricing starts from $249 as an indicative single-company base scope. We do not quote a firm price until a short scoping call, after which you receive a fixed quotation. Drivers that increase scope include the number of report templates in scope, multi-company preview rules, custom streaming controllers for very large PDFs, and edition-specific report handling.
We build and test for Odoo 17.0, 18.0, and 19.0. The preview is implemented at the framework level (OWL client action plus a report-action override), so it works on both Community and Enterprise, including Studio-defined reports. We pin the module's `__manifest__.py` to your target series.
Yes. The viewer renders the exact bytes produced by Odoo's own `_render_qweb_pdf` / wkhtmltopdf pipeline via the standard `/report/pdf` controller. There is no second rendering engine, so what you preview is identical to what prints and what would download — no drift between preview and final document.
Every build includes a post-go-live support window for defect fixes and configuration adjustments, plus a git repository handover so your team owns the source. Beyond the included window we offer ongoing support and version-upgrade work as a separate engagement; because the module tracks Odoo's native report flow, upgrades between series are typically low-risk.
Yes. We add a `preview_before_print` flag on the report action, surfaced in the report form view, so you enable preview per report or per category. Reports left un-flagged keep Odoo's default direct-download behavior, letting you roll out gradually.
The preview never bypasses Odoo's permission model. It calls the same report controller the user already has rights to, and access is enforced through `ir.model.access.csv` and record rules, so a user can only preview documents they are already entitled to open. An optional audit log records preview events.
A build-to-order Odoo extension that renders any QWeb PDF report inside the browser so users can preview, page through, and print without first saving a file. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.