ProEdit.Printing.Avalonia
0.1.0
dotnet add package ProEdit.Printing.Avalonia --version 0.1.0
NuGet\Install-Package ProEdit.Printing.Avalonia -Version 0.1.0
<PackageReference Include="ProEdit.Printing.Avalonia" Version="0.1.0" />
<PackageVersion Include="ProEdit.Printing.Avalonia" Version="0.1.0" />
<PackageReference Include="ProEdit.Printing.Avalonia" />
paket add ProEdit.Printing.Avalonia --version 0.1.0
#r "nuget: ProEdit.Printing.Avalonia, 0.1.0"
#:package ProEdit.Printing.Avalonia@0.1.0
#addin nuget:?package=ProEdit.Printing.Avalonia&version=0.1.0
#tool nuget:?package=ProEdit.Printing.Avalonia&version=0.1.0
ProEdit
ProEdit is a modular .NET 10 document editing, rendering, reporting, and collaboration platform for desktop and embedded application scenarios. It combines a rich document object model, layout and rendering engines, import/export pipelines, Avalonia controls, reporting components, printing services, real-time collaboration infrastructure, and automation integrations in a package-oriented repository.
The codebase is designed as a set of composable libraries rather than a single monolithic application. Hosts can adopt the low-level document model, the FlowDocument/RichTextBox controls, the Word-style editor shell, the reporting designer/viewer, the collaboration stack, or the format conversion services independently.
Capabilities
- Rich document model with sections, paragraphs, runs, tables, lists, styles, shapes, fields, notes, content controls, mail merge data, document protection, comments, citations, metadata, and revision-oriented structures.
- Layout and rendering pipelines for pagination, line breaking, tables, floating objects, shapes, proofing decorations, and Skia-backed output.
- Import/export and conversion support across Open XML DOCX, RTF, HTML, Markdown, PDF, PostScript/EPS, XPS/OXPS, and internal document/FlowDocument models.
- Avalonia UI components including
FlowDocumentView, editableRichTextBox, ribbon controls, Word-style editor surfaces, print UI, and reporting designer/viewer controls. - Editing infrastructure for selection, undo/redo, clipboard formats, proofing, formatting state, table editing, content controls, headers/footers, comments, track changes, and command routing.
- Reporting stack with report definitions, data connectors, expression evaluation, materialization, document composition, export, RDL serialization, service orchestration, and desktop authoring/viewing.
- Collaboration core with operation batches, position tokens, snapshots, persistence, protocol models, transports, WebSocket relay support, and UI state/view models.
- Automation and integration components for VBA-style runtime support, macro orchestration, grammar proofing plugins, and Model Context Protocol (MCP) tools/resources.
- Compatibility layers for WinUI/Uno rich text APIs and RichEditBox-style host scenarios.
Repository Structure
| Path | Purpose |
|---|---|
src/ |
Production libraries, Avalonia controls, desktop apps, reporting components, collaboration services, and format providers. |
tests/ |
xUnit unit tests plus Avalonia headless UI tests for editor, reporting, FlowDocument, RichTextBox, collaboration, and compatibility layers. |
samples/ |
Small runnable hosts that showcase reusable controls across Avalonia, Uno Platform, and .NET MAUI. |
benchmarks/ |
BenchmarkDotNet performance benchmarks for layout and document synchronization paths. |
docfx/ |
DocFX documentation source for architecture, project map, getting started, FlowDocument, RichTextBox, and contribution guidance. |
.github/workflows/ |
Cross-platform CI, documentation deployment, release packaging, and NuGet publish automation. |
Architecture Map
| Area | Primary Projects | Responsibility |
|---|---|---|
| Core document model | ProEdit.Primitives, ProEdit.Documents, ProEdit.Documents.Data, ProEdit.Documents.Rtf |
Shared primitives, document structures, data binding, and RTF support. |
| Layout and rendering | ProEdit.Layout, ProEdit.Rendering, ProEdit.Rendering.Skia |
Pagination, layout records, rendering abstractions, and Skia rendering backend. |
| FlowDocument and rich text | ProEdit.FlowDocument, ProEdit.FlowDocument.Documents, ProEdit.FlowDocument.Avalonia, ProEdit.RichText.Avalonia |
WPF-style FlowDocument model, conversion to the core document model, read-only viewing, and editable Avalonia rich text control. |
| Word editor | ProEdit.Editing, ProEdit.Word.Editor, ProEdit.Word.Avalonia, ProEdit.Word.App |
Editing services, command maps, proofing, ribbon-backed editor UI, and desktop host application. |
| Shared controls | ProEdit.Controls.Skia, ProEdit.Controls.Skia.Avalonia, ProEdit.Controls.Skia.Uno, ProEdit.Controls.Skia.Maui |
Packable read-only viewer and editor controls for Avalonia, Uno Platform, and .NET MAUI, backed by the shared layout/rendering/editor host. |
| Formats | ProEdit.OpenXml, ProEdit.Html, ProEdit.Markdown, ProEdit.Pdf.*, ProEdit.PostScript, ProEdit.Xps, ProEdit.FlowDocument.IO |
Document import/export, multi-format conversion, and backend-specific PDF/PS/XPS integrations. |
| Printing | ProEdit.Printing, ProEdit.Printing.Documents, ProEdit.Printing.Skia, ProEdit.Printing.System, ProEdit.Printing.Avalonia |
Print contracts, document print conversion, Skia/system printing, and Avalonia print UI. |
| Reporting | ProEdit.Reporting.* |
Report model, data, expressions, RDL, serialization, materialization, exports, services, Avalonia designer/viewer, and desktop reporting app. |
| Collaboration | ProEdit.Collaboration.*, ProEdit.RichText.Avalonia.Collaboration, ProEdit.WinUICompat.Collaboration |
Operation model, snapshot persistence, protocol, transports, relay server, UI state, and editor/control integrations. |
| UI foundation | ProEdit.Ribbon, ProEdit.Ribbon.Avalonia |
Ribbon model and Avalonia ribbon controls/themes. |
| Automation and extensibility | ProEdit.Vba, ProEdit.Vba.Runtime, ProEdit.Macros, ProEdit.Mcp.*, ProEdit.Proofing.GrammarApi.Plugin |
Macro execution, VBA host/runtime services, MCP integration, and grammar proofing extension point. |
| Compatibility | ProEdit.WinUICompat, ProEdit.WinUICompat.Uno, ProEdit.WinUICompat.App |
WinUI/Uno compatible rich text APIs and sample host. |
NuGet Packages
The table lists packable library projects in this repository. Desktop/sample hosts such as ProEdit.Word.App, ProEdit.Reporting.App, ProEdit.FlowDocument.App, and ProEdit.WinUICompat.App are source-built applications and are intentionally not listed as packages.
| Area | Package | NuGet | Purpose |
|---|---|---|---|
| Core | ProEdit.Primitives | Shared primitive types for geometry and document infrastructure. | |
| Core | ProEdit.Documents | Core document object model. | |
| Core | ProEdit.Documents.Data | Document data binding and reporting data integration. | |
| Core | ProEdit.Documents.Rtf | RTF parsing and serialization. | |
| Layout | ProEdit.Layout | Pagination and document layout engine. | |
| Rendering | ProEdit.Rendering | Rendering abstractions and composition contracts. | |
| Rendering | ProEdit.Rendering.Skia | Skia-backed renderer. | |
| FlowDocument | ProEdit.FlowDocument | Avalonia-friendly FlowDocument object model. | |
| FlowDocument | ProEdit.FlowDocument.Documents | Conversion between FlowDocument and core documents. | |
| FlowDocument | ProEdit.FlowDocument.Avalonia | Avalonia FlowDocumentView control. |
|
| FlowDocument | ProEdit.FlowDocument.IO | Multi-format FlowDocument/document conversion services. | |
| Rich Text | ProEdit.RichText.Avalonia | Editable Avalonia rich text control. | |
| Rich Text | ProEdit.RichText.Avalonia.Collaboration | Collaboration integration for the Avalonia rich text control. | |
| Shared Controls | ProEdit.Controls.Skia | Shared Skia document host and framework-neutral control contracts. | |
| Shared Controls | ProEdit.Controls.Skia.Avalonia | Avalonia read-only viewer and editable document controls. | |
| Shared Controls | ProEdit.Controls.Skia.Uno | Uno Platform read-only viewer and editable document controls. | |
| Shared Controls | ProEdit.Controls.Skia.Maui | .NET MAUI read-only viewer and editable document controls. | |
| Editing | ProEdit.Editing | Editing, selection, clipboard, proofing, and command services. | |
| Word | ProEdit.Word.Editor | Word-processing editor engine. | |
| Word | ProEdit.Word.Avalonia | Avalonia editor UI and resources. | |
| Ribbon | ProEdit.Ribbon | Ribbon model and command abstractions. | |
| Ribbon | ProEdit.Ribbon.Avalonia | Avalonia ribbon controls and theme resources. | |
| Formats | ProEdit.OpenXml | Open XML/DOCX import and export. | |
| Formats | ProEdit.Html | HTML import/export helpers. | |
| Formats | ProEdit.Markdown | Markdown import/export helpers. | |
| Formats | ProEdit.Pdf | PDF domain abstractions. | |
| Formats | ProEdit.Pdf.Documents | PDF integration with the document model. | |
| Formats | ProEdit.Pdf.PdfPig | PDF parsing via PdfPig. | |
| Formats | ProEdit.Pdf.PdfSharp | PDF generation via PDFsharp. | |
| Formats | ProEdit.PostScript | PostScript/EPS conversion support. | |
| Formats | ProEdit.Xps | XPS/OXPS conversion support. | |
| Printing | ProEdit.Printing | Printing contracts and shared models. | |
| Printing | ProEdit.Printing.Documents | Document-to-print conversion. | |
| Printing | ProEdit.Printing.Skia | Skia print pipeline. | |
| Printing | ProEdit.Printing.System | System print integration. | |
| Printing | ProEdit.Printing.Avalonia | Avalonia print UI. | |
| Collaboration | ProEdit.Collaboration | Collaboration operation model, engine, persistence, and snapshots. | |
| Collaboration | ProEdit.Collaboration.Protocol | Collaboration wire protocol types and codecs. | |
| Collaboration | ProEdit.Collaboration.Transports | Local, shared-file, loopback, and WebSocket transport implementations. | |
| Collaboration | ProEdit.Collaboration.Server | WebSocket relay server components. | |
| Collaboration | ProEdit.Collaboration.UI | Collaboration UI state and view models. | |
| Reporting | ProEdit.Reporting.Core | Report definitions, items, parameters, diagnostics, and execution contracts. | |
| Reporting | ProEdit.Reporting.Data | Report data sources, data sets, and runtime data access. | |
| Reporting | ProEdit.Reporting.Expressions | Report expression evaluation. | |
| Reporting | ProEdit.Reporting.Materialization | Materialized report generation. | |
| Reporting | ProEdit.Reporting.DocumentComposition | Report-to-document composition. | |
| Reporting | ProEdit.Reporting.Export | Report export to document and page formats. | |
| Reporting | ProEdit.Reporting.Rdl | RDL/SSRS report serialization support. | |
| Reporting | ProEdit.Reporting.Serialization | JSON report serialization. | |
| Reporting | ProEdit.Reporting.Service | Report repository, execution, scheduling, and service orchestration. | |
| Reporting | ProEdit.Reporting.Avalonia.Viewer | Avalonia report viewer and preview surface. | |
| Reporting | ProEdit.Reporting.Avalonia.Designer | Avalonia report designer and authoring panes. | |
| Automation | ProEdit.Vba | VBA-style automation abstractions. | |
| Automation | ProEdit.Vba.Runtime | VBA runtime support. | |
| Automation | ProEdit.Macros | Macro orchestration. | |
| MCP | ProEdit.Mcp | Model Context Protocol server, tools, and resources. | |
| MCP | ProEdit.Mcp.Documents | MCP document tools for content controls and mail merge workflows. | |
| MCP | ProEdit.Mcp.Reporting | MCP reporting tools, exports, and connector workflows. | |
| Proofing | ProEdit.Proofing.GrammarApi.Plugin | Grammar API proofing plugin. | |
| Compatibility | ProEdit.WinUICompat | WinUI-style rich text compatibility layer. | |
| Compatibility | ProEdit.WinUICompat.Uno | Uno integration for WinUI compatibility APIs. | |
| Compatibility | ProEdit.WinUICompat.Collaboration | Collaboration integration for WinUI/Uno compatibility controls. |
Installation
Install only the packages needed by the host application. For example, an Avalonia editor host typically starts with:
dotnet add package ProEdit.Word.Avalonia
dotnet add package ProEdit.RichText.Avalonia
dotnet add package ProEdit.OpenXml
A reporting host typically starts with:
dotnet add package ProEdit.Reporting.Avalonia.Viewer
dotnet add package ProEdit.Reporting.Service
dotnet add package ProEdit.Reporting.Export
Smaller embedded document hosts can use the shared Skia controls:
dotnet add package ProEdit.Controls.Skia.Avalonia
dotnet add package ProEdit.Controls.Skia.Uno
dotnet add package ProEdit.Controls.Skia.Maui
Build From Source
Prerequisites:
- .NET SDK
10.0.100or newer compatible SDK, as defined inglobal.json. - Optional Uno and MAUI workloads for WinUI/Uno compatibility projects and the MAUI shared-control sample on clean machines:
dotnet workload install wasm-tools wasm-experimental maui-android
# On macOS, use the full MAUI workload when building iOS or Mac Catalyst heads.
dotnet workload install wasm-tools wasm-experimental maui
Build and test the full solution:
dotnet restore ProEdit.slnx
dotnet build ProEdit.slnx
dotnet test ProEdit.slnx
Run the primary desktop applications:
dotnet run --project src/ProEdit.Word.App/ProEdit.Word.App.csproj
dotnet run --project src/ProEdit.Reporting.App/ProEdit.Reporting.App.csproj
dotnet run --project src/ProEdit.FlowDocument.App/ProEdit.FlowDocument.App.csproj
Run the shared control samples:
dotnet run --project samples/ProEdit.Controls.Skia.Avalonia.Sample/ProEdit.Controls.Skia.Avalonia.Sample.csproj
dotnet run --project samples/ProEdit.Controls.Skia.Uno.Sample/ProEdit.Controls.Skia.Uno.Sample.csproj
dotnet build -f net10.0-maccatalyst samples/ProEdit.Controls.Skia.Maui.Sample/ProEdit.Controls.Skia.Maui.Sample.csproj
Run benchmarks:
dotnet run -c Release --project benchmarks/ProEdit.Layout.Benchmarks/ProEdit.Layout.Benchmarks.csproj
Build and serve documentation:
dotnet tool restore
./build-docs.sh
./serve-docs.sh
On Windows:
dotnet tool restore
./build-docs.ps1
./serve-docs.ps1
Development Quality Bar
Directory.Build.propscentralizes .NET 10, nullable reference types, implicit usings, package metadata, symbol packages, repository metadata, and MIT licensing.- CI builds and tests on Ubuntu, Windows, and macOS, then packs NuGet artifacts.
- The test suite covers document model behavior, layout, FlowDocument conversion, rich text editing, Open XML, Markdown, HTML, PDF integration, printing, reporting, collaboration, VBA runtime, WinUI compatibility, and Avalonia headless UI surfaces.
- BenchmarkDotNet coverage exists for layout and large-document synchronization paths.
- DocFX documentation is built from the repository and deployed through the docs workflow.
Documentation
- Getting Started
- Architecture
- Project Map
- FlowDocument
- RichTextBox
- Shared Skia Controls
- Build and Test
- Contributing
License
ProEdit is licensed under the MIT License.
| Product | Versions 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. |
-
net10.0
- Avalonia (>= 12.0.5)
- Avalonia.Themes.Fluent (>= 12.0.5)
- ProEdit.Printing (>= 0.1.0)
- ReactiveUI (>= 23.2.28)
- ReactiveUI.Avalonia (>= 12.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ProEdit.Printing.Avalonia:
| Package | Downloads |
|---|---|
|
ProEdit.Word.Avalonia
Avalonia UI for the ProEdit Word editor. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 23 | 6/29/2026 |