● 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.
What the importer changed or could not carry over
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 library | In 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.