nextgenSOFTWARE
SOFTWARE NEXT GENERATION

Nextgen Reports

Nextgen Reports — exampleExplore this topic with included sample inputs and engine-generated results
Open example ↗

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:

Shell
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:5274

Open 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

Shell
# 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.py

Double-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:

C#
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):

Shell
dotnet run --project src/NextgenReports.Cli -- samples/sales.nrtemplate samples/sales.data.json output/pdf/sales-report.pdf samples/sales.parameters.json

Desktop 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

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.