Cross-platform print pipeline
PrintingTools
Treat print layout, preview, and platform submission as one portable application service.
Overview
A .NET printing toolkit with discovery, dialogs, preview, pagination, layout, PDF/vector rendering, job submission, and Windows, macOS, and Linux adapters.
PrintingTools separates portable print documents, tickets, pagination, layout, preview, rendering, diagnostics, and jobs from operating-system adapters. Avalonia applications can opt into ready-made UI or drive the same services headlessly.
Preview and print sessions
N-up, booklet, and poster layout
Windows, macOS, and Linux adapters
Managed PDF and headless fallbacks
Built for
Where it fits.
- Avalonia applications with print and preview workflows
- Reporting and document tools
- Teams needing headless PDF and cross-platform print diagnostics
Compatibility & status
Win32 / XPS
AppKit / Quartz
CUPS / GTK / portals
Managed PDF fallback
In the work
Real output,
not a mockup.

Architecture
Clear layers.
Replaceable seams.
Core
Portable documents, tickets, layout, pagination, preview, rendering, and diagnostics.
UI
Avalonia page setup and preview windows consume portable models.
Adapters
Windows, macOS, and Linux packages bind native queues, dialogs, and submission.
Harnesses
Headless and sandbox samples retain PDFs and metrics for CI.
Inside PrintingTools
One repository.
Multiple serious systems.
Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.
Documents become page sequences through standard, N-up, booklet, or poster layout, then feed reusable Avalonia page setup and preview windows before submission.
2 modules→02 · Native queues and dialogsPlatform Print AdaptersWindows Win32/XPS, macOS AppKit/Quartz, and Linux CUPS/GTK adapters discover queues, inspect capabilities, coordinate native dialogs, and respect sandbox or portal constraints.
3 modules→03 · Headless and observable outputPDF, Jobs & DiagnosticsSkia vector/PDF rendering, managed fallbacks, job history, diagnostic events, and cross-platform harnesses support visible applications, sandboxed hosts, headless automation, and CI verification.
1 module→Quick start
From package
to first frame.
Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.
dotnet add package PrintingToolsdotnet add package PrintingTools.UI<PackageReference Include="PrintingTools" Version="VERSION" /><PackageVersion Include="PrintingTools" Version="VERSION" />AppBuilder.Configure<App>() .UsePlatformDetect() .UsePrintingTools(options => options.EnablePreview = true);Package surface
Start focused.
Compose as needed.
Source, docs, samples, and releases
The repository is the source of truth.
Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.