Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

pdftoimg-js

iqbal-rashed4.3kMIT0.2.3TypeScript support: included

A javascript library that help to convert pdf to img in both platform nodejs and browser

pdftoimg-js, pdftoimg, pdf2img, pdf to image, pdf converter, pdf to png, pdf to jpg, pdf to image nodejs, pdf to image browser, pdfjs, javascript pdf converter, nodejs pdf to image, browser pdf to image, typescript pdf library

readme

Version 2 Has Arrived! 🎉
This release is still in beta, so we welcome your feedback and feature requests.
If you encounter any bugs, please report them by opening an issue on our GitHub repository.

PDFtoIMG-JS

PDFtoIMG-JS is a powerful JavaScript library for converting PDF file/files into images (PNG or JPG). It supports both Node.js and browser environments, making it ideal for a wide range of use cases — including integration with popular frameworks such as React, Next.js, Vue, and more.

✨ Features

  • 📚 Supports single and multiple PDFs.
  • 🎯 Choose specific pages (all, firstPage, lastPage, page numbers, or ranges like 1..3).
  • 🎨 Output images as PNG or JPG formats.
  • 🔥 Compatible with React, Next.js, Vue, etc.
  • 🛠 Fine control over scale and output options.
  • 💻 Browser runtime automatically uses HTML5 Canvas rendering.
  • 🧹 CLI ready for quick batch processing in Node.js.

📦 Installation

npm install pdftoimg-js

🛠 Basic Usage

🚀 Example (Node.js Script)

import { pdfToImg } from "pdftoimg-js";

const images = await pdfToImg("example.pdf", {
  pages: "firstPage",
  imgType: "jpg",
  scale: 2,
  background: "white",
});

console.log(images); // => Base64 encoded JPG image

📝 Example (Browser)

import { pdfToImg } from "pdftoimg-js/browser";

const fileInput = document.getElementById("pdfInput");

fileInput.addEventListener("change", async (e) => {
  const file = e.target.files[0];
  const images = await pdfToImg(URL.createObjectURL(file));

  images.forEach((imgSrc) => {
    const img = document.createElement("img");
    img.src = imgSrc;
    document.body.appendChild(img);
  });
});

📖 API Reference

pdfToImg(src, options?)

Convert PDF(s) to images.

Parameter Type Description
src string, URL, Uint8Array, or Array of Each PDF file(s) input source.
options Partial<Options> (Optional) Conversion settings.

Returns:

  • If pages is a single page (firstPage, lastPage, or a number) ➔ Single image.
  • Otherwise ➔ Array of images.

Options (Options Interface)

interface Options {
  imgType?: "png" | "jpg"; // Default: "png"
  scale?: number; // Default: 1.5
  background?: string | CanvasGradient | CanvasPattern; // Default: "rgb(255,255,255)"
  intent?: "display" | "print" | "any"; // Default: "display"
  pages?: PagesType; // "all" | "firstPage" | "lastPage" | number | number[] | { startPage, endPage }
  documentOptions?: DocumentInitParameters; // (Optional) More PDF.js config.
}

🖽 Browser Support

  • Auto-detects browser environment.
  • Uses Canvas API for rendering pages.
  • Sets worker dynamically from CDN:
    pdfjsLib.GlobalWorkerOptions.workerSrc =
      "//cdnjs.cloudflare.com/ajax/libs/pdf.js/4.8.69/pdf.worker.min.mjs";
  • Returns base64 DataURL for each page.

👡 CLI Usage (Node.js Only)

Command-line support to batch convert PDFs easily!

pdftoimg -i <input> [-o <output>] [-t <imgType>] [-s <scale>] [-p <pages>] [-n <template>] [-ps <password>] [-b <background>] [-in <intent>]

CLI Options

Option Type Description
-i, --input string (Required) Input PDF path.
-o, --out string Output directory (default: current directory).
-t, --imgType string png or jpg (default: png).
-s, --scale number Scale factor (default: 1.5).
-b, --background string Background color (e.g., 'white', 'rgba(255,255,255,0.5)', '#ffffff').
-in, --intent string Rendering intent: 'display', 'print', or 'any' (default: 'display').
-p, --pages string "all", "firstPage", "lastPage", page numbers, or ranges like 1..3.
-n, --name string Filename template {i}, {p}, {ext}, {f} available.
-ps, --password string Password for the PDF file if encrypted.

⚡ Example CLI Commands

Convert first page to PNG:

pdftoimg -i ./example.pdf -p firstPage

Convert pages 1 to 3 to JPG:

pdftoimg -i ./example.pdf -t jpg -p 1..3

Save in a custom folder:

pdftoimg -i ./example.pdf -o ./output

Convert with custom background and print intent:

pdftoimg -i ./example.pdf -b "white" -in print

Convert with transparent background:

pdftoimg -i ./example.pdf -b "rgba(255,255,255,0)"

Contribution

Contributions are welcome! Feel free to check out the Contributing Guide before making a pull request.