Describe your report once. Render it everywhere.
Pysar is a report engine for .NET: XAML markup or a fluent C# builder in, a vector PDF, bitmap pages, or a zoomable in-app viewer out — identical on Windows, macOS, Linux, Android, iOS and the browser.
var report = ReportBuilder.Create("Hello report")
.WithPageFormat(new PageFormat { Margin = new Thickness(30) })
.WithDetail(detail => detail.AddElement(new Text { Content = "Hello from Pysar" }))
.Build();
await new SkiaReportRenderer().SavePdfAsync(report, "hello.pdf");
What you get
Built for real, paginated documents
Bands, bindings and pagination that behave like a document engine — not a UI framework stretched to fit.
Two authoring styles
.rxaml markup for fixed-shape reports, the fluent builder for structure computed at runtime — same object model, can be mixed.
Real pagination
Detail rows slice across pages, headers repeat, page bands re-resolve per page, and PageNumber/PageCount reach your bindings.
Vector PDF output
Text stays selectable and sharp at any zoom — nothing is rasterised — plus bitmap page rendering at any scale.
Tiled viewer
One viewer control shared across every UI framework — only the visible region rasterises, so memory follows the viewport.
Compile-time validation
The source generator checks {Binding} paths and DataTrigger.Binding against x:DataType, for reports loaded at runtime too.
Data binding & triggers
{Binding}, string formats, value converters and DataTrigger for conditional formatting — resolved once, at build time.
Packages
Name at most three packages
Pysar always, Pysar.Xaml for .rxaml markup, and one platform package for your UI framework.
| Package | Responsibility |
|---|---|
| Pysar | Reports, bands, layouts, repeaters, styles, triggers, data binding, and the SkiaSharp measurement, pagination, rendering and PDF engine |
| Pysar.Xaml | Declarative report markup: the runtime loader and the code-behind source generator |
| Pysar.Viewer | Framework-neutral viewer logic: page geometry, zoom, tile planning and the tile cache (arrives transitively) |
| Pysar.Maui | .NET MAUI integration: app-package assets, font registration, PDF export and sharing |
| Pysar.Avalonia | Avalonia integration: avares:// assets, font registration and the report view |
| Pysar.Blazor | Blazor integration: the report viewer component, printing through the browser |
| Pysar.Wpf | WPF integration (Windows only): pack/manifest assets, font registration and the report view |
Platforms
The same ReportView, everywhere
Every platform package exposes the same properties — Zoom, EffectiveZoom, PageSpacing — so the integration reads the same across your apps.
.NET MAUI
Android, iOS & Mac Catalyst
Avalonia
Windows, macOS & Linux
WPF
Windows only
Blazor
Runs in the browser
Editor tooling for Pysar
.rxaml syntax highlighting for Rider and VS Code is free, forever. A full visual report designer, Pysar.Design, is in development and will likely be a paid product once it ships.