UNPKG

@cityssm/bill-data-extract

Version:

Extracts data from scanned bill documents into usable details.

53 lines (41 loc) 1.16 kB
import type { RecognizeResult as TesseractRecognizeResult } from 'tesseract.js' export type DataExtractOptions<T> = Record<keyof T, DataField> export interface DataField { /** The first page number is 1. */ pageNumber?: number /** Default {0, 0} */ topLeftCoordinate?: DataFieldCoordinate /** Default {100, 100} */ bottomRightCoordinate?: DataFieldCoordinate processingFunction?: ( tesseractResult: TesseractRecognizeResult ) => unknown | undefined } export interface DataFieldCoordinate { /** * Between 0 and 100 */ xPercentage: number /** * Between 0 and 100 */ yPercentage: number } export interface BillData extends Record<string, unknown> { accountNumber: string serviceAddress: string totalAmountDue: number | undefined dueDate: string } export interface GasBillData extends BillData { gasUsage: number gasUsageUnit: 'm3' } export interface ElectricityBillData extends BillData { electricityUsage: number electricityUsageUnit: 'kWh' } export interface WaterBillData extends BillData { waterUsage: number waterUsageUnit: 'm3' }