A report engine and local Studio with versioned JSON templates, objects/JSON data, parameters, tables, charts, barcodes, report scripts and paginated exports. The application, demos and documentation are in English.
Start coding: Developer guide and complete examples. Start designing: User manual. Browse locally: Studio's Manual ↗ → Developer guide & code examples.
Run
Install .NET SDK 10, Node.js 22+ and npm, then run from the repository root:
npm ci --ignore-scripts
npm run prepare-editor
dotnet restore NextgenReports.sln
dotnet build NextgenReports.sln -c Release --no-restore
dotnet test NextgenReports.sln -c Release --no-build
dotnet run --project src/NextgenReports.Studio --urls http://127.0.0.1:5274Open http://127.0.0.1:5274. The sample generates automatically. Local mode accepts loopback callers; server accounts and remote HTTPS hosting are described in server operations. Save project downloads a portable copy; Library saves versions on the host. Unsaved edits are lost on reload.
The PDF engine bundles its fonts and does not require Microsoft Office or a browser. The current local verification host is Linux on the user's iMac; see the verification log for dated evidence and platform limits.
Run the code examples
# Direct .NET engine: objects, JSON, parameters and seven exported files.
dotnet run --project examples/EngineQuickStart -c Release
# Blazor integration; Studio must also be running on 5274.
dotnet run --project examples/BlazorDemo --urls http://127.0.0.1:5277
# Flutter Web; requires Flutter SDK. Open /flutter-demo/ on Studio afterward.
bash scripts/build-flutter-demo.sh
# Linux desktop launcher for demos and documentation.
python3 scripts/install-demo-launcher.pyDouble-click Nextgen Reports Demo to open the Blazor demo and developer guide. Right-click for Open demo, Open Flutter demo or Open documentation. The launcher starts/reuses local processes and preserves existing Chrome tabs. After source changes rebuild the relevant demo before reopening it.
The developer guide contains complete C# and HTTP
examples, viewer integration, export modes and links to detailed configuration.
The same code is readable locally at /developer-guide.html without GitHub.
Direct engine example
Reference src/NextgenReports.Pdf/NextgenReports.Pdf.csproj from your .NET project:
using NextgenReports.Core;
using NextgenReports.Pdf;
var template = TemplateJson.Parse("""
{"version":1,"blocks":[{"type":"text","text":"{{data.message}}"}]}
""");
var pdf = new PdfExporter();
var document = new ReportEngine(pdf).Render(template, new { Message = "Hello from C#" });
using var output = File.Create("report.pdf");
pdf.Export(document, output);Core converts C# properties to camelCase. JSON keys remain exact; the HTTP SDK
preserves C# property names by default. ITextMetrics and IReportExporter are
extension points; ReportDocument contains pages and drawing commands. A host
already using a custom PDFsharp font resolver must also handle
EmbeddedFonts.Family; see the integration guide and third-party notices.
CLI example (run from this checkout, or use absolute input paths):
dotnet run --project src/NextgenReports.Cli -- samples/sales.nrtemplate samples/sales.data.json output/pdf/sales-report.pdf samples/sales.parameters.jsonDesktop Studio
A separate desktop application includes an owned local engine, native project
open/save dialogs, export and a persistent Library. Build with
node scripts/build-desktop.mjs, install the launcher, then open Nextgen Reports
Desktop. See Desktop setup and usage, including the Linux
sandbox helper requirement and unverified Windows/macOS packaging.
Projects
| Project | Purpose |
|---|---|
| NextgenReports.Core | Template model, binding, validation, data preparation and layout |
| NextgenReports.Pdf | Embedded font metrics and PDF/HTML/image/Office export |
| NextgenReports.Cli | Command-line generation and validation |
| NextgenReports.Studio | Browser designer, viewer, HTTP API, library and server operations |
| NextgenReports.Client | .NET HTTP SDK, sessions, objects/JSON and export |
| NextgenReports.Blazor | Interactive Server report viewer |
| packages/nextgen_reports | Dart HTTP SDK and Flutter viewer |
| examples/EngineQuickStart | Runnable direct engine example |
| examples/BlazorDemo | Complete Blazor application |
| examples/flutter_demo | Same-origin Flutter Web application |
| NextgenReports.Tests | Rendering, validation and integration checks |
Documentation
- Learning path and guide index
- Developer guide and code examples
- .NET / Blazor and Flutter / Dart
- Report authoring, TypeScript events, Dialog Toolbox
- Template format, agent / CLI / API workflow
- SQL, JSON and objects, HTTP sources, data preparation
- CSV/TSV, XLSX import
- Office export, page images, HTML
- Drill-down, report library, server operations
- Feature roadmap, verification, third-party notices
Current limits
No .mrt compatibility, offline mobile engine or Blazor
WebAssembly/Auto integration. Native Flutter GUI/device deployment and current
macOS/Windows integrations remain unverified. Live SQL Server has not been tested.
Embedded DejaVu Sans supports Latin and Cyrillic; RTL/complex shaping, CJK, emoji and fallback-font selection are not implemented. Numeric formatting uses invariant culture. Report scripts run only when explicitly enabled for trusted templates; interpreter limits are not an OS sandbox. Source refresh is explicit or opted in per HTTP connection before server generation; Studio exports reuse the displayed snapshot. SQL browsing/editing requires host opt-in. Office editable mode preserves displayed text rather than original numeric types/formulas; exact-page mode embeds raster images. See the relevant guides for exact limits and feature-specific boundaries.