pdf-to-img

📃📸 Converts PDFs to images in nodejs with no native dependencies

Usage no npm install needed!

<script type="module">
  import pdfToImg from 'https://cdn.skypack.dev/pdf-to-img';
</script>

README

pdf-to-img

Build Status Coverage Status npm version npm npm bundle size

📃📸 Converts PDFs to images in nodejs with no native dependencies.

Useful for unit tests of PDFs

Supports nodejs v10, v12, v14, and v16.

Install

npm install -S pdf-to-img

Example

Using jest and jest-image-snapshot.

const { pdf } = require("pdf-to-img");

it("generates a PDF", async () => {
  for await (const page of await pdf("example.pdf")) {
    expect(page).toMatchImageSnapshot();
  }
});

// or if you want access to more details:

it("generates a PDF with 2 pages", async () => {
  const doc = await pdf("example.pdf");

  expect(doc.length).toBe(2);
  expect(doc.metadata).toEqual({ ... });

  for await (const page of doc) {
    expect(page).toMatchImageSnapshot();
  }
});

The pdf function accepts either a path to the file on disk, or a data URL (e.g. data:application/pdf;base64,...)

Options

You can supply a second argument which is an object of options:

const doc = await pdf("example.pdf", {
  password: "...", // if the PDF is encrypted

  scale: 2.0, // use this for PDFs with high resolution images if the generated image is low quality
});