ReportWright
MIT licensed Get it

● Switching

Bring your reports. See what you get before you commit.

Drop a report file from your current tool on this page. It is converted in your browser, opened in the designer and previewed, and every change the importer had to make is listed. If you write PDFs with a code library, the same invoice is shown below in theirs and ours.

SSRS
.rdl, .rdlc (RDL 2008, 2010, 2016) · converts in this page
ActiveReportsJS
.rdlx-json · converts in this page
JasperReports
.jrxml (JasperReports 3 to 6, and the 7.x format) · converts in this page
BIRT
.rptdesign · converts in this page
pdfmake
Code comparison and concept map
react-pdf
Code comparison and concept map
Puppeteer
HTML to PDF: code comparison and concept map
PDFKit
Code comparison and concept map

01

From a report tool

The four importers are plain JavaScript with no server calls: the same source the ReportWright server uses, bundled for this page. Your file is read with the browser's File API and never uploaded; open the network tab to check. Data sources that run SQL need the ReportWright server, so a SQL-backed report previews its layout with no rows.

No file to hand? Try a sample

Samples are unmodified files from the repository's test corpus: Microsoft's SSRS samples (MIT), JasperReports demos (LGPL-3.0), BIRT samples (EPL-2.0), and our own ActiveReportsJS-format files.

Drop a file or pick a sample →

02

What does not carry over yet

From the importers' own warnings and the project's docs (API.md, FEATURES.md). The importer never drops a thing silently: each of these produces a line in the list above. Counts are from the repository's sample corpora.

03

From a PDF library: the same invoice

One invoice: a title, a customer, three lines, a total. The ReportWright side is run by scripts/check-switch-snippets.mjs against @reportwright/engine and the report below is that same definition. The other libraries' code is written from their public documentation and was not run for this page.

Theirs


        

Ours: @reportwright/engine


        

Checked: the snippet renders one A4 page, writes a PDF, and the page model holds the total 2,432.00.

The report above, rendered in this page by the viewer

The viewer loads when you get here.

04

Concept map

What you wrote in code, and where it lives in a ReportWright definition.

In your code libraryIn ReportWright

05

Moving from code: what to know

There is no converter from code to a definition: you rewrite the layout once, as data. Honest list of what that costs and what stays missing.