1.0.0 ⢠Published 1 year ago
@willem_orvets/pdf-to-img v1.0.0
pdf-to-img
ššø Converts PDFs to images in nodejs.
Useful for unit tests of PDFs
Supports nodejs v16.17+, and comes with a CLI.
Install
npm install -S pdf-to-imgExample
NodeJS:
const { promises: fs } = require("node:fs");
const { pdf } = require("pdf-to-img");
async function main() {
  let counter = 1;
  const document = await pdf("example.pdf", { scale: 3 });
  for await (const image of document) {
    await fs.writeFile(`page${counter}.png`, image);
    counter++;
  }
}
main();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
});CLI
npm i -g pdf-to-img@latest
# example:
pdf2img inputFile.pdf
# options:
# -s / --scale: set the scale (defaults to 3)
# -p / --password: the password to unlock the PDF
# -o / --output: the output folder, relative to the current working directory.1.0.0
1 year ago