在VS 2013中使用带有JS / jQuery的Microsoft OCR库
我目前正在使用Windows 8.1应用程序,我正在使用networking语言,主要是jQuery(cordovatypes的项目),因为它可能会在其他平台上使用。 我需要使用Microsoft OCR Library(不是Tesseract或其他的,我知道它们,但现在我真的需要使用这个)来分析图像,并在我的应用程序中使用提取的文本。
我从MSDN下载了JavaScript示例应用程序,然后启动它:它正在全面工作(当然,在VS 2013中安装OCR插件之后)。
我现在正在尝试将OCR引擎集成到我的应用程序中(我也在自己的项目中安装了OCR插件),但它根本不起作用。 实际上,当我尝试在我的机器上启动我的应用程序时,执行失败,并返回此错误消息:
ms-appx中第11行第5列的不可处理的exception://io.cordova.blankcordovaapp/www/scripts/myscript.js
0x800a1391 – JavaScript执行错误:«WindowsPreview»未定义
这里是代码的“错误”部分(这是在我的脚本的开始):
$(document).ready(function () { "use strict"; // Keep objects in-scope across the lifetime of the scenario. var FileToken = ""; // Define namespace and API aliases. var FutureAccess = Windows.Storage.AccessCache.StorageApplicationPermissions.futureAccessList; // Should be initialising the OCR engine var OCR = WindowsPreview.Media.Ocr; var ocrEngine = new OCR.OcrEngine(OCR.OcrLanguage.french); document.addEventListener("deviceready", onDeviceReady, false);
我试图像在Microsoft OCR示例中那样初始化OCR引擎。 VS似乎没有findWindowsPreview.Media.Ocr这应该是,根据官方文件:
用于Windows运行时的Microsoft OCR库包含WindowsPreview.Media.Ocr命名空间。 该库作为NuGet包进行分发 – 它不包含在Windows软件开发工具包(SDK)中。
我没有使用NuGet命令行在项目中安装插件,所以我不知道为什么它不被识别,无法初始化。
感谢您的帮助,如果我还不够清楚,请不要犹豫,询问更多细节。
这看起来像是一个针对Apache Cordova(TACO)问题的VS工具。
作为解决方法,您可以打开platforms\windows\CordovaApp.sln
,将体系结构切换到x64,将Nuget包添加到CordovaApp.Windows项目引用,保存(由于PreBuild事件中的问题,构build将失败:
<PreBuildEvent> cd /d $(MSBuildThisFileDirectory) node -e "require('C:\\Users\\{username}\\AppData\\Roaming\\npm\\node_modules\\vs-tac\\lib\\hooks.js').updateAppxManifest('C:\\ocrTest\\ocrTest\\platforms\\windows','C:\\ocrTest\\ocrTest\\platforms\\windows\\..\\..\\')" </PreBuildEvent>
您也可以尝试暂时清除它以启用基础项目的构build)。
然后打开父Cordova项目 – 它现在应该工作。
这只适用于一个体系结构,尽pipe如此,对于ARM和Windows Phone,您可能需要另一个副本(将CordovaApp.Phone设置为启动项目,添加Nuget包并切换到ARM)。
注意:我在VS 2015和Cordova Tools upd.1上testing了这个。