Com esse cenário, você obterá os melhores resultados de reconhecimento para documentos pequenos de uma página, como faturas, recibos etc. A implantação do seu aplicativo no App Service inclui várias etapas:
- Preparar sua máquina local e a instância do aplicativo usando os pré-requisitos
- Executar as etapas preparatórias antes de implantar seu aplicativo
- Implantar e executar seu aplicativo no App Service
Pré-requisitos
Máquina local
- Visual Studio 2019 e seus módulos para desenvolvimento de aplicativos para Azure (consulte recurso do Azure no Visual Studio ou use o Visual Studio Installer para baixar esses módulos)
- SDK do Azure (baixe aqui)
- .NET Framework 4.7.2
- Pacote NuGet para trabalhar com o Azure Storage e contêineres de blob:
- wrapper do ABBYY FineReader Engine para .NET Framework 4.7 (na pasta C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops após a instalação para desenvolvedor)
- interface IFileWriter sobrescrita para trabalhar com os contêineres de blob (consulte o exemplo abaixo)
- Azure Storage Explorer (opcional - baixe aqui)
- Máquina virtual na sua conta do Azure destinada aos procedimentos de licenciamento. Para a configuração posterior, você precisa de:
- Endereço IP
- Porta de conexão aberta (padrão ou definida pelo usuário). Para abri-la, configure o firewall
- Detalhes da conexão via protocolo de rede Sockets
Etapas preparatórias
- Crie um arquivo compactado com a biblioteca ABBYY FineReader Engine (por exemplo, LibraryPackage.zip). A lista de arquivos está no arquivo FREngineDistribution.csv.
Importante! Se você tiver espaço de armazenamento limitado (por exemplo, se usar um App Service Plan com 1 GB de espaço), recomendamos usar a opção /extract para criar um pacote ABBYY FineReader Engine personalizado com tamanho mínimo. O restante do espaço de armazenamento será usado para processar os arquivos.
Ao criar um arquivo compactado, leve em consideração que as configurações de licenciamento do ABBYY FineReader Engine devem ser definidas de acordo com as configurações da máquina virtual:- O arquivo LicensingSettings.xml deve ser configurado para a configuração de rede (consulte Trabalhando com o arquivo LicensingSettings.xml).
- O protocolo de rede Sockets deve ser usado.
- O arquivo de token da Licença Online deve estar localizado na pasta Bin64.
- Crie uma conta de Armazenamento do Azure (frestorage, neste artigo). Você encontra todas as instruções necessárias no site do Azure.
- Crie seu App Service conforme desejado (veja as instruções aqui).
- Crie dois contêineres de Blob dentro de frestorage:
- fre-lib - para os arquivos do ABBYY FineReader Engine
- processing-container - para os resultados do processamento
- Faça upload de LibraryPackage.zip para o contêiner fre-lib da forma mais conveniente (usando .NET, Powershell, um script Python ou os aplicativos Azure Storage Explorer/Azure Portal).
- Implante e configure a máquina virtual com as configurações de licenciamento na sua conta do Azure:
- Instale o utilitário License Manager por meio do installLM.exe incluído em LibraryPackage.zip.
- Configure o protocolo de rede Sockets no LicensingSettings.xml e, em seguida, reinicie o Serviço de Licenciamento.
- Certifique-se de que o Azure App Service possa acessar a porta de conexão do Serviço de Licenciamento (ajuste as regras do Windows Firewall na máquina virtual).
- Ative sua licença (somente para proteção por software; a proteção online não requer ativação).
- Crie duas filas dentro de frestorage:
- processing-queue - para definir as tarefas de processamento dos arquivos
- status-queue - para notificar a conclusão das tarefas
- Crie dois projetos do Azure WebJob (.NET Framework) no Visual Studio 2019 para trabalhar com frestorage:
- FreDeployerJob - para implantar LibraryPackage.zip no App Service (veja a listagem de seus arquivos: Config.cs, Functions.cs, Program.cs abaixo)
- FreProcessorJob - para processamento de documentos (veja a listagem de seus arquivos: Config.cs, Functions.cs, Program.cs, EngineLoader.cs, IFileWriter.cs, Processor.cs abaixo)
Implantando e executando o ABBYY FineReader Engine no App Service
- Publique o FreDeployerJob no Azure App Service usando o Visual Studio (defina Triggered em WebJob Type).
- Abra o App Service no portal do Azure.
- Abra a seção WebJobs do App Service.
- Encontre o FreDeployerJob na lista de WebJobs.
- Inicie o FreDeployerJob clicando com o botão direito e escolhendo o comando Run na guia WebJobs.
- Faça upload do arquivo que você pretende processar para o processing-container.
- Adicione uma mensagem JSON para uma nova tarefa de processamento no formato {“blob-item-name” : “file_name”} à processing-queue. Se você fizer upload de Demo.tif para o processing-container, a mensagem deverá ser:
- Aguarde a conclusão da tarefa. Assim que a nova tarefa é definida, o FreProcessorJob começa a processar o arquivo especificado na memória. A status-queue conterá entradas sobre a execução dessa tarefa.
- Encontre o arquivo de saída no processing-container.
Exemplos de código
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
