UNPKG

pdfdataextract

Version:

Extract data from a pdf with pure javascript

153 lines (152 loc) 3.57 kB
import { VerbosityLevel, Permissions, Outline, Info, Metadata } from './types'; export type PdfDataGetOptions = { /** * get number of pages, by default it is true * * @type {boolean|undefined} */ pages?: boolean; /** * get text of each page, by default it is true * * @type {boolean|undefined} */ text?: boolean; /** * get fingerprint, by default it is true * * @type {boolean|undefined} */ fingerprint?: boolean; /** * get outline, by default it is true * * @type {boolean|undefined} */ outline?: boolean; /** * get metadata, by default it is true * * @type {boolean|undefined} */ metadata?: boolean; /** * get info, by default it is true * * @type {boolean|undefined} */ info?: boolean; /** * get permissions, by default it is true * * @type {boolean|undefined} */ permissions?: boolean; }; export type PdfDataOptions = { /** * password for a password-protected PDF * * @type {string|undefined} */ password?: string; /** * the number of pages to be read, all pages are read by default * * @deprecated use pages instead * * @type {number|undefined} */ max?: number; /** * sort the text by text coordinates * * @type {boolean|undefined} */ sort?: boolean; /** * the logging level * * @type {VerbosityLevel|undefined} */ verbosity?: VerbosityLevel; /** * can either be the number of pages to be read, * a number array with the exact pages (sorted by page number) * or a filter function (return true to parse the page) * all pages are read by default * not used if get.pages is false * * @type {number|number[]|((pageNumber: number) => boolean|undefined)} */ pages?: number | number[] | ((pageNumber: number) => boolean); /** * options to enable or disable parsing methods * * @type {PdfDataGetOptions|undefined} */ get?: PdfDataGetOptions; }; /** * the data of the pdf */ export declare class PdfData { /** * the number of pages * * @readonly * @type {number|undefined} */ readonly pages?: number; /** * extracted text per page * * @readonly * @type {string[]|undefined} */ readonly text?: readonly string[]; /** * the fingerprint * * @readonly * @type {string|undefined} */ readonly fingerprint?: string; /** * the outline/bookmarks * * @readonly * @type {Outline[]|undefined} */ readonly outline?: readonly Outline[]; /** * the informations/description * * @readonly * @type {Info|undefined} */ readonly info?: Info; /** * the metadata * * @readonly * @type {Metadata|undefined} */ readonly metadata?: Metadata; /** * the permission flags * * @readonly * @type {Permissions | undefined} */ readonly permissions?: Permissions; private constructor(); /** * get the data * * @param {Uint8Array} data - the binary data file * @param {PdfDataOptions} [options={}] - the options on how the data should be extracted * @returns {Promise<PdfData>} a promise that is resolved with a {PdfData} object with the extracted data */ static extract(data: Uint8Array, options?: PdfDataOptions): Promise<PdfData>; }