Enterprise PDF for Ruby

The enterprise PDF library
Ruby doesn't have.

Generate archival PDF/A, sign documents with PAdES, encrypt with AES-256 and produce accessible PDF/UA from idiomatic Ruby. 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 RubyGems. Platform gems bundle the native core, nothing to compile.
gem install rustpdf
Validated by independent tools: veraPDFpdfsigopenssl cmsqpdfmutool

Why Ruby teams pick rust-pdf

Rails apps generate invoices, statements and contracts every day, but the usual toolkit stops short of compliance. Prawn draws beautifully yet has no PDF/A, no qualified signatures and no PDF/UA, so teams fall back to wkhtmltopdf or headless Chrome, or pay a per-document SaaS that uploads their documents.

rust-pdf is a gem with the native core bundled in a platform-specific build, loaded through Ruby's Fiddle (no native build step), with a single offline license that unlocks the corporate features.

  • Standards-grade, not just pretty: real PDF/A, PAdES and PDF/UA on top of clean drawing.
  • 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 Ruby 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 PDF/A in a few lines of Ruby

# gem install rustpdf
doc = RustPdf::Document.new
doc.pdfa(RustPdf::Pdfa::A2A).tagged.info(title: "Q3 Report")
f = doc.add_font_file("Roboto-Regular.ttf")
doc.add_page
   .show_text(f, 26, 72, 760, "Annual report", heading_level: 1)
data = doc.to_bytes               # archival-grade, accessible PDF

The full Ruby reference (fonts, images, forms, manipulation, encryption and signatures) lives in the Ruby docs.

Start building in Ruby

gem install rustpdf and ship your first archival PDF today. Free for everyday generation; license the corporate features when you go to production.