在VS 2013中使用带有JS/jQuery的Microsoft OCR库

Col*_*mou 36 javascript ocr cordova visual-studio-2013 visual-studio-cordova

我目前正在开发一个Windows 8.1应用程序,我正在使用Web语言,主要是jQuery(Cordova类型项目),因为它可能在其他平台上使用.我需要使用Microsoft OCR库(不是Tesseract或任何其他的,我知道它们,但我现在真的需要使用这个),以便分析图像并在我的应用程序中使用提取的文本.

从MSDN下载了JavaScript示例应用程序并启动了它:它完全正常工作(当然在VS 2013中安装OCR插件之后).

我现在正在尝试将OCR引擎集成到我的应用程序中(我也在我的项目中安装了OCR插件),但它根本不起作用.事实上,当我尝试在我的机器上启动我的应用程序时,执行失败并返回以下错误消息:

ms-appx://io.cordova.blankcordovaapp2/www/scripts/myscript.js第11行第5行无法管理的异常

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);
Run Code Online (Sandbox Code Playgroud)

我尝试以与在Microsoft OCR样本中完成相同的方式初始化OCR引擎.VS似乎没有找到WindowsPreview.Media.Ocr应该是,根据官方文档:

用于Windows运行时的Microsoft OCR库包含WindowsPreview.Media.Ocr命名空间.该库作为NuGet包分发 - 它不包含在Windows软件开发工具包(SDK)中.

我确实使用NuGet命令行在项目中安装了插件,因此我不知道为什么它没有被识别并且无法初始化.

在此先感谢您的帮助,如果我不够清楚,请不要犹豫,询问更多细节.

das*_*rge 3

这看起来像是 VS Tools for Apache Cordova (TACO) 问题。
作为解决方法,您可以打开platforms\windows\CordovaApp.sln,将体系结构切换到 x64,将 Nuget 包添加到 CordovaApp.Windows 项目引用中,保存(由于 PreBuild 事件中的问题,构建将失败:

<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>
Run Code Online (Sandbox Code Playgroud)

您也可以尝试暂时清除它以启用基础项目的构建)。

然后打开父 Cordova 项目 - 它现在应该可以工作了。

这仅适用于一种架构,但对于 ARM 和 Windows Phone,您可能需要另一个副本(将 CordovaApp.Phone 设置为启动项目,向其中添加 Nuget 包并切换到 ARM)。

注意:我在 VS 2015 和 Cordova Tools upd.1 上对此进行了测试。