借助脚本语言中的 COM 接口进行处理
ABBYY FineReader Engine 12 支持动态绑定 COM 接口:
- 几乎所有 ABBYY FineReader Engine 12 接口源自 IDispatch (一些在客户端实施的回调接口除外)。
- 脚本语言(例如 VBScript 和 JScript)只支持动态绑定。因此,由于从 IDispatch 继承了此类接口,从这些语言使用 ABBYY FineReader Engine API 非常简单: Engine 对象无法使用 COM m方法 CoCreateObject 进行创建。加载 Engine 可使用 IEngineLoader 接口的一项方法。该接口用两个对象实施,分别提供进程内和进程外加载 Engine:InprocLoader 和 OutprocLoader。您可以通过脚本语言中提供的方法创建这两个对象之一,然后调用 InitializeEngine 方法加载 Engine。
- 通过 Engine 对象的方法创建的名为 "Create..." 或 "Load..." 的其它对象现在可以直接从脚本语言进行创建和使用。
- IEngineLoader 接口还提供一个 NullObject 属性,可返回对 null 对象的引用。在脚本语言中 null 本身不是对象,但是一些方法需要为默认行为接收 null 参数。(例如,IFRDocument::Analyze 方法可以接收 null 而不是参数对象,在此情况下分析使用已加载配置文件的默认设置执行)。
重要事项!在终端用户的计算机上安装应用程序时需注册 FREngine.dll。注册 FREngine.dll 使用以下命令行:
regsvr32 /s /n /i:"<Inc 文件夹路径>" "<FREngine.dll 的路径>"
例如,您可以使用 JavaScript ActiveXObject 函数创建 Engine 对象。
// 创建 EngineLoader 对象 var EngineLoader = new ActiveXObject( "FREngine.OutprocLoader" ); ... // 获取 Engine 对象 var Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", false ); // 提供您的客户项目 ID、在线许可证文件路径和在线许可证密码
在 VBScript 中使用 CreateObject 方法:
' 创建 EngineLoader 对象 Set EngineLoader = CreateObject( "FREngine.OutprocLoader" ) ... ' 获取 Engine 对象 Set Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", False )
在 Perl 中使用 CreateObject 方法:
# 创建 EngineLoader 对象 $EngineLoader = $WScript->CreateObject( 'FREngine.OutprocLoader' ); ... # 获取 Engine 对象 $Engine = $EngineLoader->InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, '', '', 0 );
示例
参见 JavaScript、VBScript 和 Perl 的 Hello 示例了解在脚本语言中使用 ABBYY FineReader Engine 的简单应用。
另请参阅
17.09.2024 15:14:41