36

我目前正在使用Windows 8.1應用程序,我使用的是Web語言,主要是jQuery(Cordova類型的項目),因爲它可能在其他平臺上使用。 爲了分析圖像並在我的應用程序中使用提取的文本,我需要使用Microsoft OCR Library(不是Tesseract或任何其他的,我知道它們,但我現在真的需要使用這個)。在VS 2013中使用帶有JS/jQuery的Microsoft OCR庫

我下載了JavaScript sample app from MSDN,我啓動了它:它完全正常工作(在VS 2013中安裝OCR插件之後)。

我現在正在嘗試在我的應用程序中集成OCR引擎(我也在我的項目中安裝了OCR插件),但它根本不起作用。事實上,當我嘗試推出我的機器上我的應用程序,執行失敗,並返回我這個錯誤消息:

上線11 Unmanagable例外,第5列在MS-APPX://io.cordova.blankcordovaapp2 /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似乎沒有找到WindowsPreview.Media.Ocr應該是,根據官方文檔:

微軟OCR庫Windows運行時包含WindowsPreview.Media.Ocr命名空間。該庫作爲NuGet包進行分發 - 它不包含在Windows軟件開發工具包(SDK)中。

我沒有在項目中使用NuGet命令行安裝插件,所以我不知道爲什麼它不被識別並且無法初始化。

預先感謝您的幫助,如果我不夠清楚,請不要猶豫,詢問更多細節。

+0

你知道了嗎?我在MSDN上看到你的帖子,看起來不是很遠。 – Eonasdan

+1

btw,我手動添加了對'WindowsPreview.Media的引用。Ocr.winmd'(來自軟件包)並在'OcrEngine'上得到'找不到指定的模塊。' – Eonasdan

+2

Hello Eonasdan!不,我仍然沒有想到,但我仍在努力,所以我希望我能找到解決方案。它可能會幫助其他人,這樣會很好。但是,是的,正如你所看到的,我在MSDN上的帖子仍然沒有太多。 – ColonelMoumou

回答

3

這看起來像是針對Apache Cordova(TACO)問題的VS Tools。
作爲一種變通方法,您可以打開platforms\windows\CordovaApp.sln,交換機架構到x64,NuGet包添加到CordovaApp.Windows項目引用,保存(建會,因爲在預生成事件問題的失敗:

<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 &科爾多瓦工具upd.1上進行了測試。

相關問題