Why Majorsilence.Pdf?
There is no shortage of PDF libraries for .NET. Here is a clear-eyed look at where Majorsilence.Pdf fits, where it excels, and when you should reach for something else instead.
Library comparison
The table below covers the most commonly reached-for .NET PDF libraries. All information is based on publicly available documentation as of mid-2026.
| Library | License | Dependencies | Package size | API model | .NET support |
|---|---|---|---|---|---|
| Majorsilence.Pdf | MIT / Apache / BSD | Zero | ~75 KB | Canvas / fluent | NS2.0, .NET 8 & 10 |
| iText 7 | AGPL or commercial | Several NuGet refs | ~6 MB | Document/element tree | .NET Standard 2.0+ |
| QuestPDF | Community / commercial | SkiaSharp (native) | ~10 MB (incl. native) | Fluent layout engine | .NET 6+ |
| PdfSharp | MIT | None (for core) | ~400 KB | GDI-style drawing | .NET 6+ (v0.1.x NS2.0) |
| Syncfusion PDF | Commercial / community | Syncfusion suite | ~4 MB | Document/element tree | .NET Standard 2.0+ |
| Puppeteer / wkhtmltopdf | MIT (Puppeteer) | Native binary required | 50–150 MB (browser) | HTML → PDF render | Any (via CLI/bridge) |
The "Community" tier of QuestPDF is free for organisations with annual revenue under $1 M USD; above that, a paid license is required. iText 7 requires a commercial license for closed-source software. Syncfusion has a free community licence for individual developers and small teams.
When to choose Majorsilence.Pdf
- Zero runtime dependencies is a hard requirement — containers, AWS Lambda, AOT compilation, or strict security audits
- You need MIT, Apache-2.0, or BSD-3-Clause licensing with no AGPL complications
- You want a small, auditable codebase with no native binaries to manage
- Your mental model is canvas-coordinate drawing — place text at (x, y), draw lines, embed images
- You're building invoices, reports, certificates, receipts, or data exports where you control the layout
- Trim-friendliness or AOT compilation matters (serverless cold starts, embedded .NET)
- You want to ship to Windows, Linux, and macOS without worrying about native font rendering libraries
- You need to read, edit, or merge complex existing PDFs with annotations, AcroForms, or XFA
- PDF/A or PDF/UA compliance certification is required by a regulatory body
- You prefer a flow-based layout model (paragraphs that wrap automatically, tables that paginate) over explicit coordinates
- You need production-grade Arabic shaping or complex BiDi text rendering
- Your content already lives in HTML/CSS templates and pixel-perfect browser rendering is essential
- You need advanced timestamped digital signatures (PKCS#12 with TSA) or long-term validation (PAdES LTV)
When to reach for something else
These are honest recommendations. Pick the right tool for your constraints.
Design philosophy
Most PDF libraries grew up when .NET meant Windows, NuGet was young, and "zero dependencies" was not a design goal. They accumulated features, native code, and license complexity over time.
Majorsilence.Pdf starts from different constraints:
Make the boring simple.
Generating a PDF — an invoice, a certificate, a data export — should take a handful of lines, not a page of boilerplate. The library surface is intentionally small: a document, pages, a canvas. You place things. You save. Done.
Zero should mean zero.
Not "zero at runtime if you install the platform pack" or "zero unless you use fonts." One dotnet add package and nothing else. No transitive tree to audit, no native binaries to include in your container image, no AGPL risk to review with legal.
Pure managed code.
The whole library is IL. It trims cleanly, compiles ahead-of-time, and runs the same on Windows, Linux, macOS, ARM, and x64 — without conditional native asset selection or runtime feature detection.