NETReporter 1.0.0
NETReporter
Moderní knihovna pro generování PDF reportů z JSON šablon
🚀 Instalace
dotnet add package NETReporter
📋 Použití
using NetReporter;
// Registrace služeb
services.AddNetReporter();
// Generování reportu
var renderer = serviceProvider.GetRequiredService<IReportRenderer>();
var pdfBytes = await renderer.RenderAsync(templateJson, dataJson);
// Uložení do souboru
await File.WriteAllBytesAsync("report.pdf", pdfBytes);
Strukturovaný JSON výstup pro automatické kontroly
var renderer = new ReportRenderer();
await using var jsonStream = await renderer.RenderAsync(
templateStream,
dataStream,
new RenderOptions { Format = RenderFormat.Json });
Výstup RenderFormat.Json je určený pro strojové/AI validace parseru a runtime renderingu:
- obsahuje sekce (
pageHeader,reportHeader,content,reportFooter,pageFooter), - obsahuje vyrenderované hodnoty uzlů (po vyhodnocení bindingů),
- pro
Image,BarcodeaCode2Dobsahuje placeholder metadata (source,sourceType,requestedFormat,resolvedFormat,availability,availabilityReason), - pro
Chartobsahuje vyhodnocená data grafu (categories,series[].values, barvy).
Grafy
Uzel Chart vykreslí sloupcový, pruhový, čárový, plošný, koláčový nebo donut graf nad kolekcí dat:
{
"type": "Chart",
"chartType": "Column",
"source": "$.Months",
"as": "m",
"category": "{{m.Month}}",
"series": [
{ "name": "2025", "value": "m.Revenue" },
{ "name": "2024", "value": "m.RevenuePrev" }
],
"valueAxis": { "format": "N0" }
}
Grafy se kreslí vektorově (SVG) pomocí knihovny OxyPlot.Core (čistě managed, bez nativních závislostí). Popis všech vlastností je v dokumentaci formátu šablon (kapitola Chart).
SVG výstup
var renderer = new ReportRenderer();
await using var svgStream = await renderer.RenderAsync(
templateStream,
dataStream,
new RenderOptions { Format = RenderFormat.Svg });
Výstup RenderFormat.Svg je určený pro lehký vizuální náhled, automatizované porovnávání struktury a integrace, kde je preferovaný vektorový formát.
✨ Funkce
- ✅ Deklarativní JSON šablony pro definici PDF reportů
- ✅ Dynamické vyhodnocování dat pomocí C# výrazů
- ✅ Podpora tabulek, grafů (sloupcové, pruhové, čárové, plošné, koláčové), obrázků a čárových kódů
- ✅ QR kódy a různé typy čárových kódů (EAN, Code128, atd.)
- ✅ SVG obrázky s automatickým fallbackem
- ✅ FlexibilníLayoutEngine pro složité rozvržení
- ✅ Validace šablon pomocí JSON Schema
📚 Dokumentace
Kompletní dokumentaci k šablonám a API najdete v dokumentaci projektu.
🔧 Požadavky
- .NET 10.0 nebo vyšší
📝 Licence
Copyright © PeNo
Pro více informací, příkladů a pokročilé použití navštivte repozitář projektu.
No packages depend on NETReporter.
.NET 10.0
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 4.14.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 6.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- OxyPlot.Core (>= 2.2.0)
- QuestPDF (>= 2025.12.3)
- SkiaSharp.Svg (>= 1.60.0)
- ZXing.Net (>= 0.16.9)
| Version | Downloads | Last updated |
|---|---|---|
| 3.9.2 | 3 | 10/28/2026 |
| 3.9.1 | 1 | 10/27/2026 |
| 3.9.0 | 6 | 10/20/2026 |
| 3.8.1 | 6 | 10/19/2026 |
| 3.8.0 | 4 | 10/19/2026 |
| 3.7.0 | 4 | 10/19/2026 |
| 3.6.0 | 6 | 10/17/2026 |
| 3.5.1 | 62 | 10/15/2026 |
| 3.5.0 | 4 | 10/15/2026 |
| 3.4.2 | 5 | 10/15/2026 |
| 3.4.0 | 4 | 10/12/2026 |
| 3.3.0 | 5 | 10/11/2026 |
| 3.2.2 | 5 | 10/10/2026 |
| 3.2.1 | 4 | 10/10/2026 |
| 3.2.0 | 4 | 10/10/2026 |
| 3.1.1 | 4 | 10/09/2026 |
| 3.1.0 | 5 | 10/09/2026 |
| 3.0.1 | 8 | 10/08/2026 |
| 3.0.0 | 5 | 10/08/2026 |
| 2.2.1 | 5 | 10/05/2026 |
| 2.2.0 | 4 | 10/05/2026 |
| 2.1.0 | 9 | 10/04/2026 |
| 2.0.1 | 8 | 10/04/2026 |
| 2.0.0 | 5 | 10/03/2026 |
| 1.7.0 | 6 | 10/03/2026 |
| 1.6.0 | 5 | 10/02/2026 |
| 1.5.0 | 12 | 10/02/2026 |
| 1.4.0 | 6 | 10/01/2026 |
| 1.3.0 | 4 | 10/01/2026 |
| 1.2.0 | 5 | 10/01/2026 |
| 1.1.1 | 6 | 09/30/2026 |
| 1.1.0 | 8 | 09/30/2026 |
| 1.0.10 | 4 | 09/29/2026 |
| 1.0.9 | 4 | 09/29/2026 |
| 1.0.8 | 16 | 09/29/2026 |
| 1.0.7 | 115 | 09/24/2026 |
| 1.0.6 | 9 | 09/24/2026 |
| 1.0.5 | 7 | 09/24/2026 |
| 1.0.4 | 11 | 09/24/2026 |
| 1.0.3 | 8 | 09/24/2026 |
| 1.0.2 | 13 | 09/23/2026 |
| 1.0.0 | 7 | 09/23/2026 |
| 0.9.1 | 13 | 09/23/2026 |
| 0.9.0 | 87 | 09/14/2026 |
| 0.8.1 | 25 | 02/20/2026 |
| 0.8.1-preview.1 | 34 | 02/13/2026 |
| 0.7.1-preview.2 | 32 | 02/10/2026 |
| 0.7.1-preview.1 | 33 | 02/10/2026 |
| 0.7.0 | 30 | 02/10/2026 |
| 0.0.6 | 28 | 02/01/2026 |
| 0.0.5 | 19 | 02/01/2026 |
| 0.0.0-alpha.0.17 | 35 | 02/01/2026 |