在此方案中,对于发票、收据等小型单页文档,您可以获得最佳识别结果。 将应用程序部署到 App Service 包括以下几个步骤:
- 根据前提条件配置本地计算机和应用实例
- 在部署应用程序之前执行准备步骤
- 在 App Service 中部署并运行应用程序
前提条件
本地计算机
- Visual Studio 2019 及其用于开发 Azure 应用程序的模块 (请参阅 Visual Studio 中的 Azure 功能,或使用 Visual Studio Installer 下载此类模块)
- Azure SDK (在此处下载)
- .NET Framework 4.7.2
- 用于 Azure Storage 和 Blob 容器的 NuGet 包:
- 适用于 .Net Framework 4.7 的 ABBYY FineReader Engine 封装器 (开发人员安装完成后,位于
C:\\ProgramData\\ABBYY\\SDK\\12\\FineReader Engine\\Inc\\.NET interops文件夹中) - 为 Blob 容器操作而重写的 IFileWriter interface (请参见下方的示例)
- Azure Storage Explorer (可选——在此处下载)
- Azure 帐户中的虚拟机,用于执行许可流程。后续配置需要以下信息:
- IP 地址
- 开放的连接端口 (默认或用户定义) 。请使用防火墙将其开放
- Sockets 网络协议的连接详细信息
准备步骤
- 创建一个包含 ABBYY FineReader Engine Library 的压缩包 (例如
LibraryPackage.zip) 。文件列表见FREngineDistribution.csv文件。
重要提示!如果您的存储空间有限 (例如,您使用的是具有 1 GB 空间的 App Service 计划) ,建议使用/extract选项创建自定义的最小体积 ABBYY FineReader Engine 包。其余存储空间将用于处理文件。
创建压缩包时,请注意,ABBYY FineReader Engine 的许可设置必须根据虚拟机配置进行设置:- 必须将
LicensingSettings.xml文件配置为 Network 模式 (请参见 Working with the LicensingSettings.xml File) 。 - 必须使用 Sockets 网络协议。
- Online License 令牌文件必须位于
Bin64文件夹中。
- 必须将
- 创建一个 Azure 存储帐户 (本文中使用
frestorage) 。所需说明均可在 Azure 网站上找到。 - 按需创建您的 App Service (请参见此处的说明) 。
- 在
frestorage中创建两个 Blob 容器:fre-lib- 用于存放 ABBYY FineReader Engine 文件processing-container- 用于存放处理结果
- 以最方便的方式将
LibraryPackage.zip上传到fre-lib容器 (可使用 .NET、Powershell、Python 脚本或 Azure Storage Explorer/Azure Portal 应用程序) 。 - 在您的 Azure 账户中部署并配置带有许可设置的虚拟机:
- 通过
LibraryPackage.zip中的installLM.exe安装 License Manager 实用程序。 - 在
LicensingSettings.xml中设置 Sockets 网络协议,然后重启许可服务。 - 确保 Azure App Service 可以访问许可服务的连接端口 (调整虚拟机上的 Windows 防火墙规则) 。
- 激活您的许可证 (仅适用于软件保护;在线保护无需激活) 。
- 通过
- 在
frestorage中创建两个队列:processing-queue- 用于设置文件处理任务status-queue- 用于通知任务完成
- 在 Visual Studio 2019 中创建两个 Azure WebJob (.NET Framework) 项目,以便使用
frestorage:
在 App Service 中部署和运行 ABBYY FineReader Engine
- 使用 Visual Studio 将 FreDeployerJob 发布到 Azure App Service (将 WebJob Type 设为 Triggered) 。
- 在 Azure 门户中打开 App Service。
- 打开该 App Service 的 WebJobs。
- 在 WebJobs 列表中找到 FreDeployerJob。
- 在 WebJobs 选项卡中右键单击 FreDeployerJob,然后选择 Run 命令启动它。
- 将要处理的文件上传到 processing-container。
- 按照 {“blob-item-name” : “file_name”} 格式向 processing-queue 添加一条新的处理任务 JSON 消息。如果你将 Demo.tif 上传到 processing-container,则消息应为:
- 等待任务完成。新任务一经创建,FreProcessorJob 就会开始在内存中处理指定文件。status-queue 中将包含有关此任务执行情况的条目。
- 在 processing-container 中查找输出文件。
代码示例
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
