Enterprise PDF for Node.js & TypeScript
The enterprise PDF library
Node doesn't have.
Generate archival PDF/A, sign documents with PAdES, encrypt with AES-256 and produce accessible PDF/UA from Node.js or TypeScript. 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 npm. Prebuilt native binaries per platform, no node-gyp.npm install rustpdfWhy Node teams pick rust-pdf
The usual way to make a "real" PDF from Node is to render HTML in headless Chrome with Puppeteer. It works until production: gigabytes of RAM per worker, cold starts, and still no PDF/A, no qualified signatures, no PDF/UA. The alternative is a per-document SaaS that uploads your customers' documents.
rust-pdf is one npm install with prebuilt native binaries
(no node-gyp), TypeScript types included, and a single offline license
that unlocks the corporate features. Replace a fleet of heavy
HTML→PDF servers with a 22 MB native core.
- No headless Chrome: drop Puppeteer and the gigabytes of RAM it needs 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.
- Typed & deterministic: ships
index.d.ts, and the same input always produces the same bytes. - 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 Node 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 PDF/A and encrypt it in a few lines of Node
// npm install rustpdf
const { Document, EditableDoc, Encryption, PdfaLevel } = require("rustpdf");
const doc = new Document();
doc.pdfa(PdfaLevel.A2b).setInfo({ title: "Q3 Report" });
const f = doc.addFontFile("Roboto-Regular.ttf");
doc.addPage();
doc.showText(f, 26, 72, 760, "Invoice #1024");
const bytes = doc.toBytes(); // archival-grade PDF
// Encrypt with AES-256 — same offline license unlocks every feature:
const ed = EditableDoc.load(bytes);
ed.encrypt({ owner: "owner-secret", method: Encryption.AES256 });
ed.save("secured.pdf");
The full Node / TypeScript reference (fonts, images, forms, manipulation, encryption and signatures) lives in the Node docs.
Start building in Node.js
npm install rustpdf and ship your first archival PDF today.
Free for everyday generation; license the corporate features when you go to
production.