Rivoli PDF / PDF generation in Docker .NET
PDF generation in Docker, on the smallest .NET image you have
If your PDF library needs an apt-get layer, it owns your Dockerfile. Rivoli PDF is pure managed code: it runs on mcr.microsoft.com/dotnet/runtime-deps, Alpine included, with no font package hunts and no native library version pinning.
Install and generate
No system libraries, no headless browser, no per-platform setup. Rivoli.Pdf 0.1.0 targets .NET 8 and .NET 10.
using Rivoli.Pdf;
using Rivoli.Pdf.Builders;
var doc = Document.Create("Quarterly Report", "Acme Corp");
doc.AddSection()
.H1("Quarterly Report")
.AddParagraph("Revenue grew 18% over the prior quarter.")
.AddTable(t => t
.Header("Quarter", "Revenue")
.Row("Q1", "$1.2M")
.Row("Q2", "$1.5M"));
doc.SavePdf("report.pdf"); The same code produces byte-identical output in the container and on your laptop, because there is no system dependency to differ. Fonts embed from managed font handling, so Linux font configuration issues disappear.
The output
Real output from the runnable samples in the Rivoli PDF repository.
How we compare
What each library adds to your image.
| Capability | Rivoli PDF | IronPDF | QuestPDF |
|---|---|---|---|
| Free for small companies | |||
| Entry price (per developer) | $299 | $999 | ~$999/yr |
| Royalty-free redistribution included | Add-on | ||
| Fully managed (no native deps) | |||
| Deterministic output | |||
| PDF/A-first | |||
| JSON document model + change tracking | |||
| Round-trip fidelity harness | |||
| Cross-language roadmap | 5 planned | Multi |
Competitor prices are researched approximations (June 2026); several vendors are now quote-gated, so some figures are historical or third-party. Rivoli PDF is pre-1.0: document creation is feature-complete, while full parsing of arbitrary PDFs and rasterized rendering are partial and on the near-term roadmap.
Pricing
Free for individuals and for organisations under US$1M in annual gross revenue. One perpetual per-developer license for everyone else.
Full library, no watermark, no page limits. For individuals and organisations under US$1M in annual gross revenue.
Buy once, use forever. Royalty-free redistribution included, and the early-access rate locks in for life.
Full details on the product page and in the license terms.
Shrinking your PDF container
Moving PDF generation into a minimal container is mostly about what you get to remove.
- 01 Remove the native-dependency layers from your Dockerfile: Ghostscript, Chromium, SkiaSharp prerequisites, and font packages.
- 02 Base the image on dotnet/runtime-deps or your existing minimal base; Rivoli PDF adds only managed assemblies.
- 03 Run your PDF snapshot tests inside the container once: deterministic output means the container and CI hashes should match exactly.
- 04 Keep an eye on image size in CI; teams routinely drop hundreds of megabytes when the browser leaves.
- 05 Before migrating reading-heavy workflows (filling existing forms, rendering pages to images), check current support in the docs gallery: Rivoli PDF is pre-1.0 and strongest at authoring.
The full migration guide, with concept mappings and before/after code, lives in the documentation.
Start free. Pay only when you're big.
Install the package today. When your company crosses the US$1M line, the Founder rate locks in for life.