JSPM

  • Created
  • Published
  • Downloads 234
  • Score
    100M100P100Q77457F
  • License MIT

Converting PDFs to images (📃 to 📸)

Package Exports

  • @iqx-limited/quick-pdf
  • @iqx-limited/quick-pdf/dist/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 (@iqx-limited/quick-pdf) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

QuickPDF

Handling PDFs in NodeJS (📃 to 🖼️)

This project provides a set of utilities for converting various file formats without the need for additional dependencies. It supports multiple file types and leverages technologies like Puppeteer and PDFKit for file processing.

Features

  • HTML to PDF: Converts HTML content (from a URL or file path) into a PDF.
  • Image to PDF: Converts images (JPEG, PNG) into a PDF, with optional headers and footers.
  • PDF to Image: Converts PDF files to image formats (JPEG or PNG) using pdfjs-dist and canvas.
  • Utilities: Includes helper functions to fetch and read HTML files and read files from local directories.

Requirements

  • Node.js: This project is built with Node.js and uses ES modules. NodeJS > v22 required.
  • Chromium is a dependency of this project, used via Playwright. To install browsers via cli run npx playwright install --with-deps chromium. If running in a ci enviroment you can include --only-shell

Operations Available in the Package

1. html2pdf

Function Signature:

html2pdf(input: string | URL)

Validation occurs on the html string passed. The Error Object returned is:

  {
    valid: boolean,
    count: {
      errors: number,
      warnings: number
    },
    validation: [ {
      file: string,
      count: {
        errors: number,
        warnings: number
      },
      messages: [ {
        message: string,
        line: number,
        column: number,
        ruleId: string
      } ]
    } ]
  }

Parameters:

Parameter Type Description Data that can be passed
input string | URL The HTML content to convert to PDF. A file path or a URL pointing to HTML content, as either a Node URL object or a Node string. Alternativly pass an html string directly.
options Options Optional configuration for the PDF conversion. An object with optional to configure PDF

Options Type:

Property Type Description Default
base64 boolean PDF should be returned as a base64 encoded string. false
rules object Optional custom validation rules for HTML content - see https://html-validate.org/rules/ for more details. Default is all standard rules enabled. ''
scale number Scale of the PDF 1

2. img2pdf

Function Signature:

img2pdf(input: Buffer | string | URL, options: Options = {})

Parameters:

Parameter Type Description Data that can be passed
input Buffer | string | URL The image content to convert to PDF. A Buffer, file path, or URL pointing to an image. String or URL object can be passed for an HTTP or Local Path.
options Options Optional configuration for the PDF conversion. An object with optional configurations.

Options Type:

Property Type Description Default
header string Optional header text to include in the PDF. undefined
footer string Optional footer text to include in the PDF. undefined
fontSize number Font Size of the header or footer 10

3. pdf2img

Function Signature:

pdf2img(input: Buffer | string | URL, options: Options = {})

Parameters:

Parameter Type Description Data that can be passed
input Buffer | string | URL The PDF content to convert to images. A Buffer, file path, or URL pointing to a PDF. String or URL object can be passed for an HTTP or Local Path.
options Options Optional configuration for the image conversion. An object with optional scale, password, and buffer configuration

Options Type:

Property Type Description
quality number Quality for rendering the PDF pages, not applicable for PNG. Default is 100.
password string Optional password for decrypting password-protected PDFs.
type string The mime type to output - "png"