afpp
Version:
another f*cking pdf parser
39 lines (38 loc) • 1.64 kB
TypeScript
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[]>;