Con questo scenario, otterrai i migliori risultati di riconoscimento per documenti piccoli di una sola pagina, come fatture, ricevute e così via. La distribuzione dell’applicazione in App Service comprende diversi passaggi:
- Preparare il computer locale e l’istanza dell’applicazione usando i prerequisiti
- Eseguire i passaggi preparatori prima di distribuire l’applicazione
- Distribuire ed eseguire l’applicazione in App Service
Prerequisiti
Macchina locale
- Visual Studio 2019 e i relativi moduli per lo sviluppo di applicazioni per Azure (consulta Funzionalità di Azure in Visual Studio oppure usa Visual Studio Installer per scaricare tali moduli)
- Azure SDK (scaricalo qui)
- .NET Framework 4.7.2
- Pacchetti NuGet per lavorare con Azure Storage e i contenitori Blob:
- Wrapper di ABBYY FineReader Engine per .NET Framework 4.7 (nella cartella C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops dopo l’installazione Developer)
- Interfaccia IFileWriter ridefinita per lavorare con i contenitori Blob (vedi l’esempio riportato di seguito)
- Azure Storage Explorer (facoltativo - scaricalo qui)
- Macchina virtuale nel tuo account Azure dedicata alle procedure di gestione delle licenze. Per completare la configurazione, ti occorrono:
- Indirizzo IP
- Porta di connessione aperta (predefinita o definita dall’utente). Per aprirla, usa un firewall
- Dettagli della connessione tramite protocollo di rete Sockets
Passaggi preliminari
- Crea un archivio con la ABBYY FineReader Engine Library (ad esempio, LibraryPackage.zip). L’elenco dei file è riportato nel file FREngineDistribution.csv.
Importante! Se disponi di spazio di archiviazione limitato (ad esempio, se usi un App Service Plan con 1 GB di spazio), ti consigliamo di utilizzare l’opzione /extract per creare un pacchetto ABBYY FineReader Engine personalizzato di dimensioni minime. Lo spazio di archiviazione restante verrà utilizzato per l’elaborazione dei file.
Quando crei l’archivio, tieni presente che le impostazioni di gestione delle licenze di ABBYY FineReader Engine devono essere configurate in base alle impostazioni della macchina virtuale:- Il file LicensingSettings.xml deve essere configurato per la modalità Network (vedi Utilizzo del file LicensingSettings.xml).
- Deve essere utilizzato il protocollo di rete Sockets.
- Il file del token della licenza online deve trovarsi nella cartella Bin64.
- Crea un account Azure Storage (frestorage in questo articolo). Tutte le istruzioni necessarie sono disponibili sul sito web di Azure.
- Crea l’App Service desiderato (vedi le istruzioni qui).
- Crea due contenitori Blob all’interno di frestorage:
- fre-lib - per i file di ABBYY FineReader Engine
- processing-container - per i risultati dell’elaborazione
- Carica LibraryPackage.zip nel contenitore fre-lib nel modo che preferisci (usando .NET, Powershell, uno script Python o le applicazioni Azure Storage Explorer/Azure Portal).
- Distribuisci e configura la macchina virtuale con le impostazioni di gestione delle licenze nel tuo account Azure:
- Installa la utility License Manager tramite installLM.exe da LibraryPackage.zip.
- Configura il protocollo di rete Sockets nel file LicensingSettings.xml, quindi riavvia il Licensing Service.
- Assicurati che Azure App Service possa accedere alla porta di connessione del Licensing Service (modifica le regole di Windows Firewall sulla macchina virtuale).
- Attiva la licenza (solo per Software protection; Online protection non richiede attivazione).
- Crea due code all’interno di frestorage:
- processing-queue - per impostare le attività di elaborazione dei file
- status-queue - per notificare il completamento delle attività
- Crea due progetti Azure WebJob (.NET Framework) in Visual Studio 2019 per lavorare con frestorage:
- FreDeployerJob - per distribuire LibraryPackage.zip nell’App Service (vedi l’elenco dei relativi file: Config.cs, Functions.cs, Program.cs di seguito)
- FreProcessorJob - per l’elaborazione dei documenti (vedi l’elenco dei relativi file: Config.cs, Functions.cs, Program.cs, EngineLoader.cs, IFileWriter.cs, Processor.cs di seguito)
Distribuzione e avvio di ABBYY FineReader Engine in App Service
- Pubblicare FreDeployerJob in Azure App Service usando Visual Studio (impostare Triggered come WebJob Type).
- Aprire l’App Service nel portale di Azure.
- Aprire la sezione WebJobs dell’App Service.
- Trovare FreDeployerJob nell’elenco dei WebJobs.
- Avviare FreDeployerJob con il comando del menu contestuale Run nella scheda WebJobs.
- Caricare il file da elaborare nel processing-container.
- Aggiungere alla processing-queue un messaggio JSON per una nuova attività di elaborazione nel formato {“blob-item-name” : “file_name”}. Se si carica Demo.tif nel processing-container, il messaggio dovrà essere:
- Attendere il completamento dell’attività. Non appena viene impostata la nuova attività, FreProcessorJob inizia a elaborare in memoria il file specificato. La status-queue conterrà voci relative all’esecuzione di questa attività.
- Trovare il file di output nel processing-container.
Esempi di codice
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
