tinypdf is a minimal, zero-dependency PDF generation library that focuses on the core “put content on a page” use case while intentionally skipping heavyweight features. It is designed to be extremely small and approachable, making it a good fit when you want to generate real PDFs in Node/TypeScript without pulling in a large toolkit. The library supports essential primitives like writing text, drawing basic shapes, and placing JPEG images, which covers common needs such as invoices, receipts, tickets, and simple reports. It also supports clickable links so generated documents can include interactive URLs, and it can create multi-page documents with custom page sizes. A notable convenience is built-in markdown-to-PDF conversion for common structures like headers and lists, letting you go from formatted text to a PDF layout quickly.
Features
- Zero-dependency PDF generation with a very small footprint
- Text rendering with sizing, alignment, and color control
- Basic drawing primitives for rectangles and lines
- JPEG image embedding for photos, logos, and signatures
- Clickable links with optional underline styling
- Multi-page documents with custom page sizes and markdown conversion