UNPKG

pdf-to-img

Version:

📃📸 Converts PDFs to images in nodejs

53 lines (52 loc) • 1.84 kB
/// <reference types="node" resolution-mode="require"/> /// <reference types="node" resolution-mode="require"/> /// <reference types="node" resolution-mode="require"/> import type { DocumentInitParameters, RenderParameters } from "pdfjs-dist/types/src/display/api.js"; export type PdfMetadata = { Title?: string; Author?: string; Producer?: string; Creator?: string; CreationDate?: string; ModDate?: string; }; export type Options = { /** For cases where the PDF is encrypted with a password */ password?: string; /** defaults to `1`. If you want high-resolution images, increase this */ scale?: number; /** render parameters which are passed to `PdfPage#render` */ renderParams?: Omit<RenderParameters, "canvas" | "canvasContext" | "viewport">; /** document init parameters which are passed to pdfjs.getDocument */ docInitParams?: Partial<DocumentInitParameters>; }; /** * Converts a PDF to a series of images. This returns a `Symbol.asyncIterator` * * @param input Either (a) the path to a pdf file, or (b) a data url, or (b) a buffer, (c) a buffer, or (e) a ReadableStream. * * @example * ```js * import pdf from "pdf-to-img"; * * for await (const page of await pdf("example.pdf")) { * expect(page).toMatchImageSnapshot(); * } * * // or if you want access to more details: * * const doc = await pdf("example.pdf"); * expect(doc.length).toBe(1); * expect(doc.metadata).toEqual({ ... }); * * for await (const page of doc) { * expect(page).toMatchImageSnapshot(); * } * ``` */ export declare function pdf(input: string | Uint8Array | Buffer | NodeJS.ReadableStream, options?: Options): Promise<{ length: number; metadata: PdfMetadata; getPage(pageNumber: number): Promise<Buffer>; [Symbol.asyncIterator](): AsyncIterator<Buffer, void, void>; }>;