diff --git a/app/lib/pdf/barcodeDecoder.ts b/app/lib/pdf/barcodeDecoder.ts index f74d610..2110bcc 100644 --- a/app/lib/pdf/barcodeDecoder.ts +++ b/app/lib/pdf/barcodeDecoder.ts @@ -309,8 +309,21 @@ const decodeFromCanvas = async (canvas:HTMLCanvasElement): Promise => { - return(await decodeFromCanvas( await image2canvas(imageBase64) )); +export const decodeFromImage = async (imageBase64:string): Promise => { + const canvas = await image2canvas(imageBase64); + + const hints = new Map(); + hints.set(DecodeHintType.POSSIBLE_FORMATS, [ BarcodeFormat.PDF_417 ]); + hints.set(DecodeHintType.PURE_BARCODE, false); + + const codeReader = new BrowserPDF417Reader(hints); + const result = await codeReader.decodeFromCanvas(canvas); + const hub3aText = result.getText(); + + return({ + hub3aText, + billInfo: parseHubText(hub3aText) + }); } /** Finds PDF417 code within a file and decodes it */ diff --git a/app/ui/BillEditForm.tsx b/app/ui/BillEditForm.tsx index b51a138..2c06236 100644 --- a/app/ui/BillEditForm.tsx +++ b/app/ui/BillEditForm.tsx @@ -53,10 +53,10 @@ export const BillEditForm: FC = ({ location, bill }) => { // by converting it to `hub3aText` if (!hub3aText && bill?.barcodeImage) { decodeFromImage(bill.barcodeImage).then(results => { - if (results && results.length > 0) { + if (results) { const { hub3aText: decodedHub3aText, - } = results[0]; + } = results; setHub3aText(decodedHub3aText); }