- 扫描
- 已扫描图像的预处理
场景实现
步骤 1. 加载 ABBYY FineReader Engine
步骤 1. 加载 ABBYY FineReader Engine
要开始使用 ABBYY FineReader Engine,您需要创建 Engine 对象。Engine 对象是 ABBYY FineReader Engine 对象层级中的顶层对象,用于提供各种全局设置、一些处理方法,以及创建其他对象的方法。要创建 Engine 对象,您可以使用 InitializeEngine 函数。另请参阅加载 Engine 对象的其他方式 (Win) 。
C#
步骤 2. 扫描
步骤 2. 扫描
ABBYY FineReader Engine 提供了用于管理扫描源的 ScanManager 对象。该对象的 ScanSources 属性可用于获取所有可用扫描仪的列表,而 FindScanSources 方法则允许您根据扫描仪所提供的 API 类型及用于设置扫描选项的用户界面类型来筛选扫描仪。要扫描文件并将其保存到磁盘,可以使用 ScanSource 对象的以下两种方法之一:Scan 方法在扫描完成后才会返回;BeginScan 方法则启动异步扫描操作并立即返回。您可以实现 IScanCallback 接口,并通过它获取扫描进度的通知。以下参数可通过 ABBYY FineReader Engine 12 API 访问:亮度、色彩、分辨率、图像压缩类型、图像旋转角度、扫描区域大小、双面扫描模式、自动进纸器模式、页面间暂停时间等。扫描参数通过 ScanSource 对象的 ScanSettings 属性进行设置。该属性用于访问 ScanSourceSettings 对象,后者进而提供对扫描源扫描设置的访问。同步扫描图像:
- 创建 ScanManager 对象。您可以通过 CreateScanManager 方法的输入参数指定是否写入扫描日志。
- 使用 ScanManager 对象的 FindScanSources 方法选择扫描源,并指定扫描仪应支持的 API 和 UI 类型。
- 如果您选择不显示让用户自行设置扫描选项的对话框,请使用所选 ScanSource 的 ScanSettings 属性来调整扫描选项。在 ScanSourceSettings 对象的相应属性中,为亮度、分辨率和其他参数选择适当的值。您可以使用 ScanSource 的 Capabilities 属性查看此扫描仪提供哪些设置。
- 指定用于存储扫描页面的文件夹名称。该文件夹名称应为 BSTR 类型的变量,例如 ScanFolder。
- 运行 ScanSource object 的 Scan method,并将要向用户显示的 dialog box 类型作为参数传入 (传递 SSUIT_None 常量可不显示任何对话框) ,同时将 ScanFolder 路径指定为包含结果的文件夹路径。
- 此方法会以 StringsCollection 对象的形式返回图像文件名。您可以从该 StringsCollection 对象中获取图像文件名,然后像处理普通图像文件一样处理这些文件。
- 创建一个实现
IScanCallback接口的对象。对于异步扫描操作,来自回调接口的通知非常有用。 - 创建 ScanManager 对象。您可以通过 CreateScanManager 方法的输入参数指定是否写入扫描日志。
- 使用 ScanManager 对象的 FindScanSources 方法选择扫描源,并指定扫描仪应支持的 API 和 UI 类型。
- 如果您选择不显示供用户自行设置扫描选项的对话框,请使用所选 ScanSource 的 ScanSettings 属性来调整扫描选项。在 ScanSourceSettings 对象的相应属性中,为亮度、分辨率和其他参数选择适当的值。您可以通过 ScanSource 的 Capabilities 属性检查此扫描仪支持哪些设置。
- 指定用于存储扫描页面的文件夹名称。该文件夹名称应为 BSTR 变量,例如 ScanFolder。
- 运行 ScanSource object 的 BeginScan method,并将要向用户显示的对话框类型作为参数传入 (传递 SSUIT_None 常量则不显示任何对话框) ,以及用于存放结果的文件夹的 ScanFolder 路径。您还需要传入指向所创建回调 object 的指针。
- 图像文件路径会通过 IScanCallback 接口的 OnImageScanned 通知返回,操作完成则通过 OnScanComplete 通知发出信号。由于这些方法的实现由您提供,因此您可以自行决定在每种情况下执行什么操作。例如,收到图像文件路径后,您可以像处理磁盘上的其他任何文件一样处理它,并按常规方式将其加载到 FineReader Engine 中进行处理。
C#
步骤 3. 卸载 ABBYY FineReader Engine
步骤 3. 卸载 ABBYY FineReader Engine
所需资源
其他优化
- 文档分隔
- 在这种情况下,您可能需要将传入的图像流分组成多个文档。例如,您可能已知每个文档的页数,或者需要确保在第一个文档的最后一页与下一个文档的第一页之间插入带条形码的分隔页。请参阅条形码识别场景。
