Pysar.Maui
0.1.31
dotnet add package Pysar.Maui --version 0.1.31
NuGet\Install-Package Pysar.Maui -Version 0.1.31
<PackageReference Include="Pysar.Maui" Version="0.1.31" />
<PackageVersion Include="Pysar.Maui" Version="0.1.31" />
<PackageReference Include="Pysar.Maui" />
paket add Pysar.Maui --version 0.1.31
#r "nuget: Pysar.Maui, 0.1.31"
#:package Pysar.Maui@0.1.31
#addin nuget:?package=Pysar.Maui&version=0.1.31
#tool nuget:?package=Pysar.Maui&version=0.1.31
Pysar.Maui
.NET MAUI integration for Pysar, a cross-platform report engine
for .NET: application-package asset access, font registration, PDF export, sharing and a scrollable,
zoomable ReportView. It installs a MauiReportPlatformHandler for file and font access, and brings
the right SkiaSharp native assets for each target platform.
Android, iOS and Mac Catalyst are the platforms the package is built for; the Windows target only appears when packing on a Windows host, and ships untested.
Setup
Fonts and images are declared as MauiAsset items and read straight from the application package —
nothing is extracted to disk:
<MauiAsset Include="Fonts\**" LogicalName="Fonts/%(Filename)%(Extension)" />
<MauiAsset Include="Images\**" LogicalName="Images/%(Filename)%(Extension)" />
builder
.UseMauiApp<App>()
.UsePysar(pysar => pysar
.AddFont("Fonts/Ubuntu-Regular.ttf", "Ubuntu")
.AddFont("Fonts/Ubuntu-Bold.ttf", "Ubuntu", FontStyle.Bold));
SkiaReportRenderer, IReportExportService, IReportSharer and IReportPrinter are then
injectable: the export service writes a report to a stream or a byte array in a requested
ExportFormat, the sharer offers those bytes to the platform share sheet, and the printer opens the
platform print dialog.
byte[] pdfBytes = await exportService.ExportAsync(report, ExportFormat.Pdf);
Showing a report
<pysar:ReportView Report="{Binding Report}"
ZoomMode="FitWidth"
Zoom="{Binding Zoom}"
EffectiveZoom="{Binding EffectiveZoom}"
CurrentPage="{Binding CurrentPage}"
PageSpacing="24" />
Pinch zooms around the fingers and a double tap switches between fitting the width and reading close
up, both anchored on the point they were made at. 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.
Documentation
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-ios26.0 is compatible. net10.0-maccatalyst26.0 is compatible. |
-
net10.0-android36.0
- HarfBuzzSharp (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Android (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Linux (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Maui.Controls (>= 10.0.100)
- Pysar (>= 0.1.31)
- Pysar.Viewer (>= 0.1.31)
- SkiaSharp (>= 4.151.2)
- SkiaSharp.NativeAssets.Android (>= 4.151.2)
- SkiaSharp.NativeAssets.Linux (>= 4.151.2)
- Svg.Skia (>= 5.2.3)
-
net10.0-ios26.0
- HarfBuzzSharp (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.iOS (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Linux (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Maui.Controls (>= 10.0.100)
- Pysar (>= 0.1.31)
- Pysar.Viewer (>= 0.1.31)
- SkiaSharp (>= 4.151.2)
- SkiaSharp.NativeAssets.iOS (>= 4.151.2)
- SkiaSharp.NativeAssets.Linux (>= 4.151.2)
- Svg.Skia (>= 5.2.3)
-
net10.0-maccatalyst26.0
- HarfBuzzSharp (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Linux (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.MacCatalyst (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.0)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Maui.Controls (>= 10.0.100)
- Pysar (>= 0.1.31)
- Pysar.Viewer (>= 0.1.31)
- SkiaSharp (>= 4.151.2)
- SkiaSharp.NativeAssets.Linux (>= 4.151.2)
- SkiaSharp.NativeAssets.MacCatalyst (>= 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
- Report watermarks: `Report.Watermark` / `ReportBuilder.WithWatermark`, XAML child, repeats on every page, full physical page, `Layer` (behind or in front of content), `IsVisible`.
- `Opacity` (0..1) and visual `Rotation` (around bounds center) on report elements.
- Rounded frames: `CornerRadius` (1 or 4 values). Borders wrap the inner content radius; children clip to the inner arc.
- XAML file overlay for unsaved editor buffers during preview/resource load (overlay wins over disk).
### Fixed
- MAUI pinch/zoom after Shell flyout navigation (stale recognizers on the old scroll view).
- ReportView gesture lifecycle: detach/reattach on handler changes and `Loaded`, so gestures survive navigation.
### Changed
- Native libraries: SkiaSharp 4.151.2, Svg.Skia 5.2.3, HarfBuzzSharp + native assets, MAUI / Microsoft.Extensions 10.x.