Novolis Docs
novolis-documents / README.md

novolis-documents docs

dotnetpdfdocumentsnovolis

Paged document island for Novolis: immutable model → one-column layout → SkiaSharp PDF.

DocWhat it covers
[getting-started.md](./getting-started.html)Install, first PDF, dogfood samples, build/test
[design.md](./design.html)Package stack, goals, non-goals, page lifecycle
[authoring.md](./authoring.html)Fluent `Document.Create` DSL (P1 spine)
[model.md](./model.html)`PagedDocument`, meta, page setup, typography
[blocks.md](./blocks.html)Block catalog (headings, tables, columns, images, …)
[header-footer.md](./header-footer.html)Header / footer includes, templates, chapter title, watermark
[layout-and-pdf.md](./layout-and-pdf.html)`DocumentPaginator`, `PagePlan`, `DocumentPdf`
[mappers.md](./mappers.html)Mapping external formats into `PagedDocument`
[faq.md](./faq.html)Common questions
[release.md](./release.html)CalVer / publish

Packages

PackageRole
[`Novolis.Documents`](../src/Novolis.Documents/README.md)Model + fluent builders
[`Novolis.Documents.Layout`](../src/Novolis.Documents.Layout/README.md)Pagination
[`Novolis.Documents.Skia`](../src/Novolis.Documents.Skia/README.md)PDF paint

Mental model

Document.Create(title)
  .Meta(…)
  .Page(p => p.Header(…).Footer(…))
  .Watermark(…)          // optional
  .Body(b => b
      .First(…)          // title page
      .Content(c => c    // main flow
          .Toc()
          .Chapter(…)
          .Paragraph(…)
          .Table(…))
      .Last(…))          // closing page
  .Build()
        │
        ▼
   PagedDocument  (immutable)
        │
        ▼
 DocumentPaginator.Paginate  →  PagePlan
        │
        ▼
 DocumentPdf.Write / ToBytes  →  PDF