MarkupReporter
Self-hosted PDF reporting for .NET

Design PDF reports visually. Ship them from .NET.

MarkupReporter drops a visual report designer into your own app as a NuGet package. Lay out banded reports, bind them to JSON or SQL Server, and render pixel-perfect PDFs on your own servers.

Get started freeSee pricing
>dotnet add package MarkupReporter
  • Banded layouts
  • JSON & SQL Server data
  • Renders PDFs in your app
  • Offline licence keys
Invoice report
Schema
dbo.Orders
OrderId
CustomerName
OrderDate
Total
dbo.Customers
Page header
Invoice
Table
OrderIdCustomerNameTotal
Page footer

From design to PDF in under a minute

Start from the invoice template, add a heading and a column bound to your data, then preview the real PDF, with the table carrying on across pages.

Features

Everything you need to ship reports. Nothing you don't.

A report designer that lives inside your app, not in somebody else's cloud.

Visual banded designer

Add text, images, tables and lists with a click, then drag and resize them into place across page headers, bands and footers. No hand-written HTML.

JSON or SQL Server

Bind to JSON, or write SQL against SQL Server with a table browser and live preview rows while you design.

Your app owns the data

SQL is for design time only. In production your app passes the data in, so the report never needs its own connection.

Pixel-perfect PDFs

Reports render through headless Edge or Chrome, so the PDF matches what you laid out in the designer.

Self-hosted, offline licensing

Everything runs on your own servers. Licence keys are signed and verified offline, with no phone-home.

Drops into your .NET app

A .NET 10 Razor Class Library. Add the package, open the designer in your dev environment, start building.

How it works

From package to PDF in three steps

1

Install the package

Add MarkupReporter to the app that will produce your reports.

>dotnet add package MarkupReporter
2

Design your report

Open the designer at /markupreporter in Development, add a JSON sample or a SQL Server query, and bind its fields from the Data panel. Unlicensed PDFs are watermarked, so you can try everything first.

3

Render in production

Inject IReportBuilder, pass in your own data and get a PDF back. Binding ignores case, so your existing C# classes just work.

var report = await reports.BuildAsync(
    "invoice", new { invoice });

// report.Pdf is your PDF

Read the full getting started guide →

Pricing

Simple licences. Pay once, own your reports.

Every licence is for business use and includes a year of updates. Pay once by card and your licence key arrives by email. You can try everything free in development first.

Individual

For one named developer

£99one-off, plus VAT where applicable
  • 1 named developer
  • Full visual designer
  • JSON and SQL Server data sources
  • Unwatermarked PDFs in production
  • 12 months of updates
  • Optional renewal at 50% off
Buy Individual
For teams

Organisation

For your whole development team

£449one-off, plus VAT where applicable
  • Unlimited developers in your organisation
  • Full visual designer
  • JSON and SQL Server data sources
  • Unwatermarked PDFs in production
  • 12 months of updates
  • Optional renewal at 50% off
Buy Organisation
FAQ

Questions developers ask

Can I try it before I buy?

Yes. Everything works in your Development environment without a licence. PDFs are watermarked until you add a key.

What happens after the first 12 months?

Your licence is perpetual, so you can keep using every version released during your 12 months of updates for as long as you like. Renew at 50% off if you want another year of updates. See the licence terms for details.

Does MarkupReporter phone home?

No. Licence keys are signed and checked offline, so it works on air-gapped and locked-down servers.

Which data sources are supported?

JSON from any source, plus SQL Server for writing queries in the designer. In production your app supplies the data itself.

Which .NET versions does it support?

MarkupReporter is built for .NET 10.

What do I need on my production server?

A Chromium-based browser to render PDFs: Microsoft Edge, Google Chrome or Chromium. Edge comes with Windows, so on most Windows servers there's nothing to install. MarkupReporter finds an installed browser automatically (Edge first), or you can choose one in configuration. It only downloads a browser for you in Development, never in production. Rendering is locked down: JavaScript is off and the browser can't reach the network.

Who handles payment and invoices?

Stripe is the merchant of record: it takes payment through its secure checkout, handles VAT and sales tax, and emails your receipt and invoice.

Design your first report today

Install the package, build a report in the designer and see the PDF. Evaluating is free; buy a licence when you're ready to go to production.

Buy a licence Read the docs