我从https://github.com/naptha/tesseract.js下载了tesseract.js库,示例代码basic.html对我不起作用,我在控制台上收到此错误: 未捕获的TypeError:Tesseract.TesseractWorker不是构造函数
我进行了更改,以修复由于某些原因而出现的“找不到文件”错误:
<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>
代替
<script src="/dist/tesseract.dev.js"></script>
但是我感觉好像缺少依赖项
这是basic.html代码:
<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>
<input type="file" onchange="const worker = new Tesseract.TesseractWorker({ corePath: '../../node_modules/tesseract.js-core/tesseract-core.wasm.js' });worker.recognize(this.files[0]).progress(function(data){console.log(data)}).then(function(data){console.log(data)})">
Uncaught TypeError: Tesseract.TesseractWorker is not a constructor
答案 0 :(得分:0)
当您抛出此错误时,我了解您在html部分中的工作。但是我几乎可以肯定,当您尝试使用以下方式创建构造函数时,此错误是由于使用已贬值的TesseractWorker造成的:
const { TesseractWorker } = require("tesseract.js");
const worker = new TesseractWorker();
TesseractWorker在较新版本的tesseract.js和tesseract.js-core中已弃用,因此您必须改用createWorker()。
const { createWorker } = require("tesseract.js");
const worker = new createWorker({
logger: m => console.log(m),
});
这应该纠正详细说明TesseractWorker不是构造函数的错误,具体取决于您是否拥有tesseract.js的2.0+版本,然后随着TesseractWorker的贬值,您将被迫使用createWorker。
答案 1 :(得分:0)
可以使用,
const createWorker = require("tesseract.js");
而不是
const { TesseractWorker } = require("tesseract.js");
const worker = new TesseractWorker();