Report Viewer: view, explore, and export reports in any application
The Bold Reports Web Report Viewer is an embeddable component that displays SSRS RDL and RDLC reports inside your own web or desktop application, with drill-down, parameters and export to seven formats built in. Components are available for JavaScript, Angular, React, Blazor and ASP.NET.
No credit card required.
What does the Bold Reports report viewer do at runtime?
Every Bold Reports viewer shares the same JavaScript foundation, so the experience stays consistent whether it's embedded in a React or Angular SPA or a .NET application.
What your end users touch
The Bold Reports Web Report Viewer opens a finished report, applies parameters, drills into detail, and exports the result, inside your application at runtime.
Works with or without a report server
View RDL and RDLC reports with or without connecting to Microsoft SSRS or Bold Reports Report Server, including reports stored locally or embedded directly in your application. The Bold Reports Web Report Viewer needs a report service URL (Web API endpoint) to process reports, and paginated layouts do not reflow on small screens. Report files in other formats are converted to RDL before they render.
Native Viewer Component
The Bold Reports Web Report Viewer ships a native component for seven frameworks: JavaScript, Angular, React, ASP.NET Core, Blazor, ASP.NET MVC and ASP.NET Web Forms, each with the same toolbar, parameters, and export behavior underneath.
-
Bold Reports renders RDL/RDLC reports with a native component per framework.
-
Same toolbar, parameters, and export options across every platform.
-
Set the report path, service URL, and auth token, with no extra plumbing.
-
Ready in a few lines of code, not a separate deployment.
<div id="viewer"></div>
<script>
$(function () {
$("#viewer").boldReportViewer({
reportServiceUrl: "https://your-domain.com/reporting/reportservice/api/Viewer",
reportServerUrl: "https://your-domain.com/reporting/api/site/site1",
serviceAuthorizationToken: "Bearer YOUR_SERVER_TOKEN",
reportPath: "/Sample Reports/Company Sales"
});
});
</script>
<bold-reportviewer
[reportServiceUrl]="reportServiceUrl"
[reportServerUrl]="reportServerUrl"
[serviceAuthorizationToken]="serviceAuthorizationToken"
[reportPath]="reportPath">
</bold-reportviewer>
// component.ts
reportServiceUrl = 'https://your-domain.com/reporting/reportservice/api/Viewer';
reportServerUrl = 'https://your-domain.com/reporting/api/site/site1';
serviceAuthorizationToken = 'Bearer YOUR_SERVER_TOKEN';
reportPath = '/Sample Reports/Company Sales';
import { BoldReportViewerComponent } from '@boldreports/react-reporting-components';
function App() {
return (
<div style={{ width: "100%", height: "900px" }}>
<BoldReportViewerComponent
reportServiceUrl="https://your-domain.com/reporting/reportservice/api/Viewer"
reportServerUrl="https://your-domain.com/reporting/api/site/site1"
serviceAuthorizationToken="Bearer YOUR_SERVER_TOKEN"
reportPath="/Sample Reports/Company Sales">
</BoldReportViewerComponent>
</div>
);
}
<bold-report-viewer
report-service-url="https://your-domain.com/reporting/reportservice/api/Viewer"
report-server-url="https://your-domain.com/reporting/api/site/site1"
report-path="/Sample Reports/Company Sales"
service-authorization-token="Bearer YOUR_SERVER_TOKEN">
</bold-report-viewer>
// _ViewImports.cshtml
@addTagHelper *, BoldReports.AspNet.Core
// Blazor Component
public async void RenderReportViewer()
{
viewerOptions.ReportPath = "/Sample Reports/Sales Order Detail";
viewerOptions.ServiceURL = "https://your-domain.com/reporting/reportservice/api/Viewer";
viewerOptions.ServerURL = "https://your-domain.com/reporting/api/site/site1";
viewerOptions.AuthorizationToken = "Bearer YOUR_SERVER_TOKEN";
await JSRuntime.InvokeVoidAsync("BoldReports.RenderViewer", "report-viewer", viewerOptions);
}
// JS Interop (wwwroot/js/site.js)
window.BoldReports = {
RenderViewer: function (elementID, reportViewerOptions) {
$("#" + elementID).boldReportViewer({
reportPath: reportViewerOptions.reportPath,
reportServiceUrl: reportViewerOptions.serviceURL,
reportServerUrl: reportViewerOptions.serverURL,
serviceAuthorizationToken: reportViewerOptions.authorizationToken
});
}
};
<div id="report-viewer" style="width:100%;height:900px"></div>
@(Html.Bold().ReportViewer("viewer")
.ServiceAuthorizationToken("Bearer YOUR_SERVER_TOKEN")
.ReportServiceUrl("https://your-domain.com/reporting/reportservice/api/Viewer")
.ReportServerUrl("https://your-domain.com/reporting/api/site/site1")
.ReportPath("/Sample Reports/Company Sales")
)
<div style="height:600px;width:100%">
<Bold:ReportViewer runat="server"
ServiceAuthorizationToken="Bearer YOUR_SERVER_TOKEN"
ReportServiceUrl="https://your-domain.com/reporting/reportservice/api/Viewer"
ReportServerUrl="https://your-domain.com/reporting/api/site/site1"
ReportPath="/Sample Reports/Company Sales">
</Bold:ReportViewer>
</div>
Everything a modern report viewer should do
Every Bold Reports viewer shares the same capabilities, so the experience stays consistent whether it's embedded in a React SPA or an ASP.NET MVC app.
Connect to any data source
Built-in support for Microsoft SQL Server, SQL Azure, SQL CE, XML, Microsoft Access, Oracle, OLEDB, and ODBC, plus custom data processing extensions for MySQL, SQLite, PostgreSQL, MongoDB, and more.
Rich data visualization
Bold Reports renders tables, matrices (pivot tables), lists, charts, sparklines, data bars, gauges, indicators, maps, barcodes, QR codes, and e-signatures. These are the same report items available in the Web Report Designer, rendered at view time.
Interactive reports
Drill-down, drill-through, hyperlinks, bookmarks, document maps, subreports, and nested data regions let end users explore report detail without leaving the viewer.
Report parameters & data shaping
Cascading, query-based, static, and multi-value parameters put report data in end users' control at runtime. Combine with sorting, filtering, grouping, summaries, and calculated fields to reshape the view without touching the underlying report.
Print & export, pixel-perfect
Export straight from the toolbar to PDF, Word, Excel, PowerPoint, CSV, XML, and HTML, with layout, fonts, and formatting preserved exactly across every format.
Themes, responsive rendering & developer APIs
Material, Bootstrap, Fabric, and a high-contrast accessibility theme ship out of the box. Because reports are paginated to a fixed paper layout, they render identically on every device — on smaller screens you scroll to navigate the page rather than the layout reflowing — and the viewer exposes full programmatic control over the toolbar, parameter panel, pages, and dialogs.
Use Cases
What you can do with the report viewer
The Bold Reports Web Report Viewer covers six reporting scenarios with one RDL/RDLC component, from customer-facing reports to internal operational reporting.
Customer-facing-reporting
Give your SaaS customers a native, branded reporting experience inside your product, without sending them to a separate reporting tool.
Invoice-and-statement-delivery
Render pixel-perfect, print-ready invoices, receipts, and statements that stay consistent whether viewed on screen or exported to PDF.
Operational-reporting
Give teams a self-serve way to view sales, inventory, and finance reports with parameters and drill-down instead of static spreadsheets.
Legacy-report-viewer-replacement
Keep your existing RDL/RDLC reports and swap out an aging viewer for a modern, web-based one, with no report rebuild required.
Brand the viewer to match your app
Restyle the toolbar, themes, and UI to match your product, so the viewer looks native rather than embedded.
Add reporting to desktop applications
Bring the same RDL/RDLC viewing experience to WPF and UWP desktop apps alongside your web products.
Report Viewer is one part of the embedded reporting toolkit
Three Bold Reports embedded reporting tools, Web Report Designer, Web Report Viewer and Report Writer, work together to design, view, and deliver reports from a single platform.
Report Designer
Create and edit reports, datasets, and data sources directly inside your web application with an intuitive designer.
Web Report Viewer
Render and display RDL/RDLC reports natively inside your application, with full interactivity, drill-down, drill-through, parameters, and export.
Report Writer
Export RDL/RDLC reports to PDF, Excel, CSV, PowerPoint, Word, and HTML from Designer, Viewer, or Server.
Enterprise-Ready Compliance
Bold Reports helps you meet key security and compliance standards. All activity logs are safely stored, can’t be changed, and are easy to export when needed.
Enterprise-Ready Compliance
Bold Reports helps you meet key security and compliance standards. All activity logs are safely stored, can’t be changed, and are easy to export when needed.
Get the Details You Need
Frequently Asked Questions
A report viewer is a UI component that renders reports inside a web or desktop app — so instead of building report rendering, export, and print handling yourself, you embed a ready-made component and let users view, filter, print, and export directly in your application. Formats range from proprietary ones like Crystal Reports' .rpt to open standards such as RDL (Report Definition Language, used by SSRS) and its .NET counterpart RDLC.
A report designer is a design-time tool for building and editing report layouts — arranging data regions, formatting, parameters, and expressions. A report viewer is the runtime component users interact with to open, explore, filter, and export a finished report. In short: the designer creates reports, the viewer displays them.
Bold Reports ships report viewer components for Angular, React, JavaScript, ASP.NET Core, ASP.NET MVC, ASP.NET Web Forms, Blazor, WPF, and UWP — each with its own integration package and full documentation.
The Bold Reports Web Report Viewer renders native RDL and RDLC definitions, so most existing SSRS reports upload and run as-is — you reconnect the data source and they render. Reports relying on custom extensions or SSRS-server-specific features are identified up front during migration.
PDF, Word, Excel, PowerPoint, CSV, XML, and HTML, with pixel-perfect formatting preserved across every format.
The Bold Reports Web Report Viewer renders SSRS RDL and RDLC report definitions in the browser without a Microsoft SSRS installation. The viewer component connects to a Bold Reports report service, the Web API endpoint set in reportServiceUrl, and reports can come from Bold Reports Report Server, local storage or your own application. You set the report path and service URL in the component for JavaScript, Angular, React, Blazor or ASP.NET, and users can then view RDL reports online in any modern browser.
Bold Reports provides an ASP.NET Core report viewer that renders SSRS RDL and RDLC reports inside your application. Register the BoldReports.AspNet.Core tag helper in _ViewImports.cshtml, add a bold-report-viewer tag to the view, and set its report-service-url, report-path and service-authorization-token attributes. To let users also create and edit reports in the same ASP.NET Core app, add the Bold Reports Web Report Designer, which is documented on its own page.
Bold Reports offers a 30-day free trial of the Web Report Viewer component, with no credit card required, and the trial displays RDL and RDLC files in a web app. This page does not list a free-forever edition of the viewer. Current licensing options for continued use are listed on the Bold Reports pricing page.
A PDF viewer displays a fixed document that was rendered earlier. The Bold Reports Web Report Viewer runs the report definition against live data, so users can change parameters, drill down or drill through, page through large reports on demand, and export the result to PDF, Word, Excel, PowerPoint, CSV, XML or HTML. Use a dedicated report viewer when users need to filter, explore or re-export data rather than read a finished file.
Yes, Bold Reports is free to try for 30 days, no credit card required.
Crystal Reports .rpt files use SAP's proprietary format, so they're converted to RDL before rendering. Bold Reports provides a Crystal-to-RDL conversion tool that automates this — it processes your .rpt reports and generates RDL equivalents, carrying across layout and formatting so you're not rebuilding by hand.
Yes. You can show, hide, rearrange, or add custom toolbar items, and apply a Material, Bootstrap, Fabric, or high-contrast theme — or override the CSS to match your application's branding. See Toolbar customization and Theming in the docs for the full API.
The viewer renders on demand, page by page — only the requested page is processed and streamed rather than the whole report at once, so load time stays roughly flat as report size grows. For example, a 5,000-row financial statement that paginates into 200 pages loads the first page in about the same time as a 10-page report, because the viewer isn't rendering all 200 pages up front. See On-demand paging in the docs for configuration details.
Yes. Row-level security and role-based access control are built-in — access rules bind to roles or group membership, so one report definition serves everyone while each user sees only their authorized rows. Because the viewer also renders whatever dataset it's passed, you can enforce additional filtering in your own data layer before rendering.
For enterprise and customer-facing applications, check that a report viewer renders your existing report format, supports cascading and multi-value parameters, offers drill-down and drill-through, exports to standard formats, enforces row-level security, renders large reports page by page and can be themed to your brand. The Bold Reports Web Report Viewer provides each of these for RDL and RDLC reports, with export to seven formats and Material, Bootstrap, Fabric and high-contrast themes. As an enterprise reporting component it pairs with the Web Report Designer and Report Writer.
A web-based report viewer has two parts: a component in the browser and a report service on the server. In Bold Reports, the Web Report Viewer component sends the report path and parameter values to the report service, the Web API set in reportServiceUrl, which processes the RDL or RDLC definition against its data source and streams only the requested page. Reports can be stored on Bold Reports Report Server, set in reportServerUrl, or in your own application.
Yes. The Bold Reports Web Report Viewer renders the RDL and RDLC report definitions used with the Microsoft ReportViewer control, so existing reports are kept rather than rebuilt. Viewer components are available for ASP.NET Web Forms, ASP.NET MVC and ASP.NET Core, as well as JavaScript, Angular, React and Blazor. Reports that rely on custom extensions or SSRS-server-specific features are identified during migration.
In Bold Reports, sparklines and gauges are report items you add to the layout in the Web Report Designer and bind to a dataset field. The Bold Reports Web Report Viewer then renders them at view time, alongside charts, data bars, indicators and maps, and keeps them in PDF, Word and Excel exports.
Ready to add report viewing to your application?
Embed a report viewer that feels like a native part of your application, fully branded and easy to use.
No credit card required.