PDF generation
without the bloat
Chromium rendering quality. Single binary. No browser process.
Signing, encryption, PDF/A — batteries included.
Cloud API with regional deployments — your data stays in your region.
import { Converter } from 'printwell';
const converter = new Converter();
const pdf = await converter.htmlToPdf('<h1>Hello World</h1>');
// Write to file
await Bun.write('output.pdf', pdf.data); Try it live
Edit HTML and see the PDF output instantly
Everything you need
Professional PDF features without the complexity
Chromium Quality
Same render engine as Chrome. Perfect CSS support, web fonts, and modern layouts.
Single Binary
No browser process to manage. ~50MB binary with everything included.
Digital Signatures
Sign documents with X.509 certificates. LTV signatures and timestamping support.
Encryption
Password protection and permission controls. AES-256 encryption.
PDF/A Compliance
Generate archival-compliant PDFs for long-term preservation and regulatory needs.
PDF/UA Accessibility
Create accessible documents that meet WCAG and PDF/UA standards.
Data sovereignty built in
Your documents stay in your region. No exceptions.
EU Data Residency
Your data never leaves the EU. Processing, storage, and backups stay within European borders. Full GDPR compliance by design.
Global Regions
Deploy in the region closest to your users. EU (Frankfurt), NA (Virginia), and AP (Singapore) available.
Zero Retention
Your HTML goes in, your PDF comes out, everything else is discarded. No logs, no storage. Processing happens entirely in memory.
Want complete control?
Self-host with our open-source core. Same features, your infrastructure.
Built on EU infrastructure from EU-headquartered providers. No US hyperscalers, no Cloud Act exposure. Read our security practices
How we compare
The features you need, without the tradeoffs
| printwell | Puppeteer | wkhtmltopdf | WeasyPrint | |
|---|---|---|---|---|
| Binary size | ~50MB | 300MB+ | ~40MB | Python deps |
| Browser process | No | Yes | No | No |
| Render engine | Chromium | Chromium | QtWebKit | Custom |
| Render quality | Excellent | Excellent | Dated | Good |
| Digital signatures | ||||
| PDF/A | ||||
| PDF/UA | ||||
| Encryption | ||||
| Form fields |
Ready to get started?
Check out the docs or explore the source code on GitHub.