Подтвердить что ты не робот

Использование библиотеки Microsoft OCR с JS/jQuery в VS 2013

В настоящее время я работаю над приложением Windows 8.1, и я использую веб-языки и в основном jQuery (проект типа Cordova), поскольку он может использоваться на других платформах. Мне нужно использовать библиотеку Microsoft OCR (а не Tesseract или любые другие, я их знаю, но мне действительно нужно использовать эту на данный момент), чтобы анализировать изображение и использовать извлеченный текст в моем приложении.

Я загрузил пример приложения JavaScript из MSDN, и я запустил его: он полностью работает (после установки плагина OCR в VS 2013, конечно).

Теперь я пытаюсь интегрировать движок OCR в мое приложение (я также установил плагин OCR в свой проект), но он вообще не работает. Фактически, когда я пытаюсь запустить приложение на своей машине, выполнение не выполняется и возвращает мне это сообщение об ошибке:

Неустранимое исключение в строке 11, столбец 5 в ms-appx://io.cordova.blankcordovaapp2/www/scripts/myscript.js

0x800a1391 - Ошибка выполнения JavaScript: "WindowsPreview" - undefined "

Вот фрагмент кода с ошибкой (он находится в самом начале моего 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);

Я попытался инициализировать движок OCR так же, как и в примере OCR microsoft. VS, похоже, не находит WindowsPreview.Media.Ocr, который должен быть, согласно официальной документации:

Библиотека Microsoft OCR для Windows Runtime содержит пространство имен WindowsPreview.Media.Ocr. Библиотека распространяется как пакет NuGet - он не входит в комплект разработки программного обеспечения Windows (SDK).

Я установил плагин в проект с помощью командной строки NuGet, поэтому я не знаю, почему он не идентифицирован и не может быть инициализирован.

Заранее благодарим за помощь и не стесняйтесь спрашивать подробности, если я не был достаточно ясен.

4b9b3361

Ответ 1

Это похоже на VS Tools для 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>

вы также можете попытаться временно очистить его, чтобы включить сборку базовых проектов).

Затем откройте родительский проект Кордовы - он должен работать сейчас.

Это будет работать только для одной архитектуры, хотя для ARM и Windows Phone вам может понадобиться другая копия (установите CordovaApp.Phone в качестве запуска, добавьте пакет Nuget к нему и переключитесь на ARM).

Примечание. Я тестировал это на VS 2015 и Cordova Tools upd.1.