3.0.1 ⢠Published 7 months ago
@nova-slides/pdf-to-img v3.0.1
This version is based on pdf-to-img v3 and adds the following options
maxWidthMaximum width of the output imagemaxHeightMaximum height of the output imagemaintainAspectRatioIf true, maintain aspect ratio when maxWidth or maxHeight are specified. Defaults to true.
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.3.0.1
7 months ago