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

时间:2015-04-15 13:33:03

标签: javascript cordova visual-studio-2013 ocr visual-studio-cordova

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

我下载了JavaScript sample app from MSDN并启动了它:它完全正常工作(当然在VS 2013中安装OCR插件后)。

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

  

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

     

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似乎找不到WindowsPreview.Media.Ocr:

  

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

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

提前感谢您的帮助,如果我不够清楚,请不要犹豫,询问更多细节。

1 个答案:

答案 0 :(得分:3)

这看起来像是用于Apache Cordova(TACO)问题的VS工具 作为一种解决方法,您可以打开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>

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

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

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

注意:我在VS 2015&amp; Cordova Tools upd.1。