UNPKG

afpp

Version:

another f*cking pdf parser

39 lines (38 loc) 1.64 kB
export declare enum PROCESSING_TYPE { IMAGE = "IMAGE", MIXED = "MIXED", TEXT = "TEXT" } import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas'; export interface AfppParseOptions { /** * Concurrency level for page processing. */ concurrency?: number; /** * Image encoding format when rendering non-text pages. Defaults to 'png'. */ imageEncoding?: ImageEncoding; /** * Password for encrypted pdf files. */ password?: string; /** * Scale of a page if content is not text. */ scale?: number; } export interface CanvasAndContext { canvas: Canvas; context: CanvasRenderingContext2D; } export type ImageEncoding = 'avif' | 'jpeg' | 'png' | 'webp'; export type PageProcessor<T> = (content: Buffer | string, pageNumber: number, pageCount: number) => Promise<T> | T; export interface PdfCanvasFactory { create(width: number, height: number): CanvasAndContext; destroy(canvasAndContext: CanvasAndContext): void; reset(canvasAndContext: CanvasAndContext, width: number, height: number): void; } export declare function parsePdfFile(type: PROCESSING_TYPE.IMAGE, input: Buffer | string | Uint8Array | URL, options?: AfppParseOptions, callback?: undefined): Promise<Buffer[]>; export declare function parsePdfFile(type: PROCESSING_TYPE.TEXT, input: Buffer | string | Uint8Array | URL, options?: AfppParseOptions, callback?: undefined): Promise<string[]>; export declare function parsePdfFile<T>(type: PROCESSING_TYPE.MIXED, input: Buffer | string | Uint8Array | URL, options: AfppParseOptions, callback: PageProcessor<T>): Promise<T[]>;