novolis-documents / README.md
novolis-documents docs
One-column pages to Skia PDF
dotnetpdfdocumentsnovolis
Paged document island for Novolis: immutable model → one-column layout → SkiaSharp PDF.
| Doc | What 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
| Package | Role |
|---|---|
| [`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