Chinese Simplified (简体中文)

在 Delphi 中使用 ABBYY FineReader Engine

本节将介绍一些 ABBYY FineReader Engine 12 在 Delphi 中的使用特征。

创建 Object Pascal 包装单位

为了在 Delphi 使用 ABBYY FineReader Engine 12,必需为类型库创建一个 Object Pascal 包装单位(FREngine_TLB.pas 文件)。要生成包装:

  1. 运行命令提示符 (cmd.exe) 然后转到 ABBYY FineReader Engine 12 类型库 (FREngine.tlb) 所在的文件夹。
  2. 用以下参数运行 tlibimp 实用程序:
tlibimp -O- -Cd- -C- -P+ -Pt+ FREngine.tlb
    

这将生成 FREngine_TLB.pas 文件。

  1. 将 FREngine_TLB.pas 添加到项目中。

每次更新 ABBYY FineReader Engine 12版本时,您都需要重新生成 FREngine_TLB.pas。

在 Delphi 7 中使用 Engine 加载程序

还有一种在 Delphi 7 中使用 ABBYY FineReader Engine 的替代方法,您不需要如上所述手动创建包装器。但是这种方法仅适用于使用 Engine 加载程序 在应用程序中加载 Engine 对象的情况。

  1. 打开项目,然后选择 项目 > 导入类型库
  2. 在打开的对话框中,选择列表中的 ABBYY FineReader Engine 12.5 类型库。确认“生成组件包装”标记已打开。单击 安装

注: 如果这阶段发生错误,可能表示系统环境变量“路径”不包含必要的路径。进行修改,添加 mscoree.tlb 文件的路径(通常是 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)。

  1. 新组件将出现在“组件”调色板的 ActiveX 选项卡上——InprocLoaderOutprocLoader。您可以将其中一个组件直接添加到表单上并使用它来加载 Engine 对象。

例如,您可以将 InprocLoader 组件添加到表单上。以下代码将自动添加:

uses FREngine_TLB;
type
  TForm1 = class(TForm)
    InprocLoader1: TInprocLoader;
    ...
    private
      { Private declarations }
    public
      { Public declarations }
    end;
    

在实施中使用 InprocLoader 对象的 InitializeEngine 方法加载 Engine:

Engine := InprocLoader1.InitializeEngine( 'MyProjectId', LicensePath, LicensePassword, '', '', False );
    

当不再需要 FineReader Engine 功能时,使用加载器对象的 ExplicitlyUnload 方法卸载 Engine

InprocLoader1.ExplicitlyUnload;
    

取消初始化 Engine 对象

如果在取消初始化 Engine 对象前,没有删除所有应用程序创建和使用的对象,将引发"Engine 取消初始化失败"异常。如果所有对象都已删除,则异常可能是由垃圾回收器操作引起。在 Delphi 中,所有含 nil 值的对象只有在退出其过程(曾宣告该对象的过程)后才会被删除。因此,必须将整个 ABBYY FineReader Engine 代码插入单独过程中,并且必须在取消初始化Engine 对象前调用该过程。

注: 您可以通过 Engine 对象的  StartLogging 方法获取尚未删除的对象列表。

ABBYY FineReader Engine 包括用 Delphi 写的简单 Hello 示例。您可以通过点击开始 > 程序 > ABBYY FineReader Engine 12 > 安装文件夹 > 代码示例文件夹 > Delphi > Hello 来访问该示例。

另请参阅

加载 Engine 对象的不同方式

24.03.2023 8:51:52

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.