UNPKG

compare-pdf-plus

Version:

Standalone node module that compares PDFs

106 lines (103 loc) 2.84 kB
interface ConfigPaths { actualPdfRootFolder: string; baselinePdfRootFolder: string; actualPngRootFolder: string; baselinePngRootFolder: string; diffPngRootFolder: string; } interface ConfigSettings { imageEngine: "graphicsMagick" | "native"; density: number; quality: number; tolerance: number; threshold: number; cleanPngPaths?: boolean; matchPageCount?: boolean; disableFontFace?: boolean; verbosity?: number; } interface ComparePdfConfig { paths: ConfigPaths; settings: ConfigSettings; } interface Coordinates { x0: number; y0: number; x1: number; y1: number; } interface PageMask { pageIndex: number; coordinates: Coordinates; color?: string; } interface Dimension { width: number; height: number; x: number; y: number; } interface PageCrop { pageIndex: number; coordinates: Dimension; } interface ComparePdfOptions { masks: PageMask[]; crops: PageCrop[]; onlyPageIndexes: number[]; skipPageIndexes: number[]; } interface Details { status: string; numDiffPixels: string; diffPng: string; } interface Results { status: string; message: string; details?: Details[]; } interface CompareResult { status: "not executed" | "failed" | "passed"; message?: string; details?: Array<{ status: string; numDiffPixels?: number; diffPng?: string; actual?: string; error?: Error; }>; } type ComparisonType = "byBase64" | "byImage"; declare class ComparePdf { private config; private opts; private result; private baselinePdfBufferData?; private actualPdfBufferData?; private baselinePdf?; private actualPdf?; constructor(config?: ComparePdfConfig); baselinePdfBuffer(baselinePdfBuffer: Buffer, baselinePdfFilename?: string): this; baselinePdfFile(baselinePdf: string): this; actualPdfBuffer(actualPdfBuffer: Buffer, actualPdfFilename?: string): this; actualPdfFile(actualPdf: string): this; addMask(pageIndex: number, coordinates?: { x0: number; y0: number; x1: number; y1: number; }, color?: string): this; addMasks(masks: ComparePdfOptions["masks"]): this; onlyPageIndexes(pageIndexes: number[]): this; skipPageIndexes(pageIndexes: number[]): this; cropPage(pageIndex: number, coordinates?: { width: number; height: number; x: number; y: number; }): this; cropPages(cropPagesList: ComparePdfOptions["crops"]): this; compare(comparisonType?: ComparisonType): Promise<CompareResult>; } export { ComparePdf, type ComparePdfConfig, type ComparePdfOptions, type CompareResult, type ComparisonType, type Coordinates, type Details, type Dimension, type PageCrop, type PageMask, type Results };