Pysar.Viewer 0.1.38

There is a newer version of this package available.
See the version list below for details.
dotnet add package Pysar.Viewer --version 0.1.38
                    
NuGet\Install-Package Pysar.Viewer -Version 0.1.38
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pysar.Viewer" Version="0.1.38" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pysar.Viewer" Version="0.1.38" />
                    
Directory.Packages.props
<PackageReference Include="Pysar.Viewer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pysar.Viewer --version 0.1.38
                    
#r "nuget: Pysar.Viewer, 0.1.38"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pysar.Viewer@0.1.38
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pysar.Viewer&version=0.1.38
                    
Install as a Cake Addin
#tool nuget:?package=Pysar.Viewer&version=0.1.38
                    
Install as a Cake Tool

Pysar.Viewer

Framework-neutral viewer logic for Pysar, a cross-platform report engine for .NET: page geometry, zoom, tile planning and the tile cache. It depends on the core Pysar package and is the shared core behind every platform-specific ReportView control.

A built report renders as scrollable, zoomable pages, rasterised one visible tile at a time. Only the visible region is rasterised, so memory follows the size of the viewport rather than the zoom level.

This package is not referenced directly — it arrives transitively with a platform package, which supplies the actual UI control:

Platform package Control
Pysar.Maui .NET MAUI ReportView
Pysar.Avalonia Avalonia ReportView
Pysar.Wpf WPF ReportView (Windows only)
Pysar.Blazor Blazor <ReportView> component

The properties are the same on every platform. PageBorderColor and PageBorderThickness frame each page, which is what tells a page from the surface behind it when both are light; the line is drawn outside the paper, so the report itself is never covered by it. PageSpacing is the gap between two pages, in device independent units — it does not scale with the zoom, so the gap looks the same however far in the reader is.

A fit mode resolves to a factor only the control knows, so bind EffectiveZoom to show the percentage: Zoom holds what was asked for, not what the view settled on.

Documentation

License

MIT — see LICENSE.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Pysar.Viewer:

Package Downloads
Pysar.Maui

.NET MAUI integration for Pysar: application-package asset access, font registration, PDF export and sharing.

Pysar.Wpf

WPF integration for Pysar: application asset access, font registration, scrollable zoomable report view, and printing.

Pysar.Blazor

A Blazor WebAssembly report viewer for Pysar.

Pysar.Avalonia

Avalonia integration for Pysar: application asset access, font registration and a scrollable, zoomable report view.

Pysar.Uno

Uno Platform integration for Pysar: application asset access, font registration, a scrollable, zoomable report view, PDF printing and sharing.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.63 79 10/1/2026
0.1.56 130 9/20/2026
0.1.53 116 9/20/2026
0.1.46 128 9/18/2026
0.1.44 124 9/16/2026
0.1.41 125 9/15/2026
0.1.38 129 9/14/2026
0.1.34 117 9/13/2026
0.1.31 124 9/11/2026
0.1.24 130 9/6/2026
0.1.10 128 8/30/2026
0.1.0 126 8/30/2026

### Added
- `Pysar.Uno`: a new platform package for [Uno Platform](https://platform.uno/). One `net10.0` target covers every Uno Skia host - Desktop, WebAssembly, Android and iOS - and it brings the same `ReportView` the other platform packages do: a scrollable, zoomable viewer that rasterises only the visible region, so memory follows the viewport rather than the zoom level. Built against Uno 6.7.
- `PysarUno.Use(assembly, configure)` / `PysarUno.UseAsync(...)` (`Pysar.Uno`): registration for an Uno application, called from `OnLaunched`. A static entry point rather than a service registration, because an Uno application has no service collection of its own unless it also uses Uno.Extensions. Returns the handler, and exposes the shared `PysarUno.Renderer` and `PysarUno.ExportService`.
- `UnoReportPlatformHandler` and `UnoAssetFileSystem` (`Pysar.Uno`): report assets are read from embedded resources whose `LogicalName` is the path the report asks for. Embedded rather than `ms-appx:///` because font registration, `ResourceDictionary` sources and image loading all read synchronously, and blocking on Uno's asynchronous `StorageFile` deadlocks the single-threaded WebAssembly host. `UnoAssetFileSystem.PreloadAsync` fetches `Content`-packaged assets once at startup for applications that would rather keep them that way.
- `UnoReportPrinter` (`Pysar.Uno`): desktop printing through the same vector PDF pipeline as export - the macOS Print panel via PDFKit, the shell print verb on Windows, the default viewer on Linux. Android, iOS and WebAssembly throw `PlatformNotSupportedException`; produce the bytes through `PysarUno.ExportService` and share or download them from the application.
- `MacPinchMonitor` and `MacMagnifyEventArgs` (`Pysar.Core.Platform`, in `Pysar`): an AppKit local event monitor for `NSEventTypeMagnify`, now public and shared by every host that needs it. No user-interface framework tested surfaces a trackpad pinch as a gesture on macOS - it arrives as plain wheel deltas indistinguishable from a two-finger scroll - so a trackpad zoom has to come from AppKit directly. `Start`/`Stop` are no-ops on every other platform.

### Changed
- `MacPinchMonitor` moved from `Pysar.Avalonia`, where it was internal, into `Pysar`. Behaviour is unchanged for Avalonia applications; the type is simply no longer duplicated per host. It is plain P/Invoke against libobjc with no dependency on any user-interface framework, which is why it belongs beside `MacOsPdfPrint` in the core package.
- HarfBuzzSharp moves from 14.2.0 to 14.2.1.1 across every package, managed wrapper and native assets together. Required by Uno, and applied as a family because a split between the managed wrapper and its native assets is a startup crash rather than a build error.
- Docs: the quick start and README now cover Uno alongside the other platforms, including the two places it deviates - registration is `PysarUno.Use` rather than `UsePysar`/`AddPysar`, and assets are embedded resources rather than package URIs.

### Notes
- `Pysar.Uno 0.1.35-preview`, published earlier to the internal feed, is superseded and should not be used. It required an `Uno.WinUI` prerelease that no released `Uno.Sdk` provides, so no standard Uno application could consume it. This release targets stable Uno 6.7 instead and ships as an ordinary stable package.
- The Uno report view has been exercised on macOS Desktop - loading, pagination, zoom modes, and trackpad pinch. Its other hosts (WebAssembly, Android, iOS) build from the same single target but have not yet been run.