36

Attualmente sto lavorando a un'applicazione Windows 8.1 e sto utilizzando linguaggi Web e principalmente jQuery (progetto tipo Cordova) poiché potrebbe essere utilizzato su altre piattaforme. Ho bisogno di usare la libreria Microsoft OCR (non Tesseract o altri, li conosco ma ho davvero bisogno di usarlo per ora) per analizzare l'immagine e usare il testo estratto nella mia applicazione.Utilizzo di Microsoft OCR Library con JS/jQuery in VS 2013

Ho scaricato il JavaScript sample app from MSDN e l'ho avviato: è completamente funzionante (dopo aver installato il plug-in OCR in VS 2013 ovviamente).

Attualmente sto cercando di integrare il motore OCR nella mia applicazione (ho installato il plugin OCR anche nel mio progetto) ma non funziona affatto. Infatti, quando provo a lanciare la mia applicazione sulla mia macchina, l'esecuzione non riesce e mi restituisce questo messaggio di errore:

eccezione unmanagable sulla linea 11, colonna 5 in MS-appx: //io.cordova.blankcordovaapp2 /www/scripts/myscript.js

0x800A1391 - errore di esecuzione JavaScript: «WindowsPreview» non è definito"

Ecco la "porzione buggy" di codice (è proprio all'inizio del mio script) :

$(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); 

Ho provato a inizializzare il motore OCR nello stesso modo in cui viene eseguito nell'esempio microsoft OCR. VS non sembra trovare WindowsPreview.Media.Ocr che dovrebbe essere, secondo la documentazione ufficiale:

L'OCR Biblioteca Microsoft per Windows Runtime contiene lo spazio dei nomi WindowsPreview.Media.Ocr. La libreria è distribuita come pacchetto NuGet e non è inclusa nel kit di sviluppo software di Windows (SDK).

Ho installato il plug-in nel progetto utilizzando la riga di comando NuGet, quindi non so perché non è stato identificato e non può essere inizializzato.

Grazie in anticipo per il vostro aiuto e non esitate a chiedere ulteriori dettagli se non fosse abbastanza chiaro.

+0

hai capito? Vedo il tuo post su MSDN che non sembra sia arrivato molto lontano. – Eonasdan

+1

btw, ho aggiunto manualmente un riferimento a 'WindowsPreview.Media.Ocr.winmd' (dal pacchetto) e ottenuto 'Il modulo specificato non può essere trovato. A' OcrEngine' – Eonasdan

+2

Ciao Eonasdan! No, non l'ho ancora capito, ma ci sto ancora lavorando, quindi spero di trovare la soluzione. Potrebbe aiutare anche gli altri, quindi sarebbe fantastico. Ma sì, come puoi vedere, il mio post su MSDN non è ancora arrivato molto lontano. – ColonelMoumou

risposta

3

Questo sembra un problema VS Tools per Apache Cordova (TACO).
Come soluzione alternativa è possibile aprire platforms\windows\CordovaApp.sln, architettura passare a x64, aggiungere il pacchetto Nuget ai riferimenti CordovaApp.Windows progetto, salvare (costruire non riuscirà a causa di un problema nel caso in 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> 

è anche possibile prova a cancellare temporaneamente per abilitare le build dei progetti sottostanti).

Quindi aprire il progetto padre Cordova - dovrebbe funzionare ora.

Questo funzionerà solo per un'architettura, anche se per ARM e Windows Phone potrebbe essere necessaria un'altra copia (impostare CordovaApp.Phone come progetto di avvio, aggiungere il pacchetto Nuget e passare a ARM).

Nota: lo stavo testando su VS 2015 & Cordova Tools upd.1.

Problemi correlati