具有Vue和vue-cli-plugin-electron-builder的电子应用程序无法与Tesseract.js一起使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有Vue和vue-cli-plugin-electron-builder的电子应用程序无法与Tesseract.js一起使用相关的知识,希望对你有一定的参考价值。
我已经用vue-service-cli创建了一个项目。在尝试使用tesseract OCR之后,我无法在本地和远程加载lang.traineddata。我已经尝试了tesseract.js存储库中的示例(他们的工作)和其他许多方法,但是没有结果。当我尝试加载它们时,我看到标准错误:
Error opening data file ./eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
AdaptedTemplates != nullptr:Error:Assert failed:in file /src/src/classify/adaptmatch.cpp, line 196
trap!
[我怀疑这是.asar存档格式的问题(来自vue-cli-plugin-electron-builder),位于/node_modules/electron/dist/resources/electron.asar中。我可以从./public加载文件,但是我已经读过语言文件必须位于进程目录中-我不知道这是不是真的。某些配置无法一起使用。
我的代码
const data = await Tesseract.recognize(
"https://tesseract.projectnaptha.com/img/eng_bw.png",
"eng",
logger: console.log,
corePath: window.location.origin + "/tesseract/tesseract-core.wasm.js",
workerPath: window.location.origin + "/tesseract/worker.min.js",
langPath: window.location.origin + "/tesseract/tessdata"
//or
langPath: path.join(__dirname, "tessdata")
我的依赖项
"dependencies":
"core-js": "^3.4.4",
"electron": "5.0.0",
"semantic-ui-css": "^2.4.1",
"tesseract.js": "2.0.2",
"vue": "^2.6.10",
"vue-class-component": "^7.0.2",
"vue-property-decorator": "^8.3.0",
"vue-router": "^3.1.3",
"vuex": "^3.1.2"
,
"devDependencies":
"@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-router": "^4.1.0",
"@vue/cli-plugin-typescript": "^4.1.0",
"@vue/cli-plugin-vuex": "^4.1.0",
"@vue/cli-service": "^4.1.0",
"@vue/eslint-config-prettier": "^5.0.0",
"@vue/eslint-config-typescript": "^4.0.0",
"eslint": "^5.16.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-vue": "^5.0.0",
"node-sass": "^4.12.0",
"prettier": "^1.19.1",
"pug": "^2.0.4",
"pug-plain-loader": "^1.0.0",
"sass-loader": "^8.0.0",
"typescript": "~3.5.3",
"vue-cli-plugin-electron-builder": "^1.4.4",
"vue-template-compiler": "^2.6.10"
编辑:我注意到https://github.com/auth0-blog/electron-vue项目与Tesseract.js正常工作。该项目使用Vue,但没有vue-vli-service,这意味着它没有vue-cli-plugin-electron-builder来证实上述论点。我仍在寻找使用vue-cli的解决方案
感谢模块所有者,我找到了解决方案。github issue
以上是关于具有Vue和vue-cli-plugin-electron-builder的电子应用程序无法与Tesseract.js一起使用的主要内容,如果未能解决你的问题,请参考以下文章
具有组合前端/后端功能(Vue 和 Express)的插件架构
Vue:在同一个模板中多次使用相同的组件,具有相同的道具和事件处理程序
具有 vue-class-components 和 typescript 的 vuejs 实例属性时出错
ListView 不在 ScrollView 和 StackLayout 内呈现,在 ios 中具有水平方向 - nativescript-vue