pdfdataextract
Version:
Extract data from a pdf with pure javascript
39 lines • 1.53 kB
JavaScript
;
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