Pysar.Wpf
0.1.34
dotnet add package Pysar.Wpf --version 0.1.34
NuGet\Install-Package Pysar.Wpf -Version 0.1.34
<PackageReference Include="Pysar.Wpf" Version="0.1.34" />
<PackageVersion Include="Pysar.Wpf" Version="0.1.34" />
<PackageReference Include="Pysar.Wpf" />
paket add Pysar.Wpf --version 0.1.34
#r "nuget: Pysar.Wpf, 0.1.34"
#:package Pysar.Wpf@0.1.34
#addin nuget:?package=Pysar.Wpf&version=0.1.34
#tool nuget:?package=Pysar.Wpf&version=0.1.34
Pysar.Wpf
WPF integration for Pysar, a cross-platform report engine for
.NET: pack URI and assembly manifest asset access, font registration, a scrollable, zoomable
ReportView, and printing. It installs a WpfReportPlatformHandler for file and font access.
Windows only. On macOS and Linux the package is not produced; the real WPF sources compile only
under net10.0-windows.
Setup
Call UsePysar from Application.OnStartup:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
this.UsePysar(pysar => pysar
.AddFont("Fonts/Ubuntu-Regular.ttf", "Ubuntu")
.AddFont("Fonts/Ubuntu-Bold.ttf", "Ubuntu", FontStyle.Bold));
}
Showing a report
<pysar:ReportView Report="{Binding Report}"
ZoomMode="FitWidth"
Zoom="{Binding Zoom}"
EffectiveZoom="{Binding EffectiveZoom, Mode=OneWayToSource}"
CurrentPage="{Binding CurrentPage}"
PageSpacing="24" />
Ctrl + wheel zooms around the pointer; a plain wheel scrolls; double-click toggles fit width and
close-up. PageBorderColor and PageBorderThickness frame each page; PageSpacing is the gap
between pages and does not scale with the zoom. Bind EffectiveZoom to show the zoom percentage —
Zoom holds what was asked for, not what the view settled on.
Printing
Printing uses the same vector PDF pipeline as export:
var printer = new WpfReportPrinter(PysarWpf.Renderer);
await printer.PrintAsync(builtReport);
The report must already have Build() called.
Documentation
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- HarfBuzzSharp (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Linux (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Pysar.Viewer (>= 0.1.34)
- SkiaSharp (>= 4.151.2)
- SkiaSharp.NativeAssets.Linux (>= 4.151.2)
- SkiaSharp.NativeAssets.macOS (>= 4.151.2)
- SkiaSharp.NativeAssets.Win32 (>= 4.151.2)
- Svg.Skia (>= 5.2.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
### Added
- `DefaultReportPlatformHandler` (`Pysar.Skia`): a ready-made `IReportPlatformHandler` for hosts without a UI framework - console and worker applications, server-side rendering, and the design-time preview. Pass a directory to its constructor when assets do not sit next to the binaries.
- `LocalFileSystem` (`Pysar.Skia`): an `IFileSystem`/`ISyncFileSystem` that reads report assets from disk. Relative paths resolve against the application's deployment directory, rooted paths are read as given, and a missing asset reads as `null` instead of throwing.
### Fixed
- Asset paths now resolve against `AppContext.BaseDirectory` rather than the executing binary, so images and fonts are found when the assembly is loaded by a host such as `dotnet app.dll` or the design-time preview.
### Changed
- Rounded-border rendering builds its ring path with `SKPathBuilder`, matching the current SkiaSharp path API.
- Docs: quick start and README now describe `DefaultReportPlatformHandler` as the default, with the UI-framework handlers (`AvaloniaReportPlatformHandler`, `WpfReportPlatformHandler`, `MauiReportPlatformHandler`, `WasmPlatformHandler`) registered by `UsePysar`/`AddPysar`.