UNPKG

pdfdataextract

Version:

Extract data from a pdf with pure javascript

39 lines 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TesseractJsOcr = void 0; //@ts-ignore: ignore import errors because its dynamicly loaded from pdfdataextractor const tesseract_js_1 = require("tesseract.js"); /** * implementation for tesseractjs */ class TesseractJsOcr { /** * recognize characters of buffers * * @param {Buffer[]} buffers - the image buffers * @param {OCRLang[]} langs - the language traineddata used for recognition * @returns {Promise<string[]>} an array with text from each side */ async ocrBuffers(buffers, langs) { if (buffers.length == 0) return []; if (buffers.length == 1) { const lang = langs.join('+'); const worker = await (0, tesseract_js_1.createWorker)(lang); const data = await worker.recognize(buffers[0]); await worker.terminate(); return [data.data.text]; } const lang = langs.join('+'); const scheduler = (0, tesseract_js_1.createScheduler)(); for (let i = 0; i < buffers.length; i++) { const worker = await (0, tesseract_js_1.createWorker)(lang); scheduler.addWorker(worker); } const result = await Promise.all(buffers.map(async (buffer) => scheduler.addJob('recognize', buffer))); await scheduler.terminate(); return result.map((r) => r.data.text); } } exports.TesseractJsOcr = TesseractJsOcr; //# sourceMappingURL=tesseractjsocr.js.map