JSPM

ejs-html-to-pdf-lite

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q38830F
  • License MIT

Convert HTML or EJS to PDF using Playwright-core with full CSS and design support.

Package Exports

  • ejs-html-to-pdf-lite
  • ejs-html-to-pdf-lite/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ejs-html-to-pdf-lite) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ejs-html-to-pdf-lite

A fast, lightweight, and production-ready alternative to html-pdf and puppeteer for converting HTML or EJS templates into high-quality PDFs using playwright-core, with full design and CSS support.


โœ… Why Use ejs-html-to-pdf-lite?

  • ๐Ÿ”ฅ Minimal dependencies โ€“ only playwright-core + ejs
  • ๐ŸŽจ Full CSS support โ€“ Flexbox, Grid, custom fonts, inline styles
  • ๐Ÿ–ผ๏ธ Base64 image support โ€“ embed images directly in templates
  • ๐Ÿ“„ Supports both .ejs and .html โ€“ dynamic or static usage
  • ๐Ÿงพ Great for invoices, reports, and other document PDFs
  • ๐Ÿ“ฆ Tiny install size โ€“ no bundled browser
  • ๐Ÿ› ๏ธ Supports standard & custom paper sizes
  • โš™๏ธ Headless and production-safe

โœ… Features

  • Converts full HTML and EJS templates into PDF
  • Supports modern CSS (Flexbox, Grid, Google Fonts, etc.)
  • Inline <style> and internal CSS fully supported
  • Base64-encoded images for self-contained PDFs
  • Fully styled PDF output
  • Support for standard and custom paper sizes

๐Ÿ“Œ Use Cases

  • Server-side PDF generation (e.g., invoices, receipts)
  • Email-ready PDFs (attachments, download links)
  • Exporting filled forms using EJS templates
  • Printable reports or dashboards in backend apps

๐Ÿ“ฆ Install

npm install ejs-html-to-pdf-lite
npx playwright install chromium

๐Ÿ“„ Usage

const { generatePdf } = require('ejs-html-to-pdf-lite');

// Basic usage with default A4 size
await generatePdf({
  inputPath: './templates/example.ejs',
  outputPath: './output.pdf',
  data: { 
    name: 'John Doe',
    items: [
      { name: 'Product 1', quantity: 2, price: 10.99 },
      { name: 'Product 2', quantity: 1, price: 24.99 }
    ]
  },
  type: 'ejs' // or 'html'
});

// With custom paper size
await generatePdf({
  inputPath: './templates/example.ejs',
  outputPath: './output-letter.pdf',
  data: { 
    name: 'John Doe',
    items: [
      { name: 'Product 1', quantity: 2, price: 10.99 },
      { name: 'Product 2', quantity: 1, price: 24.99 }
    ]
  },
  type: 'ejs',
  paperSize: 'Letter' // Use standard paper size
});

// With custom dimensions
await generatePdf({
  inputPath: './templates/example.ejs',
  outputPath: './output-custom.pdf',
  data: { 
    name: 'John Doe',
    items: [
      { name: 'Product 1', quantity: 2, price: 10.99 },
      { name: 'Product 2', quantity: 1, price: 24.99 }
    ]
  },
  type: 'ejs',
  paperSize: { width: '8.5in', height: '11in' } // Custom dimensions
});

๐Ÿ“ Supported Paper Sizes

  • Standard sizes: A0, A1, A2, A3, A4 (default), A5, A6, Letter, Legal, Tabloid, Ledger
  • Custom dimensions: provide an object with width and height properties (e.g., { width: '8.5in', height: '11in' })

๐Ÿ›  Requirements

  • Node.js 14+
  • Chromium (install with npx playwright install chromium)