Novolis Docs
novolis-pdf / design.md

Design

dotnetpdfnovolis

Position

novolis-pdf is an orthogonal island for reading arbitrary PDF files:

source  →  typed object graph  →  page plan  →  text or Skia raster

It is not on the Math → Physics → Simulation → Gaming → Avalonia spine. The only Math dependency is Novolis.Math.Geometry from Novolis.Pdf.Rendering.

novolis-documents writes one-column books and reports. This repository does not author documents and does not replace that writer.

Packages

Novolis.Pdf.Abstractions
        ↓
Novolis.Pdf.Parsing  →  Novolis.Pdf.Core
        ↓
Novolis.Pdf.Rendering  →  Novolis.Pdf.Text
        ↓
Novolis.Pdf.Rendering.Skia

Novolis.Pdf.Documents  →  Novolis.Pdf.Platform
PackageRole
Novolis.Pdf.AbstractionsSources, diagnostics, page metadata, render records
Novolis.Pdf.ParsingSyntax, xref, streams, typed catalog/page/font views
Novolis.Pdf.CoreLazy session, limits, PdfSources
Novolis.Pdf.RenderingDisplay lists, view matrices, page tree
Novolis.Pdf.Rendering.SkiaSkia paint of a cached page plan
Novolis.Pdf.TextSpans, search, outline extraction
Novolis.Pdf.DocumentsRecent files and reading position on disk
Novolis.Pdf.PlatformActivation inbox and user-data directories

Skia types stay inside Novolis.Pdf.Rendering.Skia. Avalonia and MAUI stay out of this repository. Novolis.Maui.PdfViewer and product hosts compose the packages.

Hard non-goals

  • Third-party PDF engines (PDFium, QuestPDF, and similar)
  • An Avalonia viewer
  • Writing or laying out new documents (novolis-documents)
  • Full ISO coverage of images, Type3, annotations, and CMYK in the first reader