Enterprise PDF for C# / .NET

The enterprise PDF library
.NET deserves.

Generate archival PDF/A, sign documents with PAdES, encrypt with AES-256 and produce accessible PDF/UA from idiomatic C#. One memory-safe core, the same behavior as every other binding, running entirely on your servers: no per-document SaaS fees, no data leaving your network, no AGPL strings.

Install from NuGet. The native core ships per-runtime, nothing to compile.
dotnet add package RustPdf
Validated by independent tools: veraPDFpdfsigopenssl cmsqpdfmutool

Why .NET teams pick rust-pdf

.NET runs the back office of banks, insurers and the public sector, exactly where PDF/A archival, qualified signatures, AES-256 and PDF/UA are mandatory. Yet the established options are an AGPL library you can't ship without opening your source, a per-server commercial bill, or a SaaS that uploads your documents.

rust-pdf is one dotnet add package with source-generated P/Invoke, a clean Document / EditableDoc API, and a single offline license that unlocks the corporate features. The native core is Send, so each request renders on its own handle with no GC pauses.

  • Native, not headless Chrome: no browser process, no gigabytes of RAM per worker.
  • Runs on your servers: documents never leave your network and nothing phones home, ideal for LGPD/GDPR, fintech and health.
  • No AGPL trap: a commercial per-application license, never the AGPL of iText or the per-server billing of Aspose.
  • Deterministic output: the same input always produces the same bytes, so you can diff and audit it.
  • Free to build with: everyday PDF generation is free forever; you only license the regulated-grade features.

Free to build with. Licensed when you ship.

Prototype and generate everyday PDFs for free. When you need archival, signatures, encryption or accessibility, one license unlocks them all in .NET and every other binding.

Community free

  • Pages & vector graphics
  • Embedded/subset fonts, Unicode shaping
  • Justified paragraphs & tables
  • Images (JPEG/PNG/alpha/16-bit)
  • Merge / split / rotate
  • Text extraction & optimize

Corporate licensed

  • PDF/A: 1b / 2b / 2a / 3b / 3a archival
  • Digital signatures: PKCS#7, visible & multiple
  • PAdES: B-B / B-LT / B-LTA + RFC 3161 timestamps
  • Encryption: RC4 / AES-128 / AES-256 (R6)
  • Accessibility: Tagged PDF / PDF/UA-1
  • AcroForm: fields with generated appearances

Author a tagged, signed PDF/A in a few lines of C#

// dotnet add package RustPdf
using RustPdf;

using var doc = new Document();
doc.Pdfa(PdfaLevel.A2a).Tagged().SetInfo(title: "Q3 Report");
int f = doc.AddFontFile("Roboto-Regular.ttf");
doc.AddPage();
doc.ShowText(f, 26, 72, 760, "Annual report", headingLevel: 1);
byte[] bytes = doc.ToBytes();          // archival-grade, accessible PDF

// Encrypt with AES-256, or sign with PAdES — same offline license:
using var ed = EditableDoc.Load(bytes);
ed.Encrypt(owner: "owner-secret", method: Encryption.Aes256);
ed.Save("secured.pdf");

The full .NET reference (fonts, images, forms, manipulation, encryption and signatures) lives in the C# / .NET docs.

Start building in .NET

dotnet add package RustPdf and ship your first archival PDF today. Free for everyday generation; license the corporate features when you go to production.