Avec ce scénario, vous obtiendrez les meilleurs résultats de reconnaissance pour de petits documents d’une page, tels que des factures, des reçus, etc. Le déploiement de votre application dans App Service comprend plusieurs étapes :
- Préparer votre machine locale et votre instance d’application à l’aide des prérequis
- Effectuer les étapes préparatoires avant de déployer votre application
- Déployer et exécuter votre application dans App Service
Prérequis
Ordinateur local
- Visual Studio 2019 et ses modules de développement d’applications pour Azure (consultez Fonctionnalités Azure dans Visual Studio ou utilisez Visual Studio Installer pour télécharger ces modules)
- SDK Azure (téléchargez-le ici)
- .NET Framework 4.7.2
- package NuGet pour utiliser Azure Storage et les conteneurs Blob :
- wrapper ABBYY FineReader Engine pour .NET Framework 4.7 (dans le dossier C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops après l’installation développeur)
- interface IFileWriter redéfinie pour fonctionner avec les conteneurs Blob (voir l’exemple ci-dessous)
- Azure Storage Explorer (facultatif : téléchargez-le ici)
- Machine virtuelle dans votre compte Azure destinée aux procédures de licence. Pour la configuration ultérieure, vous aurez besoin de :
- Adresse IP
- Port de connexion ouvert (par défaut ou défini par l’utilisateur). Pour l’ouvrir, configurez le pare-feu
- Paramètres de connexion du protocole réseau Sockets
Étapes préparatoires
- Créez une archive contenant ABBYY FineReader Engine Library (par exemple, LibraryPackage.zip). La liste des fichiers figure dans le fichier FREngineDistribution.csv.
Important ! Si vous disposez d’un espace de stockage limité (par exemple, si vous utilisez un App Service Plan avec 1 Go d’espace), nous vous recommandons d’utiliser l’option /extract pour créer un package ABBYY FineReader Engine personnalisé de taille minimale. Le reste de l’espace de stockage sera utilisé pour le traitement des fichiers.
Lors de la création de l’archive, gardez à l’esprit que les paramètres de licence d’ABBYY FineReader Engine doivent être configurés en fonction des paramètres de la machine virtuelle :- Le fichier LicensingSettings.xml doit être configuré pour la configuration Network (voir Utilisation du fichier LicensingSettings.xml).
- Le protocole réseau Sockets doit être utilisé.
- Le fichier de jeton de licence en ligne doit se trouver dans le dossier Bin64.
- Créez un compte de stockage Azure (frestorage dans cet article). Vous trouverez toutes les instructions nécessaires sur le site web Azure.
- Créez votre App Service selon vos besoins (voir les instructions ici).
- Créez deux conteneurs Blob dans frestorage :
- fre-lib - pour les fichiers ABBYY FineReader Engine
- processing-container - pour les résultats du traitement
- Téléversez LibraryPackage.zip dans le conteneur fre-lib de la manière la plus pratique pour vous (à l’aide de .NET, PowerShell, d’un script Python ou des applications Azure Storage Explorer/Azure Portal).
- Déployez et configurez la machine virtuelle avec les paramètres de licence dans votre compte Azure :
- Installez l’utilitaire License Manager à l’aide de installLM.exe depuis LibraryPackage.zip.
- Configurez le protocole réseau Sockets dans le fichier LicensingSettings.xml, puis redémarrez le service de licence.
- Assurez-vous qu’Azure App Service peut accéder au port de connexion du service de licence (ajustez les règles du Pare-feu Windows sur la machine virtuelle).
- Activez votre licence (pour la protection logicielle uniquement ; la protection en ligne ne nécessite pas d’activation).
- Créez deux files d’attente dans frestorage :
- processing-queue - pour définir les tâches de traitement des fichiers
- status-queue - pour signaler l’achèvement des tâches
- Créez deux projets Azure WebJob (.NET Framework) dans Visual Studio 2019 pour travailler avec frestorage :
- FreDeployerJob - pour déployer LibraryPackage.zip vers App Service (voir la liste de ses fichiers : Config.cs, Functions.cs, Program.cs ci-dessous)
- FreProcessorJob - pour le traitement des documents (voir la liste de ses fichiers : Config.cs, Functions.cs, Program.cs, EngineLoader.cs, IFileWriter.cs, Processor.cs ci-dessous)
Déploiement et exécution d’ABBYY FineReader Engine dans App Service
- Publiez FreDeployerJob sur Azure App Service à l’aide de Visual Studio (définissez Triggered comme WebJob Type).
- Ouvrez votre App Service dans le portail Azure.
- Ouvrez la section WebJobs de votre App Service.
- Recherchez FreDeployerJob dans la liste des WebJobs.
- Lancez FreDeployerJob par un clic droit, puis la commande Run dans l’onglet WebJobs.
- Téléversez le fichier que vous souhaitez traiter dans le processing-container.
- Ajoutez un message JSON pour une nouvelle tâche de traitement au format {“blob-item-name” : “file_name”} dans le processing-queue. Si vous téléversez Demo.tif dans le processing-container, votre message doit être :
- Attendez que la tâche soit terminée. Dès que la nouvelle tâche est définie, FreProcessorJob commence à traiter en mémoire le fichier spécifié. La status-queue contiendra des entrées concernant l’exécution de cette tâche.
- Recherchez le fichier de sortie dans le processing-container.
Exemples de code
FreDeployerJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
FreProcessorJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
EngineLoader.cs
EngineLoader.cs
IFileWriter.cs
IFileWriter.cs
Processor.cs
Processor.cs
