关于 ABBYY FlexiCapture 9.0...

ABBYY FlexiCapture 9.0 是将数据从硬拷贝文档自动输入信息系统数据库的软件解决方案。

ABBYY FlexiCapture 9.0 采用高级的键入和手印字符识别、图像处理和文档分析技术，可从在单一流程中处理的各种类型文档中方便地自动提取有意义的信息 - 结构化（固定）表单、半结构化（弹性表单和文档）和自由格式非结构化文档。通过 ABBYY FlexiCapture 9.0，不必手动排序和重新打印文档中的信息，避免了繁杂的、低效率处理工作。

基本文档处理方案如下：

  1. 文档放在自动扫描仪进纸器上，开始扫描。
  2. 将扫描的文档图像提交供识别，此时软件自动识别文档（包括多页文档）、查找有意义的字段、提取数据并加载检查规则。
  3. 如有必要，在识别之后执行数据校验和规则错误检查。
  4. 识别和校验的数据连接文档的电子副本均保存至数据库（信息系统）或文件。


ABBYY FlexiCapture 8.0 Professional 中所没有的 ABBYY FlexiCapture 9.0 的新功能

体系结构

分布式安装

ABBYY FlexiCapture 9.0 支持分布式安装和操作。在 ABBYY FlexiCapture 9.0 中实现的分布式安装与 FormReader 6.5 Enterprise Edition 相似，只是对系统作出了一些修改：提高其灵活性、可扩展性和可靠性。现在扫描工作站和数据校验工作站可以通过因特网远程进行使用。

ABBYY FlexiCapture 9.0 体系结构和基本原则
工作流
ABBYY FlexiCapture 9.0 服务器
ABBYY FlexiCapture 9.0 工作站
应用程序服务器 API

通过应用程序服务器 API，您可以编程形式控制处理，无需借助于 GUI。API 可使第三方开发者创建其自已的使用 ABBYY FlexiCapture 9.0 作为文档图像分析服务并导出结果的应用程序。
应用程序服务器 API

项目管理

批处理文件类型

可以为每个批处理文件指定一种类型（如果未指定类型，将为其分配“默认”类型）。一个项目可以包含任意数量的批处理文件类型。批处理文件类型定义了图像处理和识别选项、批处理文件完整性检查、默认导出设置以及如何处理属于该类型的批处理文件。“默认”类型的批处理文件采用项目设置。
文档批处理文件

注册参数

现在可以指定描述批处理文件或文档的注册参数。以后即可对图像和数据的导出来运用这些参数。

注册参数
优先级

现在可以指定文档和批处理文件的优先级来控制处理顺序。

分析和识别

匹配文档定义的顺序

现在您可以控制匹配文档定义的顺序。可以采用以下方法指定匹配顺序：

  • 在文档定义对话框中明确定义文档定义的顺序。
  • 对于 FlexiLayout：使用分类器选择所需的文档定义
  • 对于 FlexiLayout：在文档定义对话框中，指定如何选择相应的 FlexiLayout
编辑和发布文档定义
分类器
更新文档定义版本（不重新识别）

现在，可更新文档定义的版本，无需对其进行重新识别。只要满足以下条件之一就可实现此目的：

  • 如果只更改了导出设置，则将使用新设置导出文档
  • 如果更改了规则，则将再次执行规则校验

校验

现在可以自动获取校验任务
在组校验和字段校验期间可以查看图像
文件和数据库可以用作规则校验的数据源
可针对空字段禁用数据库检查规则
增加了求和计算规则
识别可靠度水平是针对整个批处理文件指示的。
增加了组校验和字段校验设置，其中包括配置特定字符的确定性要求
可为字段校验指定初始光标位置
在字段校验期间可以选择性地突出显示整个字段（当用户要在整个字段中键入时很有用）
每种错误类型分开显示。检测的错误类型有：
  • 组装错误
  • 格式错误
  • 规则错误
检验识别的数据

导出

自动导出

现在，识别质量高且无规则或格式错误的文档会自动导出，无需用户干预。所需的不确定字符百分比在设置项目时指定。
工作流

导出至多个目标

可以将数据和图像导出至多个目标。可以将某些目标标记为重要目标。如果导出至重要目标失败，则将显示一条错误消息。导出至非重要目标失败不会导致出现整个导出错误。
配置数据导出

设置文件名和位置

存储导出的数据和图像及其路径所使用的文件的命名模板，可以进行多种配置。在新增的功能中，还有一项功能就是在从热文件夹导出时可以重建文档结构。
导出文件命名方案

归档有错误的文档

可以将有格式或规则错误的文档保存至指定的存储位置。导出有错误的文档的设置方式与导出正常文档的设置方式一样。
配置数据导出

导出时自动删除文档

可删除成功导出的文档。用于手动删除文档的选项已预留。
工作流

保密

现在，可以编辑（即删除）文档图像中的个别字段。每次导出可以指定不同的编辑规则，以管理要向不同用户显示的信息量。
配置数据导出

选项

批处理文件完整性检查

脚本可用于检查批处理文件的完整性。脚本在导出前自动启动。
文档批处理文件
用于创建自定义规则的样本脚本

标准化脚本

脚本可用于纠正从字段中提取的信息。
处理输入的值
用于创建自定义规则的样本脚本

自动处理

可在没有操作员干预的情况下处理文档。将导出已成功处理的文档，并可将出现错误的文档图像保存起来以供将来分析。

工作流设置
自定义脚本

可以对每个字段指定一个由校验操作员触发的脚本。

自定义操作
服务字段

增加了新的字段类型 - 服务字段。此类字段利用从选定来源获取的数据自动填入。

服务字段

受支持的语言

新 OCR 语言

现已增加对如下语言的 OCR 支持：

  • 越南文
  • 中文
  • 韩文
  • 日文

FormReader 6.5 Desktop 中没有的 ABBYY FlexiCapture 8.0 Professional 新功能

已处理的文档类型

结构复杂的多页文档

通过程序，可对带有不同页数和重复页面的结构化、半结构化、非结构化文档，以及带附录的文档执行自动识别和处理。
通过 ABBYY FlexiCapture 9.0 处理的文档类型
为多页文档创建文档定义
为带附录的文档创建文档定义

非结构化文档

对于带有通过空白页面、带条形码或补丁代码页面分隔的文本或图像的非结构化文档，可借助简单的文档定义对为其建立索引，并将其处理后导出至可搜索的 PDF 文件或导出至图形文件。
处理非结构化文档

带复杂表格或跨页表格的半结构化多页文档

对于表格跨页的半结构化多页文档，可对其进行识别、组装到文档，并借助于简单的灵活描述加以处理。
为弹性文档处理创建文档定义

带表格的弹性表单

为简化对包含表格的文档的处理，程序现支持固定表单中的表格。
创建表格

重复性元素

程序支持结构化和半结构化文档中的重复性字段组。这简化了以下过程：对包含有多次重复出现的相同元素组的文档的处理配置，包括对含有此类组的复杂表格的处理。
创建字段组

程序体结构结构

操作员和管理员模式

在“开始”菜单中选择不同的命令，可以启用“操作员”和“管理员”模式，可以将它们安装在不同的计算机上。所有程序功能在“管理员”模式下均可用。在“操作员”模式下，用户不能编辑文档定义、导入配置文件或访问测试批处理文件。

处理项目

项目是将文档批处理文件及处理这些文档批处理文件所需的设置组合在一起的单一环境，例如，文档定义、导入配置文件等。

一个项目可供本程序的不同副本使用：可以将项目作为单一对象进行导出和导入，也可以更新项目或将该项目从一台计算机传输到另一台计算机。不同工作站可以通过网络处理相同的项目，从而简化文档处理。
创建项目
项目属性

用于处理后台进程的便利工具

在后台模式执行添加图像、识别或导出等耗时的操作，可以大大缩短文档处理时间。用户随时可以检查任何后台进程的状态，更改任务的优先级和查看处理日志。

后台模式

文档定义编辑器

文档级工作

文档定义是针对作为处理单元的整个文档而创建的。文档定义确定了相关类型文档的识别和处理方式。每个文档定义均包含有页面图像、组装规则、字段和静态元素描述、校验规则、校验设置、数据类型描述以及数据导出设置。
为多页文档创建文档定义

切换图像模式

现在，使用文档定义编辑器可以在两种图像模式之间切换：不管向批处理文件添加图像的格式如何，都可以采用原始的彩色模式或以黑白模式查看图像。彩色图像可以简化彩色表单文档定义的创建，因为在这种模式中可以看到字段标记和说明性文本：这对于绘制字段区域和为该字段分派名称是必要的。查看黑白图像对于在识别过程中发生二进制化后确保定位点和静态文本可见非常重要。

数据表单编辑器

数据表单编辑器易于创建被提取数据的自定义显示，并以最方便的方式为操作员呈现。
在文档窗口中配置数据显示

以树状图显示字段

文档结构以字段树的形式进行图形显示。采用这种形式的字段显示，可以快速编辑、复制、删除和移动字段。
以页面概览形式显示文档结构

文档结构可以很方便地显示为页面概览。这样便于查看、编辑多页文档和为多页文档创建文档定义。
静态元素和字段的独立视图

静态元素和字段分开显示。以这种方式显示静态元素和字段便于创建文档定义：该过程分两个阶段 – 独立创建静态元素；定位点、分隔符、定位点文本和条形码不干涉字段区域的创建。

创建文档定义字段
静态元素
组合字段

可以将字段合并为组，以实现清晰显示文档结构和重复性的字段组的创建。

创建字段组
字段组的属性
固定文档定义中的表格

现在，可以在固定文档定义中创建表格字段，从而大大简化配置、数据提取和从表格导出数据。表格字段就是一组相同类型的列和重复性的行。

创建表格
表格属性
固定文档定义中的重复性元素

重复性元素就是在表单中多次出现的字段或字段组，它们描述的是类似的对象，如多名雇员、儿童、客户等相同的细节。这类重复性元素的结构类似于表格结构：一组字段构成列，而每个重复位置即为表格的行。文档定义编辑器简化了这类字段的配置和处理。

有多个实例的字段
跨表单中多页的字段

如果表单中有的字段区域分布在多页上（例如长表格），使用文档定义编辑器可以将它们作为单个字段进行查看，大大简化了配置和处理。

有多个区域的字段
自动创建固定文档定义

文档定义编辑器提供的新工具可以自动创建固定文档定义，且简化了创建过程：

  • 自动识别含一个区域的文本字段；
  • 自动识别表格中的垂直分隔符和水平分隔符；
  • 通过在字段区域中单击一下鼠标按钮自动识别字段；
  • 自动分配匹配最接近的说明性文本的字段名称；
  • 识别文档定义图像中的静态文本并将其复制到字段属性中；
  • 自动调整字段边界。
自动检测字段和静态元素
如何更改字段名称
改进数据类型配置

经过我们对数据类型设置的精心设计，简化了文档定义的创建，改进了字段数据的提取和校验。预配置的数据类型组中包括最常用的数据类型（文本、日期和时间、货币、数字）。而预配置的格式组中包括预配置数据类型的最常用格式，可以从列表中选择这些格式，无需为格式校验创建复杂规则。
文本输入字段数据类型
创建自定义数据类型

使用 JScript® 语言描述校验规则

（除 VBScript 语言以外）现在，还可以使用 JScript® 语言以脚本的形式描述校验规则。这使您可为校验提取数据配置任何自定义规则。
带脚本帮助的规则集
使用脚本创建规则

索引字段

如果在字段属性中启用索引字段，则可在文档批处理窗口中以附加列的形式显示该字段的值。可以根据此字段值对文档排序。在导出期间，可以将索引字段的值添加到文件名中，以便于查找所需的信息。
索引字段
导出文件命名规则

文档定义的其他状态

在文档定义编辑器中打开文档定义时，会为该文档定义自动创建一个临时的版本版本。在发布该可编辑版本前，该版本都不会包括在文档处理范围中。通过这项功能可以使用文档定义在分割的项目中组织工作。
编辑和发布文档定义

在文档定义编辑器中对特殊批处理文件测试文档定义

为简化文档定义创建和加快创建速度，可以在创建期间不退出文档定义编辑器的情况下测试可编辑文档定义。可以在创建时，在用于创建文档定义的图像上测试文档定义。可以使用特殊测试批处理文件进行此类测试，特殊批处理文件不用于实际的文档处理。
测试文档定义
文档批处理文件

图像导入

自动组装页面至文档

使用以下项目时，可以将扫描仪或热文件夹的图像的输入流自动分成文档：

  • 多页图像格式，如 TIFF 或 PDF；
  • 空白页面，有条形码或补丁代码的页面。
添加页面图像
图像预处理选项
图像导入配置文件

图像导入配置文件用于为各种各样的文档导入源（扫描仪或文件夹）创建成组的预配置设置。一旦导入配置文件得以保存并分配有名称，就可供操作员从列表中进行选择。
图像导入配置文件

单击导入

只需单击，就可根据上次使用的配置文件设置执行图像导入。
添加页面图像

后台导入模式

可在后台模式中执行导入。程序以指定的间隔检查热文件夹中是否有新图像。

后台模式

分类，文档定义应用程序，识别

导出至可搜索 PDF 文件的全文识别

程序对后续导出至 PDF 和 PDF\A 可搜索文件提供全文文档识别支持。这对于归档非结构化和半结构化的文档尤其有用。
新识别语言

吉尔吉斯语 (OCR/ICR)

哈萨克语 (OCR/ICR)

泰语 (OCR)

受支持的识别语言

新条形码类型

Matrix 25，Industrial 25，PostNet。

受支持的条形码类型
已纠正字符在固定表单中的位置

如果删除了错误输入的字符，会在校验过程中对操作员显示该字符，以便其手动输入正确的字符。
删除分隔符页面功能

可以从批处理文件中自动删除用作分隔符表的带有条形码、补丁代码的页面、空白页面。

图像预处理选项
删除空白页面功能

可以在识别期间删除空白页面。

项目属性

数据校验

校验界面的改进
  • 全屏模式。
  • 状态栏显示当前已校验字符的百分比。
检验识别的数据
新界面配置可能性
  • 可以更改有字段图像的窗口的位置。
  • 可以更改窗口的比例。也提供自动选择最佳比例的功能。
  • 用户可以更改字符的字体大小。
检验识别的数据
组校验的改进
  • 提供字符上下文的弹出提示。
  • 可以配置字符临近区域的大小和对比度。
组校验
字段校验的改进
  • 现在，可以在字段校验进程中检查格式规则。用户可以看到错误描述，另外还提供了对该值提议的更改的列表。
  • 现在，提供有显示带字符切割的字段的模式。
  • 支持多行字段。
  • 字符的弹出提示有助于简化理解，例如，字母“O”和数字“0”。
字段校验
实时字段识别

在文档窗口中的校验期间，字段区域边界中的每一处更改都伴随有对应图像区域的自动重新识别。这项功能简化了从带有不准确的指定区域的字段提取数据的过程，并加快提取速度。
改进的规则错误纠正界面
  • 规则错误列表中的每项规则都附带有对相关字段的应用。通过这些引用可以快速转至可能有错误的字段。
  • 错误规则列表可以停靠在文档窗口的上、下、左、右方。
规则校验
在页面概览模式中纠正文档组装错误

现已针对批处理文件文档提供了新的页面概览模式。该模式对于纠正文档组装错误非常方便，允许用户：

  • 查看文档分组的页面概览；
  • 查看重要字段值之间的不匹配情况和组装错误描述；
  • 通过将页面从一个文档移到另一个文档，使用鼠标拖放页面纠正组装错误；
  • 更改要查看详情的页面概览的比例（通过按住 Ctrl 键和使用滚轮）。
将页面组装至文档
现在可以打开有密码保护的 PDF 文件

现在可以添加 DjVu 文件
受支持的图形格式

导出

导出至 Microsoft SharePoint

现在，可以使用程序界面设置为导出至 Microsoft SharePoint。

将数据导出至 SharePoint 文档库
单击导出

如果已配置导出设置，只需单击一下按钮，即可导出文档批处理文件。这样操作员就不用执行额外的操作，并加快文档输入进程。

导出识别的数据
同时导出文档图像和数据

可以随数据导出一并导出相关文档的图像。
有用的生成文件命名规则

将数据导出至 Microsoft SharePoint 时，根据用户定义的规则自动生成文件名。您可以在文件名上附加索引字段的值，分隔符页面条形码的值等等，使用有意义的文件名便于查找所需的信息。
导出文件命名规则

新的文档和图像格式

PDF, 可搜索的 PDF/A

受支持的图形格式
导出至数据库时链接的字段

在配置导出至数据库时，附带有一个方便的链接字段的界面，用户可以快速匹配文档字段和数据库字段。

导出至数据库
用脚本描述的导出

用户可以使用 VBScript 和 JScript 脚本语言描述任何导出过程。

用脚本描述的导出
使用脚本描述导出
在导出期间更改图像分辨率

可以根据存储要求修改所导出图像的分辨率。

配置数据导出
图片导出至文件

可以将整个文档或个别图片字段的图像导出至独立的图形文件。
从批处理文件中删除已导出的文档

如果不需在批处理文件中存储已导出的文档，可以在导出后立即删除。

导出识别的数据
其他选项


通过 ABBYY FlexiCapture 9.0 处理的文档类型

ABBYY FlexiCapture 9.0 是从各种类型文档捕获单流数据的软件解决方案。

可在单一流程中处理各种文档。也可将程序设置为处理混合类型的文档，例如，包含结构化和半结构化节段的文档。文档类型仅影响系统配置，即创建文档定义的方法。操作员工作的性质不受所处理的文档类型影响。

可针对以下文档的自动化输入配置 ABBYY FlexiCapture，包括在单一流程中：

结构化 – 固定表单；
结构化表单是包含一组标记信息字段的文档，这些字段的格式、编号和布局已严格定义，不因文档实例而异。该等文档称为固定文档。例如，大多数调查问卷和应用程序表单就是固定表单。该等表单通常作为银行表单分发，并用手填写。

要在文档流中识别固定表单并从其中提取数据，则需要创建单一固定布局，该布局将告诉程序包含要提取数据的字段的位置。

根据自动输入要求创建的固定表单的处理效率最高。该等表单称为机器可读表单。要了解有关该等表单的要求及其创建方法的更多信息，请参见创建机器可读表单部分。

程序包括可用于设计机器可读表单的便利工具 – ABBYY FormDesigner 9.0（随 ABBYY FlexiCapture 9.0 一起提供）。您可在用户指南的帮助主题中阅读有关借助 ABBYY FormDesigner 9.0 设计表单的信息。

特意为结构化文档描述了创建文档定义的基本阶段。
半结构化 – 弹性表单和文档；
这些是包含一组信息字段的文档，这些字段的设计、编号和布局可能因不同的文档实例而相差很大。这些文档称为弹性文档。便如，帐单就是弹性文档，因为其通常因项目数量及项目格式而异，它们源自于不同的公司。所有帐单均有帐单号和应付金额，但位于不同的位置。

为了识别弹性表单并从其中提取数据，ABBYY FlexiCapture 9.0 使用了一种弹性布局 (FlexiLayout)。弹性表单是借助于一种称为 ABBYY FlexiLayout Studio 的特定模块创建的。有关此模块的详细信息，请参见用户指南中的帮助主题。

处理弹性文档与处理固定表单的不同之处在于创建和加载布局阶段。有关详细信息，请参见创建用于处理弹性文档的文档定义。
带自由样式设计的非结构化文档。
ABBYY FlexiCapture 9.0 可用于处理包含以自由样式显示的信息的文档，例如，合同、信函、订单和图形。程序可自动将非结构化文档识别为附录或固定表单或弹性表单，或借助于一种弹性布局识别这些文档，然后将这些文档作为 PDF 可搜索文件或图形文件导出。您可用两种方法从非结构化文档中提取索引字段：自动借助于弹性布局和通过手动输入。

处理非结构化文档的一种典型情况是：当当需要将硬拷贝存档转化为电子表单且需要提取两个或三个索引字段以进行基于属性的快速搜索。

有关详细信息，请参见处理非结构化文档。


使用 ABBYY FlexiCapture 9.0 处理文档的简要描述

使用 ABBYY FlexiCapture 9.0 处理文档简要描述

本节概述了如何使用 ABBYY FlexiCapture 9.0 处理文档。

配置程序和已配置项目操作部分中详细描述了此程序的使用过程。

项目符号 | 用于文档处理的程序配置概述
项目符号 | 通过已配置程序执行的操作概述


文档处理程序设置简述

管理员配置用于处理某类型文档的程序。要为程序处理文档作好准备，您需要创建：

  1. 项目

    项目包含处理某类型文档所需的所有设置：图像导入配置文件、文档定义和要处理的文档批处理文件。

  2. 一个或多个文档定义

    创建文档定义是项目配置中最为重要的阶段。如果您想要在单一流程中处理各种类型的文档，则需要创建多个文档定义作为单一项目的一部分。

  3. 图像导入配置文件

    创建导入配置文件是为便于并简化操作员的工作。如未导入配置文件，则每当添加图像时必须选择导入来源并配置设置。通过导入配置文件，只需单击鼠标按钮就可添加图像，并轻易地在导入来源之间切换。

  4. 文档批处理文件

    提交供处理的文档添加至批处理文件中。向批处理文件分配文档的原则是由用户定义的：您可处理单一批处理文件中所有文档或从同一日期添加的文档形成批处理文件或从在单程中扫描的批处理文件中处理文档。如果您添加没有相应批处理文件的图像，则将自动创建一个批处理文件。

阅读更多有关配置程序的的信息


分发的工作

ABBYY FlexiCapture 9.0（分布式安装）是一种分布式客户端/服务器数据捕获系统。

ABBYY FlexiCapture 9.0（分布式安装）包括多个工作站和服务器。每个工作站均负责某些处理例行程序。服务器确保整个 COMPLEX 的运行、连接工作站并在工作站之间分配工作量。处理文档之前，必须设置服务器。

以下是一些组件的概述：

  • 管理和监控控制台

    安装系统后，必须建立数据库连接并向操作员授予合适的权限。此操作是由具备管理员权限的操作员在管理和监控控制台上完成的。

    管理和监控控制台是一种控制应用程序服务器的 WEB 界面。可从以下网址在与应用程序服务器连接的任何计算机上访问此控制台： http:\\<ApplicationServer>\FlexiCapture，其中 <ApplicationServer> 是安装了应用程序服务器的计算机的名称。

    处理文档时，此控制台也可用于获取统计数据并生成报告。

  • 项目安装工作站

    下一步是创建和安装项目。为了完成此任务，工作站操作员将创建文档定义、批处理文件类型并定义处理顺序。安装系统后，项目将上传至应用程序服务器，并可开始文档处理。

  • 扫描工作站

    扫描工作站可能是要处理的文档第一个到达的工作站。此工作站的操作员创建批处理文件，并在其中添加文档图像。如有必要，可编辑添加的图像。然后，将批处理文件发送至 ABBYY FlexiCapture 供进一步处理。

    当待处理图像从热文件夹到达时，不需要使用扫描工作站。

  • 处理工作站

    处理工作站在无人照看模式中运行，其执行以下操作：从热文件夹获取图像、应用文档定义并识别文档、执行规则校验并将结果导出至用户定义的目标。

  • 数据校验工作站

    此工作站用于检查已捕获的数据。此工作站操作员依次在组视图和字段视图中审核不可靠识别的字符。然后，将批处理文件发送至校验工作站。如果出现处理错误，数据校验工作站操作员可将批处理文件或文档发送到异常队列，以供高级校验操作员在此队列对其进行处理。

  • 校验工作站

    此工作站执行的 COMPLEX 检查多于数据校验工作站。除了数据检查，此工作站可处理有问题的批处理文件或文档、纠正组装错误、检查规则并检查批处理文件完整性。

  • 处理服务器

    处理服务器在处理工作站之间分配工作量。随此服务器一起安装的还有处理服务器监控。

  • 应用程序服务器

    应用程序服务器将工作站连接在一起，确保其正常运行。安装此服务器之前，确保已安装此服务器正常运行所需的所有组件。

  • 数据库服务器

    数据库服务器存储处理操作所需的数据：有关操作员的信息、批处理文件和事件等。如果系统中存在 50 多个校验工作站，但每天处理的文档不超过 100,000 个，则可使用 Microsoft SQL Server Express Edition。对于较大的工作量，则建议使用完整版本的 Microsoft SQL Server 和/或文件存储文件夹。

  • 文件存储文件夹

    项目文件可存储在数据库中或独立的文件存储文件夹中，文件存储文件夹是一个常用文件夹，位于安装了应用程序服务器的计算机上。文件存储文件夹可在管理和监控控制台中设置。

  • 保护服务器

    系统的正常运行需要保护密钥。ABBYY FlexiCapture 9.0 License Manager 应用程序用于管理保护密钥

项目符号 | 安装 ABBYY FlexiCapture 9.0 工作站
项目符号 | 处理服务器和工作站安装
项目符号 | ABBYY FlexiCapture 9.0 体系结构和基本原则
项目符号 | 应用程序服务器安装


创建项目

要处理作为单一项目一部分的不同文档，项目必须拥有多个文档定义。如果文档流未交叉及其处理设置差异很大，则可为其创建独立的项目。

开始时，您至少需要创建一个项目。

要创建新的项目，请启动项目安装工作站并选择文件>新建项目…

项目符号 阅读更多有关如何创建项目的信息


创建文档定义概述

创建文档定义是项目配置中最为重要的部分，它决定了处理后获取的数据的质量。

文档定义描述了文档元素的位置，并指明了将用于数据提取的字段。

要创建文档定义，请运行文档定义向导：

  1. 在项目安装工作站主窗口中，选择项目>文档定义…
  2. 在文档定义对话框中，单击新建…按钮。
  3. 按照文档定义向导中的说明操作。

文档定义创建的主要阶段取决于被处理的文档类型。

为固定表单创建文档定义的主要阶段
  1. 借助于文档定义向导创建新的文档定义。在运行向导的情况下，打开将用于执行文档定义标记的文档页面图像。
  2. 标记静态元素 – 定位点和标识符，配置其属性。静态元素用于文档定义匹配和标识。通常而言，静态元素是自动检测的并分配有默认属性。
  3. 标记图像上的字段。字段用于数据提取。
  4. 配置字段属性。字段属性不但影响识别质量，而且可确定将由操作员导出并提交校验的字段值。他们指定某字段的数据类型和值范围。
  5. 为多页文档创建文档定义：添加页面并为每个页面重复所有阶段。
  6. 配置数据导出。
  7. 如有必要，您可配置在文档窗口中显示数据并根据规则对其进行检查等的方式。
  8. 使用多个文档的图像测试文档定义。

注：如果您通过 ABBYY FormDesigner 创建了机器可读表单，则您仅需要导入扩展名为 *.xfd 的文件，可跳过前三个阶段。将打开带有就绪标记的页面图像（如果您使用了 ABBYY FormDesigner 创建多页表单，则将显示多页图像）。有关详细信息，请参见为通过 ABBYY FormDesigner 创建的表单导入文档定义。

为弹性文档创建文档定义的主要阶段
  1. 使用 ABBYY FlexiLayout Studio 创建弹性描述（扩展名为 *.afl 的文档）。有关详细信息，请参见“ABBYY FlexiLayout Studio 帮助主题”。
  2. 借助于文档定义向导创建新的文档定义。在运行向导的情况下，打开文档页面图像，附上弹性描述（您已创建的 *.afl 文件）。完成向导后，字段标记将显示在图像上。
  3. 配置字段属性。按照为固定表单配置文档定义属性的程序操作。
  4. 配置数据导出。
  5. 如有必要，您可配置在文档窗口中显示数据并根据规则对其进行检查等的方式。
  6. 使用多个文档的图像测试文档定义。

对于包含带有固定表单和半结构化节段的固定类型文档，您可附上弹性说明作为文档定义的其中一个节段。从任何节段开始创建文档定义（弹性的或固定的），然后添加另一种类型的新节段。

可在单一流程中处理各种类型的文档：作为同一项目的一部分，您可为固定表单和弹性文档创建文档定义，并为混合类型的文档创建文档定义。程序将自动选择文档定义。

要处理带附录的文档，请创建文档定义并在文档定义属性中启用启用附加页面选项。参见为带附录的文档创建文档定义。

项目符号 阅读更多有关创建文档定义的信息


创建批处理文件类型

文档是在批处理文件中处理的。批处理文件在导入或扫描文档时创建。同时，每个批处理文件均分配有类型。

批处理文件类型预定了以下文档处理参数：

  • 图像预处理
  • 用其相应文档匹配文档定义
  • 批处理文件完整性检查
  • 默认的批处理文件导出
  • 批处理文件处理
项目符号 | 批处理文件类型
项目符号 | 创建文档批处理文件


创建导入配置文件

将新图像添加至批处理文件是文档处理的开始。这些可能是要扫描的纸质文档或要导入的电子图像。

图像添加方式：

  • 在处理工作站上自动添加

    要自动化图像导入，则需要在项目安装工作站上创建图像导入配置文件，并指定要使用的热文件夹。图像将从热文件夹自动导入

  • 由扫描工作站操作员手动添加 要扫描页面，扫描工作站操作员必须创建扫描配置文件。

    如果图像通常是来自不同的来源，则可创建多个导入配置文件，操作员然后可为每种来源选择合适的配置文件。

在项目安装工作站上，您可调试文档定义，只需创建批处理文件、在其中添加文档图像并对其进行处理。图像添加过程也可自动化：项目安装工作站操作员可创建使用扫描仪的图像导入配置文件。

项目符号 图像导入配置文件


创建文档批处理文件

要处理的文档放入批处理文件中。将文档组合进批处理文件的原则由用户确定。例如，用户可选择将所有文档作为一个批处理文件处理，或将同一天导入或一次扫描的所有文档组合在一起。

在从热文件夹导入图像或在扫描工作站上扫描图像时，将自动创建批处理文件。要手动创建新批处理文件，在主窗口中右键单击批处理文件列表，并从快捷方式菜单选择新建批处理文件…。

创建批处理文件后，将指定其类型，该类型决定批处理文件的处理顺序。

项目符号 阅读更多有关创建文档批处理文件的信息


已配置程序操作员的工作概述

操作员使用预配置的程序处理某些类型的文档。所有类型文档的处理过程均相同，包括以下阶段：

  1. 添加图像

    文档处理从采集图像开始 - 通过手动扫描或添加图像或通过使用扫描配置文件。采集图像所需完成的所有操作均由扫描工作站操作员执行。

  2. 开始识别过程

    识别过程是在处理工作站上自动执行的：程序根据静态元素的位置选择相应的文档定义，应用文档定义并识别在文档定义中指定的字段中的数据。

  3. 校验

    校验（数据检查过程）是操作员执行的工作量最大的一项任务。它包括：

    • 文档组装校验 - 检查文档页面是否组装正确；
    • 组校验 – 对包含用相同方法识别的字符的组执行目视检查。
    • 字段校验 – 在具备已知值范围的字段的上下文中检查不确定识的字符；
    • 规则校验 – 检查是否存在规则错误。
    • 批处理文件完整性检查 - 启动完整性脚本并纠正任何错误。

    可在两个工作站上校验文档。

    基本校验是在数据校验工作站上完成的，在此工作站中，操作员只能在组校验和字段校验模式中执行校验。

    较复杂的校验是在校验工作站上执行的，在此工作站中，除了执行数据校验，校验操作员和高级校验操作员可检查文档组装并纠正规则错误。

  4. 数据导出

    数据导出是根据文档定义中提供的设置在处理工作站上自动执行的。一旦批处理文件得以处理或得到高级校验操作员的确认后，就立即将其导出（相应的设置是针对每个批处理文件类型作出的）。

项目符号 阅读更多有关操作员如何处理已配置项目的信息


ABBYY FlexiCapture 9.0 操作员

操作员是已为其指定了文档处理角色和相应权利的 ABBYY FlexiCapture 9.0 用户。操作员的访问权利因其负责的区域而异。操作员的访问权利取决于其角色。

ABBYY FlexiCapture 9.0 提供了以下角色（每个角色均是为当前项目设置的）：

  • 扫描操作员 - 此角色的操作员可在扫描工作站上工作。
  • 数据校验操作员 - 此角色的操作员可在数据校验工作站和校验工作站上工作。
  • 校验操作员 - 此角色的操作员可在校验工作台上工作（该操作员只能访问数据检查、组装错误和规则校验）。
  • 高级校验操作员 - 此角色的操作员可在校验工作站上工作（该操作员可访问工作站上的所有功能）
  • 监控操作员 - 此角色的操作员可在管理和监控控制台上工作（该操作员可访问除开安装以外的所有功能）
  • 项目安装编辑器 - 此角色的操作员可在项目安装工作站上工作。
  • 管理员 - 此角色的操作员可在管理和监控控制台上工作（管理员可访问此控制台上的所有功能）。而且，管理员可访问系统中的任何工作站，管理员权利适用于上传到应用程序服务器的所有项目，而不仅是当前项目。

角色定义了相应操作员可访问的一组工作站，及操作员在文档处理期间可能获取的任务所属的队列。

管理员和监控操作员的角色适用于整个系统。其他操作员角色仅适用于单一项目。此外，扫描操作员、数据校验操作员和高级校验操作员这些角色对不同的批处理文件类型具备不同的访问权利。因此，一个用户可兼任以下角色：

  • 项目 A：项目安装操作员
  • 项目 B：
    • 第 1 类批处理文件：高级校验操作员
    • 第 2 类批处理文件：数据校验操作员


添加图像

图像通常是在扫描工作站上添加的（有关详细信息请参见“扫描工作站帮助”）。但是，高级校验操作员也可在其工作站上添加图像。

要在校验工作站上添加图像，请选择要将图像添加到的批处理文件或创建一个新的批处理文件。添加图像有两种方法：

  • 扫描（选择文件 > 扫描图像…扫描图像…）
  • 从图像文件（选择文件 > 加载图像…加载图像…）

要调试文档定义，则可在项目安装工作站上添加图像。

项目符号 添加页面图像


开始识别过程并分析和应用文档定义

通常，文档的识别和分析及文档定义的应用都是自动的。但是，可在校验工作站和项目安装工作站上手动启动这些操作扫描。

要识别图像，请从主菜单中选择识别 > 识别。

要分析图像，请从主菜单中选择识别 > 分析。如果文档定义与文档匹配，页面及其文档将有相应的名称。如果项目中的一个文档定义与图像不匹配，则页面将标记为未知。

系统也允许您在某一页面或整个文档中应用特定文档定义。在大多数情况下，正确创建的文档定义将与其页面自动匹配，但在某些情况下，可能需要手动完成此操作。要匹配文档定义，请选择想要与文档定义匹配的页面或文档，然后从主菜单中选择识别 > 匹本文档定义…。

项目符号 阅读有关识别的更多信息


校验

校验包括检查已识别的数据、已正确组装进文档的页面及未返回错误的规则。可在数据校验工作站（可在其上校验识别精度）和校验工作站（可在其上执行所有类型的检查）上完成校验。校验是针对任务执行的。

校验在任务到达工作站后立即开始。首先是组校验，接着是字段校验。如果文档定义不包含组校验或字段校验中的字段，则将跳过相应的校验阶段。

对于多页文档，您需要纠正可能的文档组装错误。页面将自动组装进文档中。带有组装错误的文档标有以下符号 [image] 。文档定义名称下方提供了用红色字母表示的错误描述。创建文档定义后，需要配置文档组装规则：组装顺序和重复页数。也可根据关键字段的值配置组装校验：在此情况下，关键字段的值必须在文档的所有页面中保持一致。如果存在误匹，则将显示相关消息，并用红色突出显示关键字段的值。组装错误在页面概览模式中最易纠正，在该模式中，用户可清楚地查看页面图像及其所属的不同文档。

在组校验期间，将用相同方法识别的字符的组提交供校验。操作员的任务是识别已错误识别地不同字符。然后，其在查看含有此字符的字段的图像后，纠正其值。可将无法纠正的字符标为有问题。

在字段校验期间，将带有已知值范围的字段提交供校验。操作员的任务是在整个字段的上下文范围内检查不确定识别的字符。字段校验有两种模式：单一字段视图模式（带有字符剪切）和多个同类型字段视图模式。

未履行的规则标有：黄色标记 [image] （警告）或红色标记 [image] （错误）。操作员需要检查带有规则错误的字段，如有可能，并纠正其值。

数据校验也在文档窗口中执行，双击文档或页面名称即可打开此窗口。文档窗口不显示独立字段，只显示整个文档。它也显示所有不确定识别的字符和规则错误等。

项目符号 阅读有关校验的更多信息


导出

数据是自动导出的。如有必要，校验操作员可创建独立的导出确认队列。在此情况下，在获取确认后完成导出。数据导出基于文档定义提供的设置。

要手动导出文档，请在文件 > 导出至菜单中选择一个项目：

  • 将数据导出至文件… - 将数据导出至文件
  • 将图像导出至文件… - 将图像导出至文件
  • 数据库… - 将文档导出至数据库

根据需要更改默认导出设置并导出数据。

阅读有关导出的更多信息


安装和运行程序

本节包含安装、保护和运行 ABBYY FlexiCapture 9.0. 的基本信息 同时概述了对安装的系统要求。

项目符号 | 程序保护
项目符号 | License Manager 保护密钥管理程序
项目符号 | 软件和硬件要求
项目符号 | 安装 ABBYY FlexiCapture 9.0
项目符号 | 运行程序


保护类型

使用 ABBYY FlexiCapture 9.0 要求提供有效的保护密钥。

ABBYY FlexiCapture 9.0 可能包含以下类型的保护密钥之一：

  • 硬件保护密钥
  • 软件保护密钥

硬件保护密钥

硬件保护密钥就是插入计算机 USB 端口上的 dongle (USB dongle)。

要使 ABBYY FlexiCapture 9.0 运行硬件保护密钥，您需要安装从安装程序安装相应的驱动程序。使用本程序时必须始终插入硬件保护密钥。

硬件保护密钥存储许可证参数。

使用许可证序列号可以远程激活空的硬件保护密钥。这个过程由 License Manager 实用程序完成，该实用程序通过因特网连接激活服务器，请求序列号的参数并将参数保存在密钥中。

重要事项！必须运行 SmartCard 服务才能使用硬件保护密钥。

软件保护密钥

这就是软件许可证文件。

必须在 ABBYY 激活服务器上激活许可证文件，方可对 ABBYY FlexiCapture 9.0 运行软件保护密钥。可从 License Manager 实用程序激活许可证文件。

激活许可证文件所需的信息以代码（产品 ID）的形式发送给 ABBYY，该代码根据安装了 ABBYY FlexiCapture 9.0 的计算机的信息生成。不使用个人信息生成产品 ID，该代码也不能用于识别用户身份。

激活方法：

  • 通过因特网
    激活通过因特网自动进行，只需数秒即可完成。该方法要求有效的因特网连接。
  • 通过电子邮件
    如果选择这种激活法，会自动生成一个电子邮件激活请求。将该电子邮件消息发送到指定的地址。为了确保从邮件机器人回复提示，请不要更改电子邮件的主题或正文。

对于通过因特网激活的情况，不要求执行其他任何步骤。如果通过电子邮件激活，您将从激活机器人收到一份激活的文件。将此文件保存到硬盘，运行 License Manager 实用程序，并提供用于在激活向导中保存文件的路径。

重复激活

您可以在激活了 ABBYY FlexiCapture 9.0 的计算机上重新安装该程序，次数不限。但是，如果进行重大升级、格式化硬盘或重新安装操作系统，可能要重新激活本产品。

激活服务器保存每个序列号激活次数的日志。一旦超过该序列号的特定阈值，序列号会被冻结，无法再进行激活。

您可以禁用激活过的许可证，在另一台计算机上使用。禁用许可证时，激活服务器会将该序列号的激活计数器之值减 1。

重要事项！只能在生成该产品 ID 的计算机上使用激活程序。要将程序迁移到另一台计算机，首先要禁用许可证。


License Manager

License Manager 实用程序用于管理保护密钥，及收集有关 ABBYY FlexiCapture 许可证状态的信息。

警告！License Manager 是一种管理实用程序。只有具备本地管理员权利的用户才能使用 License Manager！

License Manager 随应用程序服务器一起安装。

要启动 License Manager 实用程序：

  • 转至开始 > 程序 >ABBYY FlexiCapture 9.0 Servers > 工具，并选择 ABBYY FlexiCapture 9.0 License Manager。

管理许可证

添加新许可证

在 ABBYY FlexiCapture 9.0 License Manager 主窗口中，单击选择...。在许可证对话框中，单击激活...。输入新序列号，单击下一步。选择许可证激活方法并激活您的许可证。新许可证将显示在 License Manager 主窗口中。

更新许可证

要更新许可证，请转至许可证列表，方法是单击 License Manager 主窗口中的选择...按钮。选择要更新的许可证并单击更新许可证...。同样需要通过因特网或电子邮件激活许可证。根据屏幕上的指示进行操作。

许可证参数

在 License Manager 中，可以查看 许可证参数 。在列表中选择一个许可证，单击许可证参数...。此时将在应用程序主窗口的简要视图中显示当前许可证的参数。


许可证参数

每个许可证都有各自的序列号。许可证包含有一组确定用户是否有权限执行某些文档处理操作的参数。

许可证参数：

  • 常规 - 序列号、许可方法、虚拟机的可用性
  • 许可证用途 – 许可证类型（软件和硬件），是否可处理文档处理服务的能力。
  • 工作站，工具 - 对工作站和开发工具（FlexiLayout Studio 和 FormDesigner）数量作出的限制。
  • 时间，性能 – 使用限制
  • 处理 – 附加文档处理参数：对 FlexiLayout 和附加识别语言的使用
  • 自定义组件 – 对用户开发的组件的使用
  • 导入 – 附加导入选项
  • 导出 – 附加导出选项


软件和硬件要求

硬件要求

  1. Intel® Core™2/2 Quad/Pentium®/Celeron®/Xeon™, AMD K6/Turion™/Athlon™/Duron™/Sempron™ 2 GHz 处理器或更快处理器
  2. 每个 CPU 内核 512 MB 内存，但不小于 1 GB
  3. 硬盘空间
    • 工作站：1 GB，其中安装工作站需要 800 MB。
    • 应用程序服务器：50 MB
    • 处理服务器：50 MB
    • 数据库服务器：2 GB（使用 Microsoft SQL Server Express Edition 时）
  4. TWAIN、WIA 或 ISIS 扫描仪
  5. 用于激活序列号的有效因特网连接，用于插入硬件保护密钥的 USB 端口
  6. 至少 1024×768 显卡和显示器
  7. 键盘、鼠标或其他定位设备

软件要求

服务器：

  1. 操作系统：
    • Windows Server 2003 SP2
    • Windows Server 2008 SP2
    • Windows Server 2008 R2

    如果使用的是本地接口，操作系统必须支持相应的语言。

  2. Internet Information Server 6, 7 或 7.5（适用于应用程序服务器）
  3. .NetFramework 2.0 或更高版本
  4. Crystal Reports Basic Runtime for Visual Studio 2008
  5. Adobe Acrobat Reader 9
  6. 数据库服务器：Microsoft SQL Server 2005 或 2008

工作站

  1. 操作系统：
    • Windows XP SP2
    • Windows Vista SP2
    • Windows 7

    可在运行了 Windows Server 2008 SP2 或 Windows Server 2008 R2 的计算机上安装工作站，前提是已安装 Desktop Experience 组件。

    如果使用的是本地接口，操作系统必须支持相应的语言。

    建议使用 Arial Unicode MS 字体。其他字体可能不正确地显示 CJK 字符。

  2. 适用于监控工作站的 Microsoft Internet Explorer 6、7 或（在兼容模式）8。

服务器和工作站必须处于同一 Active Directory。


安装 ABBYY FlexiCapture 9.0

安装 ABBYY FlexiCapture 9.0 之前，建议关闭所有其他应用程序（例如，Microsoft Outlook 和 Microsoft Word 等）。

重要事项！安装程序将临时文件复制到由环境变量 %temp% 定义的文件夹。如果在安装时遇到问题，请确保可访问此文件夹并有足够的可用空间存储临时文件。

安装 ABBYY FlexiCapture 9.0 包括以下各阶段：

  1. 安装服务器。
  2. 安装工作站。

安装完毕，根据要求设置系统。

项目符号 | 安装 ABBYY FlexiCapture 9.0 服务器
项目符号 | 安装 ABBYY FlexiCapture 9.0 工作站
项目符号 | 处理服务器和工作站安装


安装 ABBYY FlexiCapture 9.0 服务器

可通过安装菜单用 ABBYY FlexiCapture 9.0 磁盘安装服务器。必须安装以下服务器：

  • 应用程序服务器
  • 数据库服务器
  • 处理服务器
  • 保护服务器

以下提供了每种服务器的安装说明。

应用程序服务器

安装应用程序服务器之前，确保已安装以下组件：

  • Net FrameWork 2.0 或更高版本
  • I nternet Information Services 6.0 或 7.0（作为 Windows 组件安装）
  • Crystal Reports
  • Microsoft SQL Server（安装 SQL 服务器时选择混合模式选项）

如果您的计算机上未安装这些组件，则可使用 ABBYY FlexiCapture 9.0 磁盘安装所有这些组件，但 Internet Information Services 除外（自动运行,2.分布式安装 > 1.安装外部组件）。

如已安装所有上述组件，则可开始安装应用程序服务器。在自动运行菜单，选择 2.分布式安装 > 2.安装服务器，按照安装向导说明进行操作。在自定义安装对话框中，选择应用程序服务器。

注： 要将安装程序复制到服务器，请在自定义安装对话框中，选择工作站安装程序选项。在此情况下，您可直接从服务器而不是从安装磁盘安装工作站。

安装应用程序服务器后，管理和监控控制台将自动启动，在其中，您可设置数据库连接并向操作员授予权利。

数据库服务器

数据库服务器存储文档处理操作所需的数据：有关操作员的信息、批处理文件和事件等。如果系统中存在 50 多个校验工作站，但每天处理的文档不超过 100,000 个，则可使用 Microsoft SQL Server Express Edition。对于较大的工作量，则建议使用完整版本的 Microsoft SQL Server 和/或文件存储文件夹。

Microsoft SQL Server Express Edition 可从 ABBYY FlexiCapture 9.0 磁盘安装：在自动运行菜单中，选择 2.分布式安装 > 1.安装外部组件。

处理服务器

处理服务器在处理工作站之间分配工作量。随此服务器一起安装的还有处理服务器监控。在此监控中，您可监控服务器的运行并设置任务优先级。

要安装处理服务器，在自动运行菜单中，选择 2.分布式安装 > 2.安装服务器，按照安装向导说明进行操作。在自定义安装对话框中，选择处理服务器。

安装处理服务器后，必须对其进行配置（即，启动服务器和添加处理工作站等）。

保护服务器

系统要求使用有效保护密钥 ，必须在 ABBYY 激活服务器上激活该密钥。可通过 License Manager 应用程序完成此操作，该程序将在您安装保护服务器后自动启动。

要安装保护服务器，在自动运行菜单中，选择 2.分布式安装 > 2.安装服务器，按照安装向导说明进行操作。在自定义安装对话框中，选择保护服务器。

通过 License Manager，您可管理许可证，即，添加、激活和选择许可证并查看其参数。


安装 ABBYY FlexiCapture 9.0 工作站

可通过安装菜单用 ABBYY FlexiCapture 9.0 磁盘安装服务器。如果在安装应用程序服务器时将所安装的工作站复制到该服务器，则也可从该服务器安装工作站。

必须安装以下服务器：

  • 项目安装工作站

  • 扫描工作站

  • 数据校验工作站

  • 校验工作站

  • 处理工作站

扫描工作站和数据校验工作站可以在局域网中工作，也可以通过因特网远程进行工作。通过使用登录和密码来进行授权。


在局域网中安装 ABBYY FlexiCapture 9.0

可在局域网中轻易地安装和使用 ABBYY FlexiCapture 9.0。

要从服务器安装此工作站，则需要在安装应用程序服务器时选择工作站安装程序选项。从服务器安装此工作站所需的文件将复制到该服务器上。

可轻易地在多台 LAN 计算机上部署 ABBYY FlexiCapture 9.0。网络安装分成两个阶段：首先，在安装应用程序服务器时将 ABBYY FlexiCapture 9.0 工作站文件复制到服务器，接着通过 LAN 从服务器安装工作站。

有关详细说明，请参见管理员指南，该指面可从自动运行菜单中找到。


更改安装模式，修复和删除 ABBYY FlexiCapture 9.0

修复和删除 ABBYY FlexiCapture 9.0

要修复受损或删除的文件：

  1. 选择开始 > 控制面板 > 添加或删除程序，然后从所安装的程序列表中选择 ABBYY FlexiCapture 9.0 Servers 或 ABBYY FlexiCapture 9.0 Stations，并单击更改。

  2. 选择修复项目，单击下一步。

要从计算机上删除 ABBYY FlexiCapture 9.0：

  1. 选择开始 > 控制面板 > 添加或删除程序，然后从所安装的程序列表中选择 ABBYY FlexiCapture 9.0 Servers 或 ABBYY FlexiCapture 9.0 Stations，并单击删除。

  2. 确认您想要删除此程序。


运行程序

服务器和处理工作站服务将自动启动。工作站和处理服务器可能在运行或已停止。可从处理服务器监控启动处理服务器。处理工作站由用户启动或由处理服务器自动启动（如已选择相应的设置）。

要监控和控制处理服务器和应用程序服务器的运行，请从开始菜单中选择以下菜单项：

  • 选择开始/程序/ABBYY FlexiCapture 9.0 Servers/处理服务器以启动处理服务器监控
  • 选择开始/程序/ABBYY FlexiCapture 9.0 Servers/管理和监控控制台以便在浏览器中打开此控制台的主页，并控制应用程序服务器。

ABBYY FlexiCapture 9.0 工作站启动方法如下：从开始/程序/ABBYY FlexiCapture 9.0 Stations 中选择相应的菜单项。

控制应用程序启动的注册表项

您可使用以下注册表项（在 Shell\StartUp 中）控制启动应用程序的方式：

  • 项目 - 设置在启动应用程序时将自动打开的项目；
  • 批处理文件 - 设置在启动应用程序时将自动打开的批处理文件（必须指定批处理文件）；
  • ProhibitChangePath - 禁止更改在操作员模式中自动打开的批处理文件和项目（将注册表项值设置为“真”）。

默认情况下，这些注册表项不是在注册表中创建的。如有必要，管理员添可将这些注册表项添加至用户操作系统的注册表中。

可使用相应的命令行启动参数覆盖注册表项。

命令行启动参数

以下参数用于从命令行启动工作站：

FlexiCapture.exe [/Station:(Setup,Validator,Verificator)] [/Project:"path to project"] [/Batch:"project name"] [/ProhibitChangePath].

  • [/Station:(Setup,Validator,Verificator)] - 指定工作站（分别为项目安装工作站、校验工作站或数据校验工作站）。如未指定模式，程序将在启动时提示您选择一种模式；
  • [/Project:"path to project"] - 设置在应用程序启动时将自动打开的项目；
  • [/Batch:"batch name"] - 设置在启动应用程序时将自动打开的批处理文件；
  • [/ProhibitChangePath] - 禁止更改在操作员模式中自动打开的批处理文件和项目。


使用在较早版本 ABBYY FormReader 中创建的模板

在 ABBYY FormReader 6.5 和 6.0 中创建的模板可导入 ABBYY FlexiCapture 9.0。

导入在较早版本中创建的文档定义后，则将导入页面标记（除开服务字段）和数据类型。数据类型复制到文档定义数据类型中的自定义文件夹。有关详细信息，请参见文本输入字段的数据类型。

重要事项！导出设置、校验规则及批处理文件中包含的图像将不会导出。

要导入在 ABBYY FormReader 6.5 或 6.0 中创建的文档定义：

  1. 启动 项目安装工作站。
  2. 创建一个新项目，或打开想要将在先前版本程序中创建的文档定义导入到的现有项目。
  3. 在主菜单中，选择项目 > 文档定义…
  4. 在文档定义对话框中，单击导入…。
  5. 在文件类型下拉列表中，选择 FormReader 6.5 批处理文件 (*.frm) 然后，选择要将文档定义导入到的批处理文件。

导入的文档定义将添加至模板列表中。如果批处理文件中的文档定义不止一个，则将导入所有模板。如果在 ABBYY FormReader 6.5 中指定了多页文档的结构，按此结构描述的模板将合并到一个多页文档定义中。

提示。
  1. 有关新旧版本中规则差异的详细信息，请参见 FormReader 6.5 and FlexiCapture 9.0 规则对比。
  2. 有关从 FormReader 6.5 假设规则、自动化规则和自动导出迁移至 FlexiCapture 9.0 脚本的建议，请参见从 FormReader 6.5 规则和导出迁移至 FlexiCapture 9.0 脚本。


ABBYY FlexiCapture 9.0 体系结构和基本原则

ABBYY FlexiCapture 9.0 是一种分布式客户端/服务器数据捕获应用程序。

ABBYY FlexiCapture 9.0 包括多个工作站和服务器。工作站由其各自的操作员操作。服务器无需人工操作。

只有设置了系统才能从文档捕获数据：

  • 建立数据库连接（在管理和监控控制台中）

  • 创建项目（由具备管理员权限的操作员在项目安装工作站上执行此操作）。

  • 安装项目（由具备项目设置编辑器权限的操作员在项目安装工作站上执行此操作）。

  • 针对每个项目设置操作员权限和角色（在管理和监控控制台中）

  • 运行处理服务器

安装系统后，操作员就可开始处理文档：

  • 添加文档图像

    在扫描工作站上，操作员可扫描新的文档或添加已扫描文档的图像。处理工作站可自动注册到达热文件夹的图像。

  • 识别已添加的文档图像

    识别是在处理工作站上自动执行的，无需操作员干预。这些任务由处理服务器分配给各个工作站。

  • 检查结果

    将在数据校验工作站和校验工作站上检查识别的数据。具备校验权限的校验工作站操作员可执行更为全面的检查：检查文档程序集和批处理文件级别的规则错误。

  • 导出结果

    结果由处理工作站自动导出。


ABBYY FlexiCapture 9.0 服务器

ABBYY FlexiCapture 9.0（分布式安装）包括工作站和服务器。工作站负责执行文档处理例行程序，而服务器确保整个 COMPLEX 的运行。COMPLEX 包括以下服务器：

  • 应用程序服务器
  • 数据库服务器
  • 处理服务器
  • 保护服务器

您也可创建文件存储文件夹（可选）以存储项目文件。


应用程序服务器

应用程序服务器可确保正确操作整个 ABBYY FlexiCapture 9.0 系统。工作站通过应用程序服务器互相通信。

我们建议先安装应用程序服务器再安装工作站。安装应用程序服务器之前，确保已安装以下组件：

  • Net Framework 2.0 或更高版本
  • Internet Information Services 5.1, 6.0 或 7.0
  • Crystal Reports（用于在管理和监控控制台中打印报告）。
  • Microsoft SQL Server（安装 SQL 服务器时选择混合模式选项）

注：如果您的计算机上未安装上述组件，则可使用 ABBYY FlexiCapture 9.0 磁盘安装所有这些组件（但 Internet Information Services 除外）。Internet Information Services 是一种 Windows 组件，随 Windows 操作系统一起发布。

重要事项！
  1. 如果您安装了防火墙，确保其不会拦截 World Wide Web Publishing Service。
  2. 要通过登录信息和密码而不是使用 Windows 验证来验证扫描工作站，您需要安装 Internet Information Server：在 FlexiCapture/Server 级别启用“基本验证”。

安装应用程序服务器后，管理和监控控制台就会自动启动（控制台与服务器一起安装），在其中您可设置数据库连接并向操作员授予访问权限。


数据库服务器

数据库服务器存储有关操作员、批处理文件、操作、任务状态、处理进度和已捕获数据的信息。

从 ABBYY FlexiCapture 9.0 磁盘中，您可安装 Microsoft SQL Server Express Edition，该软件可使您每天处理多达 100,000 页面，并使用多达 50 个校验工作站。对于较大的处理量，我们建议使用完整版本的 Microsoft SQL Server。

注：如果未使用专用“文件存储文件夹”，项目文件则将存储在数据库中。


处理服务器。

处理服务器在处理工作站之间分配工作量。处理服务器随处理服务器监控一起安装，处理服务器监控用于监控服务器并设置任务优先级。文档处理是在处理工作站上完成的。

安装处理服务器后，您应对其作出配置：启动服务器，添加、设置和启动处理工作站，并启用热文件夹。

注：启动处理服务器之前，确保已向服务器赖以运行的帐户授予处理服务器访问权限（<域名\计算机名称>$）。

以下提供了安装进程的描述。

  1. 启动处理服务器。
  2. 启动处理工作站。
  3. 启用热文件夹。

  • 要启动处理服务器：

    1. 启动处理服务器监控：选择开始 > 程序 >ABBYY FlexiCapture 9.0 Servers> 处理服务器。
    2. 在服务器树状图中，选择 ABBYY FlexiCapture 9.0 Servers，单击右键，然后选择添加服务器…
    3. 在添加处理服务器对话框中，指定服务器位置（网络主机或本地主机）。
    4. 选择操作 > 属性，提供应用程序服务器的路径 (http://server)。如果处理服务器和应用程序服务器安装在同一台计算机上，请直接指定其名称，因为使用 IP 地址 127.0.0.1 或 localhost 表达式将使处理工作站无法工作。

      注：在应用程序服务器上，启动管理和监控控制台，并向安装了处理服务器的计算机分配相应的角色。

    5. 单击 [image] 以启动应用程序服务器。

  • 要设置处理工作站：

    1. 在服务器树状图中，选择工作站并单击 [image] 。此时显示添加工作站对话框。从整个列表中选择所需的工作站。您也可指定计算机名称或其 IP 地址。您可指定计算机的名称，即使使用的是动态 IP 地址。如果无法访问 DNS 网络，请使用 IP 地址。
    2. 选择操作 > 属性并在工作站属性对话框中，指定工作站的参数：
      • 名称： - 工作站的显示名称
      • 自动开始 - 此标记指处理服务器已自动启动工作站

        注：如果经常尝试启动太多的工作站可能大大削弱处理服务器的性能。

      • 必要的磁盘空间： - 操作处理工作站所需的最小磁盘空间，如果可用磁盘空间不足，工作站将停止。
      • 最大进程数 \r\n（CPU 内核）： - 可用于任务处理的最大 CPU 内核数量
      • 允许的进程数 \r\n（CPU 内核）： - 允许用于任务处理的 CPU 内核数量；此参数是根据硬件和许可证参数自动计算的，不可更改
      • 进程优先级： - 进程的优先级
      • 可接受的任务类型： - 工作站可处理的任务类型
    3. 单击 [image] 以启动工作站。

    注：当工作站在连接到服务器时，处理服务器将向其授予处理文档的权限。

  • 要启用热文件夹：

    1. 在处理服务器树状图中，选择热文件夹。
    2. 从整个项目列表中，选择所需的项目。
    3. 从快捷方式菜单中，选择连接。

    注：只有在处理服务器上连接相应项目后，才开始从热文件夹执行图像注册。

  • 要设置处理服务器日志：
    1. 打开处理服务器显示器设置对话框，方法是选择文件 > 设置…
    2. 指定应记录的消息（错误、警告、信息消息）。
    3. 指定是否应删除有关已完成任务的信息（警告）。
    4. 指定将触发有关任务的日志信息的消息。

      注：建议在正常操作系统期间不要禁用警告选项，因为这可能导致数据堆积，从而降低处理服务器监控的性能。只能在设置和调整系统时禁用此选项。


保护服务器

系统要求使用有效保护密钥，必须在 ABBYY 激活服务器上激活该密钥。

ABBYY FlexiCapture 9.0 支持两种类型的保护密钥：

  • 硬件保护密钥
  • 软件保护密钥

硬件保护密钥

硬件保护密钥是用于插入计算机 USB 端口上的“dongle”。

必须将硬件保护密钥插入安装了保护服务器的计算机上的 USB 端口。只能通过因特网自动激活硬件保护密钥。

许可证参数存储在保护密钥中。

重要事项！为了确保硬件保护密钥的正常运行，务必运行标准 SmartCard。

软件保护密钥

软件保护密钥是一种计算机文件（“许可证文件”）。

软件保护密钥必须在 ABBYY 激活服务器上激活。该激活操作在 ABBYY FlexiCapture 9.0 License Manager（在安装保护服务器后自动启动）中执行。

执行激活所需的数据以产品 ID 形式发送至服务器，产品 ID 是根据安装了 ABBYY FlexiCapture 9.0 的计算机的信息生成的。不使用个人信息生成产品 ID，该代码也不能用于识别用户身份。

激活方法：

  • 通过因特网自动激活（建议）

    通过因特网激活只需数秒就可完成，需要有效的因特网连接。

  • 通过电子邮件

    在安装了保护服务器的计算机上自动生成电子邮件消息。此电子邮件消息包含激活许可证文件所需的数据。为了确保激活服务器快速作出响应，请不要更改此消息的文本。

  • 通过另一台计算机的电子邮件

    要从另一台计算机发送激活电子邮件消息，必须首先在安装了保护服务器的计算机上生成电子邮件消息。然后，将此电子邮件消息的正文粘贴对另一台计算机上的电子邮件，并将其发送至 ABBYY 激活服务器。为了确保激活服务器快速作出响应，请不要更改此消息的文本或标题。

重复激活

您可在一台和相同的计算机上重新安装保护服务器，次数不限，无需重新激活。但是，如果您对硬件作出重大更改、格式化了硬盘驱动器或重新安装了操作系统，则可能需要再次激活许可证文件。

对于每个序列号，激活次数将受到监控。如果超过最大激活次数，您将再也无法激活许可证文件。您可通过启动停用程序发布已激活的许可证。这将增加激活次数。

管理许可证

可添加、激活、选择和停用许可证，并可在随保护服务器一起安装的 ABBYY FlexiCapture 9.0 许可证管理器中查看每个许可证的信息。.

要启动 ABBYY FlexiCapture 9.0 License Manager：

  • 选择开始 > 程序 > ABBYY FlexiCapture 9.0 Servers > 工具 > ABBYY FlexiCapture 9.0 License Manager。

添加新许可证

要添加许可证：

  1. 在 ABBYY FlexiCapture 9.0 License Manager 主窗口中，单击选择。
  2. 在“许可证”对话框中，单击激活...
  3. 输入新序列号，单击下一步，然后按照 ABBYY FlexiCapture 9.0 激活向导中说明进行操作。

    注：如果没有添加许可证，当您启动 ABBYY FlexiCapture 9.0 License Manager 时，ABBYY FlexiCapture 9.0 激活向导将自动启动，程序将提示您输入序列号。

更新许可证

从 ABBYY 注册服务器加载最新许可证信息，即可更新许可证：

  1. 在 ABBYY FlexiCapture 9.0 License Manager 主窗口中，单击选择...。
  2. 在许可证...对话框中，选择要更新的许可证，并单击更新...。
  3. 选择一种更新方法更新许可证。

停用许可证

要停用（“释放”）许可证：

  1. 在 ABBYY FlexiCapture 9.0 License Manager 主窗口中，单击选择...。
  2. 在许可证...对话框中，选择要停用的许可证，并单击停用...。


文件存储文件夹

项目文件（即，文档、文档定义等）可存储在数据库中或专用的文件存储文件夹中。应在管理和监控控制台中指定文件存储文件夹。文件存储文件夹应与应用程序服务器位于同一计算机上。确保指定文件存储文件夹的本地（即 c:\\...）路径而不是网络路径（即 \\server\...）。如果未指定文件存储文件夹，文件则存储在数据库中。

选择文件存储文件夹或数据库来存储项目文件并不影响系统的性能或安全性。但是，使用“文件存储文件夹”意味着您可在应用程序服务器上存储大量更多的项目文档（图像），但 Microsoft SQL Server Express Edition 不同，其不对所存储的文件的总大小作出限制。


ABBYY FlexiCapture 9.0 工作站

COMPLEX 包括以下工作站：

  • 项目安装工作站

  • 扫描工作站

  • 处理工作站

  • 数据校验工作站

  • 校验工作站

COMPLEX 也包括管理和监控控制台。


项目安装工作站

项目安装工作站是创建、安装和调试项目的位置。项目指定文档定义、批处理文件类型、图像导入、文档导出和处理选项。

要创建和安装项目：

  1. 创建一个项目，并将其上传至应用程序服务器。
  2. 在服务器上打开此项目并设置其属性。
  3. 创建文档定义。
  4. 创建批处理文件类型。
  5. 参见图像导入配置文件。

重要事项！只有管理员才能创建新项目。项目安装操作员只能安装已创建的项目。

  1. 创建新项目

    当管理员建立数据库连接后，其应：

    1. 启动项目安装工作站（开始 > 程序 > ABBYY FlexiCapture 9.0 Stations > 项目安装工作站）
    2. 创建项目
    3. 将此项目上传至应用程序服务器

    将项目上传至应用程序服务器后，管理员可向项目安装操作员授予项目安装权限。

  2. 项目属性

    要设置项目属性，项目安装操作员应：

    1. 启动项目安装工作站。
    2. 选择文件>从服务器打开项目…指定应用程序服务器的路径。此时出现一个从应用程序服务器打开现有项目对话框。
    3. 从所有可用项目的列表中，选择所需的项目。
    4. 选择项目>项目属性…并指定项目属性：图像预处理选项、文档识别选项、完整性检查规则、导出设置和处理选项。

  3. 创建文档定义

    要确定如何识别和处理文档类型，项目安装操作员应创建文档定义。文档定义包括有关文档结构、其字段位置、导出和文档处理选项等的信息。文档定义是在文档定义向导中创建的，其属性是在文档定义编辑器中指定的。

  4. 创建批处理文件类型

    ABBYY FlexiCapture 9.0 可处理批处理文件中的文档：在处理之前，创建批处理文件，将文档图像放在此批处理文件中，然后对此批处理文件执行各个处理阶段。通常，批处理文件包含一次处理的所有文档或从特定文件夹导入的所有文档。文档处理设置是在批处理文件类型中指定的。您可为最常用的各组处理选项创建多个批处理文件类型。在此情况下，每当操作员创建新批处理文件时，均可指定其类型，并将根据为此类型批处理文件指定的设置处理此批处理文件。

    注：

    • 如果未创建批处理文件类型，则按照为整个项目指定的<默认>设置处理所有批处理文件。
    • 可批量或逐一校验或导出文档。这也在批处理文件类型设置中指定。

  5. 创建图像导入配置文件

    要自动化图像添加过程，可在项目安装工作站上创建图像导入配置文件。有两种类型的配置文件可用：一个涉及使用扫描仪，另一个涉及使用热文件夹。扫描仪配置文件可用于调试项目。热文件夹配置文件在处理工作站上自动导入图像。

    注：

    • 扫描仪配置文件仅可从项目安装工作站上获取。
    • 要使用热文件夹，必须在处理服务器监控上为此项目启用热文件夹。


管理和监控控制台

重要事项！为了正确操作管理和监控控制台，请确保您的浏览器允许使用 JavaScript 和弹出窗口。

管理和监控控制台用于设置整个 COMPLEX 并监控其运行。

管理和监控控制台是一种可供应用程序服务器用户使用的 WEB 界面，提供了通过因特网浏览器访问服务器的权限。可在可访问应用程序服务器的任何计算机上打开此控制台，只需在浏览器中键入 http://<AppServer>/FlexiCapture，其中应使用安装了应用程序服务器的计算机名称替换 <AppServer>。

安装应用程序服务器后将立即启动管理和监控控制台，以便操作员建立数据库连接。操作员可连接至现有数据库，也可创建一个新数据库。

注：将自动向在应用程序服务器上创建数据库的操作员授予管理员权限。

要建立数据库连接，请选择选项 > 应用程序服务器，并单击连接至现有数据库或创建新数据库。然后，用以下数据填写各字段：

  • SQL 服务器实例的名称

  • 数据库名称

  • 访问数据库时要使用的验证类型

  • 是否应使用文件存储文件夹

    文件存储文件夹是安装了应用程序服务器的计算机上的一个本地文件夹，存储了项目文件。或者，也可将项目文件存储在数据库中。如果应分开存储项目文件，请选择使用外部文件存储，并提供相应本地文件夹的路径。

更新时，您可能需要更改数据库的结构。在此情况下，请使用更新随附的脚本。要运行此脚本，请单击应用更新按钮，提供脚本文件的路径。

除了连接至数据库，管理员必须设置用户访问权限并分配操作员角色。

重要事项！向管理员、监控操作员和处理服务器授予的权限适用于所有项目。因此，在建立数据库连接后可立即设置这些权限。将针对每个项目授予所有其他操作员的权限。因此，向其他操作员授予权限之前，管理员必须创建项目，并将这些项目导出至应用程序服务器。除非应用程序服务器上存在项目，否则管理员将无法添加操作员且无法向其授予访问权限。

设置 COMPLEX 后，管理和监控控制台就可用于监控 COMPLEX 的运行（即，跟踪 COMPLEX 的当前状态并生成报告）。根据 COMPLEX 当前状态的信息，管理员将在配置中作出更改或重新分配资源。

管理员可审核以下状态：

  • 批处理文件 - 控制台显示批处理文件列表、批处理文件统计信息和活动的处理阶段

  • 任务 - 控制台显示任务列表和任务统计信息

  • 会话 - 控制台显示已打开会话的列表

  • 当前处理状态 - 控制台显示处理阶段的列表及每个阶段中的文档或批处理文件数量

  • 事件日志 - 控制台显示事件列表及有关每个事件的信息

  • 错误日志 - 控制台显示错误列表及每个错误的描述

要审核这些状态，请选择一个项目，然后从监控菜单中选择相应的项目。可在屏查看和打印所生成的列表，并以 CSV 格式将其保存。

监控操作员不但可获取有关 COMPLEX 当前状态的信息，而且可生成有关 COMPLEX 运行的报告。

可创建以下报告：

  • 常规文档处理报告 - 为每个项目创建的独立报告

  • 完整数据校验操作员报告

  • 常规数据校验操作员报告

  • 完整校验操作员报告

  • 常规校验操作员报告

注：校验操作员报告和数据校验操作员报告是根据所有项目生成的。


扫描工作站

重要事项！有关工作站的详细信息，请参见“扫描工作站帮助”。

扫描工作站旨在为扫描较大数量的文档提供便利。扫描工作站既可在局域网中工作，也可以在远程网络中工作（通过因特网）。通过使用登录和密码来进行授权。

扫描工作站可能是文档第一个到达的工作站。此工作站由扫描操作员操作，扫描操作员可使用以下两种方法之一添加图像：

  • 创建和使用扫描配置文件并/或手动添加图像
  • 添加文件夹中已扫描的图像

配置文件自动化图像采集过程，这样，操作员只需单击鼠标就可使用先前作出的设置添加图像。

除了添加图像，扫描操作员也可编辑添加的图像（有关详细信息，请参见扫描工作站帮助）。

扫描操作员执行的操作的典型顺序如下：

  • 启动扫描工作站
  • 如果工作站上有未完成的批处理文件，继续处理此批处理文件。否则，创建新的批处理文件。
  • 如已创建导入配置文件，则选择合适的配置文件并启动扫描过程。如果没有现成的配置文件，则将创建必要的配置文件并使用它来扫描文档。
  • 添加图像时，操作员可控制其视觉属性，并在必要时对其进行编辑。如果这将无法解决问题，操作员可更改扫描选项，并重新扫描有缺陷的页面。
  • 控制文档组装的质量，并纠正任何组装错误。
  • 当批处理文件准备就绪后，指定其注册参数并将其发送至服务器。
  • 针对下一批图像重复上述步骤，或关闭扫描工作站。


数据校验工作站

数据校验工作站用于校验不可靠识别的字符。数据校验操作员依次在组校验模式和字段校验模式中审核不确定的字符。

在组校验中，操作员将看到各组相似的字符。操作员应检查任何不正确识别的字符并将其纠正，如有必要，将其与相应字段的图像进行对比。如果由于任何原因无法纠正某字符，操作员可将其标记为不确定。

在字段校验中，操作员将看到值范围预先未知的字段。操作员应校验不确定的字符，方法是在其上下文件中对其进行检查。字段校验中有两个视图：单字段随提取的字符一起显示，多字段显示同一屏幕中所有相同的字段。

注：除了数据校验操作员，校验操作员和初级校验操作员也可访问数据校验工作站。无论是哪种操作员在此工作站上操作，其均只能访问数据校验队列。

要开始数据校验：

  1. 启动数据校验工作站：选择开始 > 程序 > ABBYY FlexiCapture 9.0 Stations > 数据校验工作站。
  2. 选择相应的项目。
  3. 单击 [image] 以开始校验。

    注：首先是组校验，接着是字段校验。如果文档定义没有包括在组校验或字段校验中的字段，则不将该文档排队以供校验。

完成数据校验后，就将批处理文件或一组文档发送至校验工作站。

如果数据校验操作员处理文档时遇到问题，则其可单击 [image] 以将批处理文件或文档发送至异常队列。


校验工作站

校验工作站所允许的 COMPLEX 检查多于数据校验工作站。除了校验数据，此工作站还允许其操作员处理有问题的批处理文件或文档、纠正组装错误、应用数据规则并检查批处理文件的完整性。

校验工作站可由以下操作员打开：数据校验操作员、校验操作员和高级校验操作员。取决于操作员在登录工作站时选择的角色，他们可从不同的队列查看和处理任务：

  • 数据校验操作员只能从数据校验队列处理任务
  • 校验操作员可从任何队列（除开异常队列和导出确认队列）处理任务
  • 高级校验操作员可从任何队列处理任务。除了队列列表，高级校验操作员还可访问批处理文件列表。

以下队列可在校验工作站上找到：

  • <任何>

    此队列包括在任何其他队列中创建的任务。可向操作员提供的队列的列表取决于操作员在登录工作站时选择的角色。任务按其优先级顺序执行。

  • 文档组装检查

    对于多页文档，可能需要纠正文档组装错误。文档组装规则与文档定义一起创建，定义了页面顺序及重复的页数。此外，可根据关键字段值检查文档组装，在此情况下，关键字段值必须在文档的所有页上均一致。如果此值出现不一致，则将显示错误消息，并将此值用红色突出显示。组装错误在页面缩略图视图中最易于纠正，因为该视图为所有页面提供了一个清晰的概览视图，所有页面属于哪一个文档一目了然。

  • 数据校验

    数据校验过程随组校验过程一起开始，其后是字段校验过程。如果文档定义没有包括在组或字段校验中的字段，则不将该文档放入数据校验队列中。

  • 校验

    如果未通过处理参数指定特定队列，校验队列则包含带有文档组装错误、数据校验错误和规则错误的所有任务。

  • 批处理文件完整性检查

    数据完整性检查规则在批处理文件文档数据之间建立链接。

  • 导出确认

    可手动或自动导出数据。如果处理参数未定义独立的导出确认队列，则在无人照看模式中自动导出批处理文件或文档。如果处理参数包括独立的导出确认队列，则高级校验操作员必须首先从此队列接收任务，然后将该任务发回队列中。如果出现错误，则自动将批处理文件或文档发送至异常队列。

  • 异常

    有问题的批处理文件或文档（操作员无法处理的）将发送至异常队列。

注：如果未使用批处理文件类型，则将为批处理文件类型或整个项目指定文档处理参数（即独立队列）。

要执行此任务，请在队列列表中选择所需队列，并单击 [image] 。

单击 [image] 或任务>自动获取任务，可启用获取任务的自动模式。

此工作站也提供 详细信息 和 缩略图 视图。在 详细信息 视图中，将显示活动任务的文档。在 缩略图 视图中，将显示批处理文件的所有文档，不属于活动任务的页面将用灰色突出显示。


处理工作站

处理工作站在无人照看模式中运行，处理以下任务：从热文件夹加载图像、应用文档定义和识别文档、执行规则校验并将数据导出至预定义的存储位置。处理工作站从处理服务器接收任务。

要查看当前任务：

  1. 启动处理工作站：选择开始 > 程序 > ABBYY FlexiCapture 9.0 Servers>处理工作站。此时打开连接至工作站对话框。
  2. 查找处理服务器。
    • 网络主机及安装了处理服务器的计算机的名称（如果处理服务器和处理工作站安装在不同的计算机上）
    • 本地主机（如果处理服务器和处理工作站安装在同一计算机上）

所有活动的任务均将显示在任务列中。将针以每个任务显示以下信息：启动时间、进度、状态、优先级、工作站和创建者。单击所需列的名称，即可对任务进行排序。

注：只有具备管理员权限的操作员才能启动处理工作站并监控任务（即查看任务详细信息、取消任务并查看日志）。


处理阶段和队列

文档分成多个阶段处理，在每个阶段执行某些例行程序（即可自动执行，也可借助于操作员）。阶段具备特定顺序，文档只有经历了上一阶段才能进入下一特定阶段。整体而言，以下阶段是必需的：添加图像、识别、校验和导出。

在每个阶段，均将形成一个处理队列。随着处理过程的进度，文档从第一个队列（识别）移至最后一个队列（导出）。队列通常与处理阶段相对应，但也存在特定队列，例如，异常队列。

当处理量较大时，可将校验阶段分成多个较小的阶段，由其自己的操作员处理每个较小的阶段。换言之，您可为数据校验、校验、文档组装检查和导出确认创建独立的队列。

所有处理阶段和相应的队列均是可选的，但识别和导出阶段除外。将在项目安装工作站上为每个批处理文件类型指定是否需要某一队列。

队列

  1. 识别

    在必要队列中，只处理整个批处理文件。识别阶段在处理工作站上自动完成。

  2. 文档组装检查

    可选队列。将在校验工作站上处理此队列中的任务。如果未在设置中指定独立的文档组装队列，则在校验队列中处理有错误的批处理文件或文档。

  3. 数据校验

    可选队列。可在数据校验工作站或在校验工作站上处理此队列的任务。如果某些字符的百分比小于指定的阈值，则将文档发送至数据校验。

  4. 校验

    可选队列。如果未指定独立队列，则将带有文档组装错误、数据错误和规则错误的所有任务发送至校验队列。将在校验工作站上处理此队列中的任务。

  5. 批处理文件完整性检查

    可选队列。带有完整性错误的批处理文件将发送至此队列。完整性检查选项在设置批处理文件类型时通过脚本指定。将在校验工作站上处理此队列中的任务。

  6. 导出确认

    可选队列，可确保提高已捕获数据的精度。只有在操作员确认适合执行导出时才导出批处理文件或文档。将在校验工作站上处理此队列中的任务。

  7. 导出

    必要队列。将在处理工作站上处理此队列中的任务。

  8. 异常

    必要队列。有错误的文档在自动化处理后将发送至队列。而且，操作员也可将由于某些原因而无法处理的文档发送至此队列。

注：在批处理文件类型设置中，您可指定是否应校验批处理文件且是完全将其导出还是逐个文档导出。


工作流

无需人工干预或校验操作员的协助就可自动处理文档。

在有人照看模式中，无需操作员干预就可处理和导出文档。如果出现错误，可将未识别的图像保存至专用文件夹，可在导出选项卡中选择该文件夹，成功处理的文档将自动导出。在无人照看模式中，可完整地处理批处理文件。

如果需要人工干预，则必须设置批处理文件处理参数，例如，校验和导出。此外，文档校验可分成各个独立阶段，将每个阶段放进独立的队列中。文档（或整个批处理文件）可自动经历这些阶段（如果没有处理错误）或在其由操作员检查并作出纠正后。如果在无人照看模式中处理的文档出现错误，则将该文档发送至异常队列。同样，操作员可将文档发送至异常队列。

将针对每个批处理文件类型指定处理顺序。创建新批处理文件后，就会向其分配一种类型，该类型确定处理顺序。

如果未创建批处理文件类型，则按照为整个项目指定的<默认>设置处理所有批处理文件。


配置程序

在批量输入文档之前，需要配置程序以处理所需类型的文档。可在项目安装工作站上配置所有必要的设置。

要配置文档处理，请创建包含以下内容的项目：

  • 图像导入配置文件
  • 一个或多个文档定义
  • 用于处理的批处理文件类型。

您可将各种文档定义纳入项目中，在此情况下，各种文档将作为同一项目的一部分得以处理，具体取决于所应用的文档定义。但是，如果文档流程未交叉，您可为其创建独立的项目。

项目符号 | 创建项目
项目符号 | 文档定义
项目符号 | 图像导入配置文件
项目符号 | 默认导出设置
项目符号 | Batch_Types
项目符号 | 文档批处理文件
项目符号 | 索引字段


ABBYY FlexiCapture 9.0 设置

要设置 ABBYY FlexiCapture for 以执行分布式文档处理：

  1. 在管理和监控控制台中设置应用程序服务器。
  2. 将项目上传至应用程序服务器：
  3. 在管理和监控控制台中向操作员授予访问权限。
  4. 在处理服务器监控中设置处理服务器和处理工作站。
  5. 在项目安装工作站中设置工作流。


应用程序服务器设置

应用程序服务器由系统管理员在管理和监控控制台中设置。

要设置应用程序服务器：启动管理和监控控制台，转至创建新数据库页面（设置 > 应用程序服务器，创建新数据库按钮）并指定以下内容：

  • SQL 服务器实例名称
  • 数据库名称
  • 验证类型

  • 设置文件存储

注：要将项目文件存储到的文件夹必须驻留在安装了应用程序服务器的计算机上。

可将项目文件直接存储在数据库或专用的文件存储文件夹中。如果未指定文件存储文件夹，文件则存储在数据库中。将文件存储在数据库中有助于备份，但会增加数据库的大小。


向用户授予访问权限

访问权限是由管理员在管理和监控控制台中授予的。权限授予用户或进程。

处理服务器、监控操作员和管理员角色与项目无关。所有其他访问权限仅适用于单个项目。因此，您首先需要创建项目。

注：

  • 管理员角色自动授予创建数据库的用户。
  • 对处理服务器的访问权限授予该服务器赖以运行的帐户（<域名\计算机名称>$）。

管理员在项目安装工作站上创建项目并将其上传到应用程序服务器后，就可向处理此项目的操作员授予访问权限。角色和访问权限可授予单个用户或组。在后一种情况下，如果将某用户纳入组中，该用户就会自动获取授予该组的所有访问权限。

要创建新的用户帐户：

  1. 通过以下方法启动管理和监控控制台：选择开始 > 程序 > ABBYY FlexiCapture 9.0 服务器 > 管理和监控控制台。
  2. 选择设置 > 用户和组。
  3. 从整个项目列表中，选择项目。
  4. 通过指定用户域名（添加字段）添加新用户帐户，并单击用户。
  5. 指定角色（例如，扫描操作员）并指定可供该操作员访问的批处理文件类型。

注：当用户试图登录工作站或启动处理服务器时，用户或处理帐户将显示在用户列表中。接着，管理员向用户分配角色。

要创建组：

  1. 通过以下方法启动管理和监控控制台：选择开始 > 程序 > ABBYY FlexiCapture 9.0 服务器 > 管理和监控控制台。
  2. 选择设置 > 用户和组。
  3. 从整个项目列表中，选择项目。
  4. 指定组名称（添加字段）以添加新组帐户，并单击组。
  5. 指定访问权限和组，并指定可供此组操作员访问的批处理文件类型。
  6. 将用户添加至组。


处理服务器和处理工作站设置

处理服务器是在“处理服务器监控”中设置的，处理服务器监控是一种随该服务器自动安装的应用程序。

要设置处理服务器：

  1. 启动处理服务器监控：选择开始 > 程序 > ABBYY FlexiCapture 9.0 服务器 > 处理服务器。
  2. 添加服务器：选择操作 >添加服务器…
  3. 提供应用程序服务器的路径（操作 > 属性）。
  4. 启动处理服务器（操作 > 启动）

    注：要启动处理服务器，管理员必须分配该服务器赖以运行的用户帐户权限（即 < 域名\ 计算机名称 > $）。

  5. 创建处理工作站的列表，指定其属性，并将其启动：
  • 要添加工作站，转至处理服务器树状图中的工作站节点，选择操作 > 添加工作站…
  • 要设置工作站，请在工作站整体列表中将其选定，并从其快捷方式菜单中，选择属性。
  • 指定必要的工作站参数：启动、优先级、可能的任务类型等。

    重要事项！最大同时进程数据（最大进程数 \r\n（CPU 内核）：字段）不得大于允许的进程数（允许的进程数 \r\n（CPU 内核）：字段）。同时，所有处理工作站上的同时进程总数不得大于许可证允许的数量。如果尝试启动多个工作站，则其将不运行。

处理工作站赖以运行的帐户与处理服务器相同。处理服务器在工作站与其连接时向工作站授予权限。

在处理服务器监控中，您也可设置热文件夹。

要启用热文件夹：

  1. 在处理服务器树状图中，选择热文件夹。
  2. 从整个项目列表中，选择所需的项目。
  3. 在主窗口中，选择操作 > 启用。

注：只有在处理服务器上连接相应项目后，才开始从热文件夹执行图像注册。

此处，处理服务器监控可供您设置任务优先级并跟踪任务（在处理服务器树状图的任务节点）中。


工作流设置

将为每个批处理文件类型指定应处理批处理文件的顺序。创建批处理文件后，就会指定其类型，并根据此批处理文件类型的设置处理该批处理文件。

如果未创建批处理文件类型，则按照为整个项目指定的<默认>设置处理所有批处理文件（项目 > 项目属性…，工作流选项卡）。

工作流是在批处理文件类型属性对话框的工作流选项卡中设置的。

  1. 选择无人照看或通过校验模式。
    • 在无人照看模式中，无需操作员的干预，文档就会得以处理和导出。如果出现处理错误，可将未识别的图像保存在专用文件夹（这是在导出选项卡中指定的）中，并将自动导出成功处理的文档。在无人照看模式中，可完整地处理批处理文件。
    • 在通过校验模式中，需要指定校验参数、是应导出整个批处理文件还是导出单一文件并分别为不同校验阶段指定队列。
  2. 校验整个批处理文件
    • 如已选择此选项，则将发送整个批处理文件供校验（即，将不转发此批处理文件，除非其所有文档均已识别）。
    • 如未选择此选项，则只要此批处理文件每个文档已得以识别，就会将将其发送供校验。
  3. 当不确定字符百分比等于或小于以下项时跳过校验和数据校验 - 仅在存在错误或突出显示的字符数高于 每文档百分比字段中指定的值时，方可发送文档进行校验。
    注：如果为字段校验设置中的任何字段选择了始终，则在任何情况下都会发送文档进行校验。
  4. 导出整个批处理文件 - 只有批处理文件的所有文档均得以处理后才导出该批处理文件。
  5. 导出之前删除处理的文档 - 导出已处理文档之后自动将其删除。
  6. 将独立队列用于：
    • 文档组装检查
    • 数据校验
    • 批处理文件完整性检查
    • 导出确认

    创建独立的校验队列会将校验阶段分成多个子阶段，每个子阶段均由其自己的操作员处理。因此，每个操作员将仅负责一项任务：数据校验、文档组装检查等。

    如果所有上述队列均由一位操作员处理，则其将必须依次执行所有任务：从文档组装检查队列中获取文档、检查组装、从数据校验队列中获取数据及对其进行校验等。


创建项目

只有创建了项目才能开始处理文档。项目包括：

  • 图像导入配置文件
  • 一个或多个文档定义
  • 批处理文件类型

创建项目后，将其上传至应用程序服务器。

项目是在项目安装工作站上创建的，并通过管理和监控控制台上传至应用程序服务器。

要创建新项目，请选择文件 > 新建项目…

项目符号 | 项目属性
项目符号 | 文档定义
项目符号 | 图像导入配置文件
项目符号 | 批处理文件类型
项目符号 | 批处理文件


项目属性

当您在主窗口中选择项目 > 项目属性…时，将会打开一个独立的对话框，您可在该对话框中查看和更改项目的属性。

常规选项卡显示了项目名称、项目文件路径及项目描述。您也可以在导出根文件夹字段中指定导出至文件的根文件夹。

图像预处理选项卡显示了图像预处理选项。您可以根据需要更改这些选项。详情请参见图像预处理选项。

识别选项卡包含识别期间删除空白页选项。如果您想要在识别期间删除空白页，请选择此选项。在此选项卡中，您也可将 FlexiLayout 分类器添加至项目中。

如果您想要运行将在导出之前检查批处理文件完整性的脚本，请在完整性检查选项卡中，选择导出之前运行批处理文件完整检查。如果此脚本需要编辑，请单击编辑检查脚本…。

导出选项卡显示了默认导出设置。您可以根据需要更改这些设置。导出后运行脚本 启用导出处理程序。有关导出处理程序的更多信息，请参见使用脚本描述导出和描述导出的样本脚本。要导出未识别的文档，请选择 导出未识别的文档 并在 未识别的文档导出 对话框中指定导出设置，当您单击编辑…

（该选项位于工作流选项卡上）时，将会出现此对话框，您可设置工作流（针对“默认”批处理文件类型）。有关详情请参见工作流设置。


批处理文件类型

通过 ABBYY FlexiCapture 9.0 可处理批处理文件中的文档：在处理之前，创建一个批处理文件并将文档图像添加至该批处理文件。在导入图像时（即，在扫描文档或导入已扫描文档的图像时）可以自动或手动创建批处理文件。用于文档处理的设置是针对每种批处理文件类型逐一指定的。您可以为最常用的多组处理设置创建多个批处理文件类型。在此情况下，操作员只需选择相应的批处理文件类型即可。

批处理文件类型定义以下处理设置：

  • 图像预处理
  • 文档定义及其应用顺序
  • 批处理文件完整性检查
  • 默认的批处理文件导出
  • 批处理文件处理

批处理文件类型也定义了注册参数（即表征批处理文件的文本信息）列表。

批处理文件是由项目安装编辑器为每个项目逐一创建的。

要创建批处理文件类型：

  1. 启动项目安装工作站：选择开始 > 程序 > ABBYY FlexiCapture 9.0 工作站 > 项目安装工作站，并从服务器打开项目（文件 > 从服务器打开项目…）
  2. 打开批处理文件类型对话框（通过选择项目 > 批处理文件类型… ）
  3. 单击新建，根据屏幕说明进行操作。

您所创建的批处理文件类型将自动上传至应用程序服务器，并可供操作员访问。

注：要使操作员处理新建的批处理文件类型，管理员应指定可供每个操作员访问的批处理文件类型。可在向操作员分配角色时完成此操作。


注册参数

注册参数是可以用于识别特定批处理文件或文档的文本属性。这些属性可以由扫描日期、扫描操作员姓名等表示。注册参数可以是必填参数，也可以是选填参数。

可以在创建期间将注册参数分配给某个批处理文件（如果使用 导入配置文件自动创建批处理文件）。也可以将注册参数分配给扫描工作站上的多个批处理文件和文档，并随图像一同发送至 ABBYY FlexiCapture。

可以分别在“批处理文件属性”或“文档属性”对话框的 注册参数 标签上配置注册参数（单击快捷菜单上的 属性… ）。


将项目上传至应用程序服务器

创建项目后，需要将其上传至应用程序服务器。这公将项目设置、文档定义文件、词典和其他服务数据复制应用程序服务器。

重要事项！当您上传项目时，不将在项目中创建的批处理文件复制到应用程序服务器。

要将项目上传至应用程序服务器，请从项目安装工作站的主菜单中选择文件 > 将项目上传至服务器…。

注：只有管理员才能创建新项目。项目安装操作员只能安装已创建的项目。因此，在将项目上传至应用程序服务器后且管理员向工作站操作员授予必要的权限（此操作在管理和监控控制台中完成）后，项目安装操作员必须在应用程序服务器上打开该项目，方法是选择文件 > 从服务器打开项目…并作出必要的设置（例如，创建文档定义、导入配置文件和指定导出设置等）。


文档定义

创建文档定义是项目配置中最为重要的阶段，它决定了处理后获取的数据的质量。

文档定义只能在项目安装工作站上创建。

文档定义描述了文档元素的位置，并指明了将用于数据提取的字段。创建文档定义时，将指定字段属性及其值范围。也可配置数据导出设置。

要开始创建文档定义，请运行文档定义向导：

  1. 在 ABBYY FlexiCapture 9.0 的主菜单中，选择项目 > 文档定义…
  2. 在打开的文档定义对话框中，单击新建…按钮。
  3. 按照文档定义向导中的说明操作。
项目符号 | 文档定义向导
项目符号 | 自动检测字段和静态元素
项目符号 | 静态元素
项目符号 | 创建文档定义字段
项目符号 | 字段属性
项目符号 | 规则校验
项目符号 | 配置数据导出
项目符号 | 在文档窗口中配置数据显示
项目符号 | 文档定义属性
项目符号 | 为通过 ABBYY FormDesigner 创建的表单导入文档定义
项目符号 | 为多页文档创建文档定义
项目符号 | 为弹性文档处理创建文档定义
项目符号 | 为带附录的文档创建文档定义
项目符号 | 处理非结构化文档
项目符号 | 编辑和发布文档定义
项目符号 | 测试文档定义


文档定义向导

要创建新的文档定义，请选择主菜单项项目>文档定义…并在文档定义对话框中，单击新建…按钮。此时将打开新的文档定义创建向导。

  1. 在创建新的文档定义对话框中，指定主要文档定义设置：使各和注翻译及所用的语言（语言（区域）：）和书写风格（书写风格：）。默认情况下，下拉列表仅包含受词典支持的语言。要选择不受词典支持的语言，请启用选项 显示所有语言。务必正确指定语言：正确的文档识别取决于此。各个国家/地区的书写风格可能差别很大，正因如此，指定因家/地区以使程序选择典型的书写风格才变得很重要。

    显示各种数字书写风格的示例
    - 俄国的二
    - 美国的二
    - “普通的”五，可能出现在任何风格中。
    - 日本的五
    - 俄国的一
    - 德国的一
    - “普通的”九，可能出现在任何风格中。
    - 捷克的九，右边带有一个环
    - 美国的九，底部没有“钩”

    指定文本类型：

    • ICR（手印）– 如果文档中大多数字段将用手填写，请启用此选项；
    • OCR（打印）： –如果将打印大多数字段中的值，请启用此选项。在下拉列表中选择打印类型。

    注：并非所有语言均支持识别手印文本。对于某些语言，此识别类型将不可用。参见受支持的识别语言。

    以后您可为单一字段更改文本类型，将默认使用在此阶段中指定的类型。

    单击下一步转至下一步。

  2. 在第二步中，加载文档页面图像，以创建文档定义。您可扫描未完成页面的图像或从文件将其加载。

    注：固定表单的文档定义是使用通过扫描未完成表单而获取的图像创建的。此图像应质量优划，无失真（无歪斜和缺陷等）。创建彩色背景表单的文档定义时，您应使用未通过过滤器扫描的页面，以便背景在扫描期间不会消失。（此后，当您扫描用于数据识别的页面图像时，您将选择会引起背景消失的扫描模式）。

    如果您的文档包括多页，请加载第一页，并遵循为多页文档创建文档定义部分中的建议添加剩余页面。

    如果您需要使用通过 ABBYY FlexiLayout Studio 创建的弹性描述，请启用选项加载 FlexiLayout输入包含弹性描述的文件的路径。有关详细信息，请参见创建用于处理弹性文档的文档定义。

    单击下一步按钮。

  3. 在下一步中，选择必须在图像中自动检测的字段类型。您可标记复选标记和文本输入字段。程序将很好地自动检测带有区域和矩形复选标志的文本字段。如果表单上的输入字段没有区域，且在白色背景中插入了复选标记，则通常需要手动将其突出显示。

    注：始终执行自动定位点搜索。如果表单包含定位点，其将被检测到并标记在图像上。

    单击完成按钮。

完成文档定义向导后，将打开文档定义编辑器窗口，在其中，您可执行进一步操作以创建文档定义。在文档定义创建的下一个阶段，您必须在页面图像上标记字段和静态元素，并配置其属性。


自动检测字段元素和静态元素

添加图像时自动检测：

添加页面图像后，程序将始终检测定位点。如果图像有标准定位点（例如，黑色方块形），则将检测和标记这些定位点。如果用户启用了文本或复选标记选项，程序将搜索文本字段和复选标记。程序将很好地自动检测带有区域和矩形复选标志的文本字段。如果表单上的输入字段没有区域，且在白色背景中插入了复选标记，则通常需要手动将其突出显示。

在文档定义编辑器窗口中自动检测：

对于文档定义编辑器窗口中的自动检测，请选择所需的模式（字段元素或静态元素）后选择菜单项工具>自动检测对象…。标记要自动检测的字段或静态元素的类型。

如果需要自动检测图像上的特定对象，请选择所需的模式（字段或静态元素），在工具栏上单击 [image] 。如果单击元素 – 其将标有矩形。程序将自动检测元素类型。

自动检测区域：

对于要自动检测的特定类型的字段或静态元素区域，请执行以下操作：

  1. 选择所需的模式（字段或静态元素）
  2. 借助于工具栏上的相应按钮选择字段或静态元素的类型
  3. 按 Shift 键
  4. 在字段或静态元素区域中单击左键


静态元素

静态元素用于文档定义匹配和标识。不从其中提取数据。

要在文档定义编辑器中处理静态元素，请单击 [image] 按钮以切换至静态元素模式。

静态元素用于文档定义匹配和标识。当您配置元素属性时即已确定了其使用方法。定位点用于匹配文档定义与表单图像。标识符用于在单一流程中处理各种表单时确定页面所属的表单。有关详细信息，请参见创建机器可读表单。

静态元素没有名称，只有图像上的区域。

将文档定义应用于文档图像时，程序将搜索静态元素并根据其位置选择文档定义。只有在出于标识目的之需要时才对静态元素（文本和条形码）的值执行识别。参见指定标识符值。

程序处理以下类型的静态元素：

静态元素 | 工具栏按钮
定位点 |
分隔符 |
定位点文本 |
定位点条形码 |

程序在添加图像后自动搜索定位点。

如何手动创建静态元素：

  1. 选择静态元素模式
  2. 选择用于创建必要类型元素的工具
  3. 将光标放在元素的角落，单击左键，沿斜线将光标拖至对面的角落。
    或
    在元素区域中按 Shift-Click 键。

静态元素区域将用一个矩形框住。其颜色取决于静态元素类型。静态元素分配有默认属性。

如果更改静态元素的属性：

  1. 突出显示图像上的元素区域，单击右键，从快捷方式菜单中选择属性…。
  2. 在打开的对话框中修改静态元素属性：

阅读更多有关静态元素的信息：

  • 定位点
  • 分隔符
  • 定位点文本
  • 定位点条形码


定位点

定位点 - 静态元素自动在图像上突出显示。

要手动突出显示定位点：

  1. 切换至静态元素模式
  2. 在工具栏上选择

  3. 将光标放在定位点的角落，单击左键，沿斜线将光标拖至对面的角落。

    或

    在定位点区域中按 Shift-Click。

定位点属性

要修改定位点属性：

  1. 突出显示定位点；
  2. 在定位点区域中单击右键，从快捷方式菜单中选择属性…菜单项
  3. 在打开的对话框中修改属性：
    • 用于文档定义匹配 – 必须启用此选项，程序才能将定位点用于文档定义匹配（建议）
    • 用于文档定义标识 – 启用此选项可将定位点用于文档定义标识
    • 定位点类型： – 为了正确地执行文档定义匹配，务必指定定位点类型：黑色方块形、十字形或直角形


定位点文本

定位点文本 - 静态元素。这是图像上的任何静态文本 – 标题，说明性签名。

要突出显示定位点文本：

  1. 切换至静态元素模式
  2. 在工具栏上选择
  3. 将光标放在定位点文本的角落，单击左键，沿斜线将光标拖至对面的角落。

    或

    在定位点文本区域中按 Shift-Click。

定位点文本属性

要修改定位点文本属性：

  1. 突出显示文本
  2. 在定位点文本区域中单击右键，从快捷方式菜单中选择属性…
  3. 在打开的对话框中修改属性：

    在常规选项卡上：

    • 用于文档定义匹配 – 必须启用此选项，程序才能将定位点文本用于文档定义匹配（建议）
    • 用于文档定义标识 – 启用此选项可将定位点文本用于文档定义标识
    • 值： – 如果您在使用定位点文本作为标识符，则可设置其值。要自动插入值，请单击提示按钮。
    • 最大错误数： - 在此处您可指定允许定位点文本字符串中出现的最大错误数。

    在识别选项卡上，您需要为将以最大精度识别的静态文本配置识别选项：

    • ICR（手印） – 在手印静态文本时启用此选项。

    • OCR（打印）： – 在打印静态文本时启用此选项。从下拉列表中选择打印样式（印制、点矩阵打印机和打字机等）。另请参见支持的文本类型。

    • 高级： – 使用此选项可选择多个文本类型或指定自定义文本类型。

    • 数据类型： – 选择文本语言。使用选择…按钮作出选择。

    • 字母大小写： – 选择静态文本字母的大小写，如果文本同时有大写和小写字母，请保留自动值。

    • 方向： – 指定文本方向。

    • 为一行文本启用一行选项。

    • 如果文本不包含空格，即由一个单词组成，请启用一个单词选项。

    • 在识别期间配置图像处理选项：
    • 反转 – 反转图像。
    • 移除纹理 – 移除纹理。
    • 去斑 – 启用此选项可移除图像中的垃圾。
    • 仅清除指定大小的垃圾： – 如果您想要仅清除指定大小的垃圾，请启用此选项。指定垃圾大小。如果此选项已禁用且仅启用去斑选项，则将自动选择垃圾大小。


分隔符

分隔符是静态元素。分隔符是图像上的垂直或水平线条。

要突出显示分隔符：

  1. 切换至静态元素模式
  2. 在工具栏上选择
  3. 将光标放在分隔符的角落，单击左键，沿斜线将光标拖至对面的角落。

    或

    在分隔符区域中按 Shift-Click 键。

分隔符属性

要修改分隔符属性：

  1. 突出显示该分隔符
  2. 在分隔符区域中单击右键，从快捷方式菜单中选择属性…菜单项
  3. 在打开的对话框中修改属性：
    • 用于文档定义匹配 – 必须启用此选项，程序才能将分隔符用于文档定义匹配
    • 用于文档定义标识 – 启用此选项可将分隔符用于文档定义标识


定位点条形码

定位点条形码 - 静态元素。

重要事项！可将条形码突出显示为字段元素或静态元素。这取决于被处理的文档中的条形码值：如果是用于文档定义匹配或标识，则您需要在静态元素模式中创建它。如果条形码用于数据捕获，则您必须在字段标记模式中创建它。条形码属性的差异取决于其是字段元素还是静态元素。本节描述了静态元素的属性 – 定位点条形码，请参见条形码字段。

要突出显示定位点条形码：

  1. 切换至静态元素模式
  2. 在工具栏上选择
  3. 将光标放在条形码的角落，单击左键，沿斜线将光标拖至对面的角落。

    或

    在条形码区域中按 Shift-Click。

定位点条形码属性

要修改定位点条形的属性：

  1. 突出显示条形码
  2. 在条形码区域中单击右键，从快捷方式菜单中选择属性…菜单项
  3. 在打开的对话框中修改属性：

    在常规选项卡上：

    • 用于文档定义匹配 – 必须启用此选项，程序才能将条形码用于文档定义匹配
    • 用于文档定义标识 – 启用此选项可将条形码用于文档定义标识
    • 值： – 如果您在使用定位点条形码作为标识符，则可设置其值。要自动插入值，请单击提示按钮
    • 文档定义匹配所必需的 – 如已选择此选项，只有匹配了条形码后才能匹配文档定义。当批处理文件中存在大最极为相似的文档定义，仅仅只能按照其条形码值或甚至按其多个条形码之一的值才能区分这些文档定义时，请选择此选项。在此情况下，选择此选项将加快文档定义的选择。如果您想要在即使是没有条形码或条形码太模糊的情况下匹配文档定义，请不要选择此选项。

    在识别选项卡上：

    • 代码类型： – 指定条形码类型（这通常是自动确定的）
    • 方向： – 指定条形码方向。

    您也可以配置条形码图像预处理选项：

    • 反转 – 反转图像
    • 移除纹理 - 移除纹理
    • 去斑 – 启用此选项可移除图像中的垃圾
    • 仅清除指定大小的垃圾： – 如果您想要仅清除指定大小的垃圾，请启用此选项。指定垃圾大小。如果此选项已禁用且仅启用去斑选项，则将自动选择垃圾大小。


指定标识符值

标识符用于确定某页面所属表单，并用于通过一组原始的定位点从批处理文件包含的多个文档定义中选择一个文档定义。在单一流程中同时处理多个表单时，程序将根据标识符的位置确定此页面所属的表单。

如果定位点条形码或定位点文本用作标识符，则可指定该等标识符的值。在此情况下，在应用文档定义时，程序将图像中的已识别数据与标识符的值进行对比，只有这些值匹配时，文档定义才可能匹配。

可在常规选项卡上的静态元素属性对话框中设置标识符的值。文本和条形码的值可自动输入。提示按钮用于此目的。

注：如果仅根据元素位置就可识别带绝对确定性的页面，则您不必设置这些值。只有在绝对必要时才能使用此功能，因为分配标识符值将在文档定义应用阶段启动识别模块，从而减缓文档定义与图像的匹配。


创建文档定义字段

字段用于数据提取。

要在文档定义编辑器中处理字段，请单击 [image] 按钮以切换至字段标记模式。

图像上用于数据捕获的所有区域必须标记为字段。程序将识别这些字段中的数据并导出其值。

字段有名称，其列表显示在文档结构窗口中。通常而言，字段带有图像上区域，但也可创建没有区域的字段（例如，用于存储中间结果）。

程序将识别以下字段类型：

字段 | 工具栏按钮
文本输入字段 |
复选标记 |
复选标记组 |
条形码 |
图片 |
表格 |
字段组 |

要创建组：

  1. 选择字段标记模式
  2. 选择用于创建必要类型字段的工具
  3. 将光标放在字段的角落，单击左键，沿斜线将光标拖至对面的角落。
    或
    在字段区域中按 Shift-Click 键。

字段区域将用一个矩形框住。其颜色取决于字段类型。

程序将向所创建的字段分配一个与字段区域最近的说明性文本相对应的默认名称。此名称显示在文档结构窗口中字段选项卡的字段列表中。

字段分配有默认属性。

  • 创建复选标记组
  • 创建表格
  • 创建字段组
  • 如何更改字段名称
  • 复制、移动和删除字段
  • 没有区域的字段
  • 字段属性


创建复选标记组

复选标记组将通常与同一问题的互相排斥的答案相对应的具有逻辑性链接的复选标记组合在一起。在此情况下，程序将从组中选择一个复选标记并导出其值。但是，这不是必要条件。您可允许程序标记组中的多个复选标记（在复选标记组属性中选择相关的选项）。

一种创建复选标记组的方法：

要创建复选标记组：

  1. 选择 [image] 工具后，创建属于组的复选标记。
  2. 选择 [image] 工具，用矩形框住要包括在此组中的所有复选标记。
  3. 将突出显示矩形内的复选标记。其在文档结构中的名称将组合在一起，放在复选标记组名称下方。属于同一组的复选标记的属性是相同的，不能逐一编辑。

另一种创建复选标记组的方法：

您不需要突出显示属于组的每个复选标记。

  1. 在不逐一突出显示复选标记的前提下，选择 [image] 工具，用矩形突出显示要包括在此组中的所有复选标记。
  2. 将自动检测、命名矩形内的复选标记，并将其组合到组中。


创建字段组

可以将字段合并为组，以实现清晰显示文档结构和重复性字段组的创建。例如，城市、街道和楼号可组合进“家庭地址”组中。您可为“办公地址”组创建字段，只需复制“家庭地址”字段组。

要创建字段组：

  1. 创建要包括在组中的字段。
  2. 选择 [image] 工具，用矩形框住要包括在此组中的所有字段。
  3. 将突出显示矩形内的字段。其在文档结构中的名称将组合在一起，放在字段组名称的下方。

如果表单具备重复性字段组，则在创建一个组后您可为同一组创建多个实例。组中的所有字段属性和规则集将对每个组实例有效。参见有多个实例的字段。

您也可复制字段组，但在此情况下，复制将导致创建另一个独立的组。


创建表格

ABBYY FlexiCapture 9.0 可供您为包含表格的文档创建文档定义。创建表格字段可大大简化配置、数据提取和从表格导出数据。表格字段就是一组相同类型的列和重复性的行。

表格列的类型可能如下：

  • 文本
  • 复选标记
  • 条形码
  • 图片

要创建表格：

  1. 选择 [image] 工具，用矩形框住表格区域。表格标题不得包括在选定区域内。此时工具栏上将显示附加表格处理工具。
    创建表格列
    创建分隔符
    移除分隔符
  2. 创建所需数量的分隔符，以隔开表格单元格。要创建分隔符，请选择 [image] 工具，单击应放置分隔符的位置。要创建垂直分隔符，请将光标放在表格区域，将指针拖向所需位置后单击鼠标。要创建水平分隔符，请按住 Alt 键执行相同的操作。您也可自动检测分隔符：选择所创建的表格，然后从本地菜单中选择自动检测垂直分隔符和自动检测水平分隔符。
  3. 创建表格列。要创建列，请选择 [image] 工具，单击列区域。从下拉列表中选择列类型。


如何更改字段名称

更改字段名称

要重命名字段：

  • 在文档结构中单击字段名称，单击右键，从快捷方式菜单中选择重命名，输入新的名称。

或

  • 单击图像上的字段区域，单击右键，从快捷方式菜单中选择建议名称。程序将向字段分配一个与字段区域最近的说明性文本相对应的名称。

或

  • 单击图像上的字段区域，单击右键，从快捷方式菜单中选择从图像获取名称…。接着，用光标突出显示可用作字段名称的说明性文本。字段名称将更改为选定的文本。

或

  • 打开字段属性对话框，在常规选项卡上更改名称。


复制、移动和删除字段

可复制、删除、移动和修改字段。已复制字段的名称具有不同的编号。要突出显示多个字段，请使用 Ctrl-Click 键。然后将选定的操作应用于所有突出显示的字段。

要删除字段，请将其突出显示，按删除键，或从快捷方式菜单中选择删除。要仅删除区域，但将字段保留在文档结构中，请按 Shift+Delete 或从字段的快捷方式菜单中选择删除区域。参见没有区域的字段。


没有区域的字段

图像上字段可能没有区域。没有区域的字段的名称在列表中标有红色星号。该等字段可用于存储用被识别字段的值执行的计算的中间结果。例如，您可借助于字段值合并规则组合多个字段的值，并将结果保存至没有区域的字段。

没有区域的字段具备其所属字段类型的所有属性。该等字段的值也可导出。

有两种方式创建没有区域的字段：

  1. 在文档定义编辑器窗口中，选择菜单项编辑>创建字段，并创建必要类型的字段。字段名称将显示在标有红色星号的列表中。在此情况下，程序将在文档结构中创建一个字段，但不在图像上创建其区域。
  2. 另一种方法是删除普通字段的区域。在图像上或在列表中突出显示必要的字段，从快捷方式菜单中选择删除区域。此时，区域被删除，字段名称标有红色星号。

要为图像上没有区域的字段创建区域，请在工具栏上选择 [image] 并用光标突出显示必要的区域。如果列表包含标有星号的字段，程序将要求您选择一个该等字段的名称。


从识别中排除区域

有时需要从识别中排除某个区域，例如，使从字段中提取数据变得复杂的带说明性文本的区域。

要从识别中排除区域，请选择 [image] 工具，用光标突出显示要排除的区域。


创建带有非矩形区域的字段

有时有必要创建带有非矩形区域的字段，如调查问卷中所示：

要创建非矩形字段区域：

  1. 选择用于创建必要类型字段的工具。
  2. 选择可在其中添加或删除片段的矩形区域，以创建所需形状的区域。
  3. 选择 [image] 工具，确保突出显示矩形区域。
  4. 要将片段添加至区域中：按 Shift 键（光标将显示为“加号”），并突出显示想要添加的片段。
  5. 要从区域中排除片段：按 Alt 键（光标将显示为“减号”），并突出显示想要排除的片段。


有多个区域的字段

字段可能包含图像上的多个区域。这些区域可相隔一定的距离，甚至位于不同的页面上。同一字段中所有区域的值可组合一起，并可作为一个字段一起导出。

为多页上字段创建多个区域很方便，例如，为较大的表格。

显示示例

要创建带有多个区域的字段，请执行以下操作：

  1. 创建字段。
  2. 将其突出显示，在字段区域中单击右键，并从快捷方式菜单中选择继续区域…。
  3. 将区域图像移至页面上的所需位置。


有多个实例的字段

重复元素可能出现在字段中。这些字段和字段组多次出现在表单中，描述了相似的对象，例如，多个雇员、儿童和帐户等的相同详细信息。将为该等对象创建带有多个实例的字段。

任何字段均可能有多个实例。其区域可能互相相隔一定的距离，甚至处于不同的页面上。字段实例具备相同的属性。它们被导出至独立的文件或数据库表格。

当表单具备重复组时，您可为字段组创建多个实例。

显示示例

要创建带有多个实例的字段，请执行以下操作：

  1. 创建字段
  2. 将其突出显示，在字段区域中单击右键，从快捷方式菜单中选择新建实例…
  3. 将区域图像移至页面上的所需位置。


字段属性

务必正确配置每个这段的属性。字段属性不但影响识别质量，而且可确定将由操作员导出并提交校验的字段值。某些属性对数据识别极为重要。例如，文本输入字段的标记方法：如果配置不正确，在扫描期间不消失的标记将不与字符分开，识别结果可能不令人满意。

每种类型的字段均有其自己的一组属性。当您在图像上创建某种类型的字段时，将向其分配默认属性。

如何更改字段属性：

  1. 在文档结构中或在图像的字段区域中突出显示字段名称，单击右键后从快捷方式菜单中选择属性…。
  2. 在打开的对话框中修改字段属性：

阅读有关字段属性的更多信息：

项目符号 | 文本输入字段
项目符号 | 复选标记
项目符号 | 复选标记组
项目符号 | 条形码
项目符号 | 图片
项目符号 | 表格
项目符号 | 字段组


文本输入字段

当您创建文本字段时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的五个选项卡。

项目符号 | 基本属性
项目符号 | 数据类型
项目符号 | 认别属性
项目符号 | 校验属性
项目符号 | 规则校验


基本字段属性

可在常规选项卡上配置基本字段属性。

在此选项卡上，字段类型显示为名称右侧的图标。

  • 名称： – 字段名称。名称在创建字段时自动分配，并与最接近字段的说明性文本相对应。编辑属性时，可更改默认分配的名称。另请参见如何更改字段名称。
  • 标题： – 将显示在数据表单中的字段的名称。
  • 导出字段值 – 如果想要导出字段值，必须启用此选项（默认启用）。您可能需要禁用此选项，例如，如果此字段的值用于获取已计算字段的值（参见规则校验），且只需导出最终结果。
  • 显示在数据表单中 – 如果必须在数据表单中显示字段，则必须启用此选项（默认启用）。
  • 不得为空 – 如果想要使其成为必填字段，请启用此选项。
  • 只读 – 如果字段仅供查看时访问，请启用此选项，即，操作员无法修改其值。对于必须使用规则自动计算其值的字段，您可启用此选项，例如，对于您计划在其中保存总和或组合其他字段的字段（参见规则校验）。
  • 索引字段 – 如果您期望使用此字段建立文档索引，请启用此选项。处理文档时，您将可为每个文档显示此字段的值，并根据字段值排序和搜索文档。
  • 注释： – 您可输入任何注释。


文本输入字段数据类型

务必将数据类型分配至文本输入字段，以告诉程序您想要在此字段中看到的数据类型：是仅数字、某些符号集的字母、某些集的字符、日期还是其他类似类型。数据类型设置机制极具弹性，用户可从可用数据类型列表中选择数据类型，也可创建适用于特定任务的自定义数据类型。

指定数据类型时，您可配置输入值的格式检查，并设置值限制，例如，文本长度限制、数字的最大值和最小值、时间间隔和日期。

也可通过外部来源限制字段的允许值 - 文本文件或数据库。

如果在文档处理期间，已识别字段的值与设置的数据类型不匹配，操作员将会看到错误消息。

文本输入字段的数据类型可在字段属性对话框的数据类型选项卡上指定。

文本
  1. 如果此字段包含文本，请从内容列表中选择文本。内容：
    在详细信息：字段，您将看到选定数据类型的描述。如果您想要更改语言、词典的用途或指定范围较小的数据类型，请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 对于标准文本类型（即选择常规，该选项位于内容设置：列表中），您可使用内置词典和/或自定义词典。在此情况下，将根据这些词典检查字段的值。
      要使用内置词典，请选择禁用内置式词典选项。
      要使用自定义词典，请选择使用自定义词典选项并单击编辑…以编辑词典。可通过以下方法创建自定义词典：逐一添加单词（单击添加...按钮即可添加单词）或从文件中加载单词列表（单击加载...按钮并指定扩展名为 *.txt 或 *.dic 的所需文件的路径）。
    • 特殊文本类型（即特殊，该选项位于内容设置：列表）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明。
      如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于 AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段右侧）。有关详细信息，参阅文本数据类型值范围限制。
位数
  1. 如果此字段包含数字值，请从内容列表中选择编号。内容：
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言，将整数更改分数或反之亦然，或指定较小范围的数据类型（例如，两位数或 Roman 数字），请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 如果字段必须包含整数，请选择整数。如果字段必须包含分数，请清除此选项。
    • 为整数或分数选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。
    • 特殊数字类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明。
      如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段旁）。有关详细信息，请参见数字值范围限制。
重要事项！对于包含仅形式上为数字但实际上用作代码（例如，信用卡号和护照系列号等）的数字的字段，请不要使用数字数据类型。为该等字段指定数字数据类型可能导致错误（例如，字符串开头的零将会丢失）。对于这样的情况，请创建自定义文本类型并指定 0-9 的符号集（如有必要，添加正则表达式）或仍然使用数字数据类型，但确保选择将文本作来值处理。在后一种情况下，字段值将作为文本处理，可使用自定义词典检查值，并可指定可能的值范围，如同指定文本值。有关详细信息，参阅文本数据类型值范围限制
日期
  1. 如果此字段包含日期，请从内容列表中选择日期。内容：
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言、更改日期组成的顺序、添加时间或周日或指定范围较小的数据类型（例如，使用 Roman 数字表示月份），请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 从日期组件顺序：列表中选择所需的顺序。
    • 为以标准格式写入的日期选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。对于标准日期类型，以下附加选项可用：
      可包括以文字表示的月份- 如果也可用文字而不仅是数字写入月份，请使用此选项；
      可包括周日- 当日期可能包括周日时，请使用此选项；
      可包括时间- 当日期可能包括时间时，请使用此选项。
    • 特殊日期类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明
      。如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于 AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段旁）。有关详细信息，请参见日期值范围限制。
重要事项！如果日期无法缩减为标准格式或您不想将此字段中的值当作日期处理，请选择将文本作来值处理选项。在后一种情况下，字段值将作为文本处理，可使用自定义词典检查值，并可指定可能的值范围，如同指定文本值。有关详细信息，参阅文本数据类型值范围限制
金额
  1. 如果此字段包含金额，请从内容：列表中选择金额。
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言或指定范围较小的数据类型（例如，货币代码，请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 如果字段值为数字或附有标准货币符号或代码的数字，请为金额选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。
    • 特殊类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明
      。如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于 AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段旁）。有关详细信息，参阅文本数据类型值范围限制
重要事项！如果金额无法缩减为标准格式或您不想将此字段中的值当作金额处理，请选择将文本作来值处理选项。在后一种情况下，字段值将作为文本处理，可使用自定义词典检查值，并可指定可能的值范围，如同指定文本值。有关详细信息，参阅文本数据类型值范围限制
地址
  1. 如果此字段包含地址，请从内容：列表中选择地址。
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言、指定自定义词典或指定范围较小的数据类型（例如，电子邮件地址或 ZIP 代码），请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 为地址选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。在此情况下，建议使用自定义词典。要使用自定义词典，请选择使用自定义词典选项并单击编辑…以编辑词典。可通过以下方法创建自定义词典：逐一添加单词（单击添加...按钮即可添加单词）或从文件中加载单词列表（单击加载...按钮并指定扩展名为 *.txt 或 *.dic 的所需文件的路径）。
    • 特殊类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明
      。如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段旁）。有关详细信息，参阅文本数据类型值范围限制
名称
  1. 如果此字段包含日期，请从内容：列表中选择名称名称。
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言、指定自定义词典或指定范围较小的数据类型（例如，名或父名），请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 为名称选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。在此情况下，建议使用自定义词典。要使用自定义词典，请选择使用自定义词典选项并单击编辑…以编辑词典。可通过以下方法创建自定义词典：逐一添加单词（单击添加...按钮即可添加单词）或从文件中加载单词列表（单击加载...按钮并指定扩展名为 *.txt 或 *.dic 的所需文件的路径）。
    • 特殊类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明
      。如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于 AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段右侧）。有关详细信息，参阅文本数据类型值范围限制
代码
  1. 如果此字段包含由字母和数字组成的代码，请从内容：列表中选择代码代码。
    在详细信息：字段中，您将看到选定数据类型的描述。如果您想要更改语言、指定自定义词典或指定范围较小的数据类型（例如，社保号），请单击描述右侧的编辑…按钮。在打开的对话框中，您可以：
    • 更改此字段的识别语言。要更改语言，请单击语言字段右侧的“...”按钮。您可选择一种或多种语言。
    • 为字母数字代码选择标准数据类型（即选择了常规，该选项位于内容设置：列表中）。在此情况下，建议使用自定义词典。要使用自定义词典，请选择使用自定义词典选项并单击编辑…以编辑词典。可通过以下方法创建自定义词典：逐一添加单词（单击添加...按钮即可添加单词）或从文件中加载单词列表（单击加载...按钮并指定扩展名为 *.txt 或 *.dic 的所需文件的路径）。
    • 特殊类型（即选择了特殊，该选项位于内容设置：列表中）包含预定义数据类型，从中您可选择适用于指定字段的数据类型。选择数据类型时，请查阅对话框底部的其说明
      。如果两种预定义类型均不适合您的用途，您也可创建自己的自定义数据类型。有关详细信息，参阅创建自定义数据类型。
  2. 对于任何数据类型，程序均可自动处理输入的值：移除多余的空格、切换字母大小写或自动替换指定的字符或文本片段。要启用自动处理值，单击编辑…按钮（该按钮位于 AutoCorrect 选项：字段旁）。在打开的对话框中，选择必需的自动处理选项。有关详细信息，参阅处理输入的值。
  3. 您也可为此字段设置值校验，以便程序将检查所输入的值是否处于指定的范围内。要为此字段指定值范围，单击编辑…按钮（在校验字段旁）。有关详细信息，参阅文本数据类型值范围限制


创建自定义数据类型

要创建新的数据类型，请从内容：列表（位于字段属性的数据类型选项卡上）中选择所需的项目。您可从与您的自定义数据类型语义相对应的列表中选择任一个项目：这将不影响新数据类型的性质，但其将存储在选定的类别中。

单击编辑…按钮（在详细信息：字段的右侧）。

在打开的对话框，选择特殊（位于内容设置：字段中）。

单击新建…按钮（在选定语言的数据类型：字段的右侧）。

按照数据类型创建向导的说明操作。

在向导的第一个窗口中，选择要创建数据的方式。您可数据词典、正则表达式和符号集或现有的数据类型创建新的数据类型（例如，通过向符号集添加所需的字符或通过展开其词典）。

要根据词典、正则表达式或符号集创建新的数据类型：

  1. 选择基于以下项的新数据类型：然后，选择用作创建新数据类型的依据：词典、正则表达式或符号集。然后为您的数据类型选择语言（区域）：单击下一步。
  2. 如果您选择根据词典创建新的数据类型，在下一个窗口中，向导将提示您选择要使用的词典类型。
    如果您想要针对在上一个窗口中选定的语言使用内置词典，请选择禁用内置式词典。要检查词典是否包含特定单词，请单击视图…并键入单词。单击视图按钮将显示弯曲的单词表单或一条警告消息，表明词典中没有该单词。
    如果您想要使用自定义词典，请选择使用自定义词典：并单击编辑…以编辑词典。可通过以下方法创建自定义词典：逐一添加单词（单击添加...按钮即可添加单词）或从文件中加载单词列表（单击加载...按钮并指定扩展名为 *.txt 或 *.dic 的所需文件的路径）。单击下一步。
  3. 如果您选择根据正则表达式创建新的数据类型，向导将提示您输入正则表达式。使用正则表达式字段右侧的 [image] 按钮，构建正则表达式。有关详细信息，请参见用于正则表达式的符号集。单击下一步。
  4. 如果选择根据符号集创建新数据类型，或如果您在正则表达式中所用的字符未包括在该语言的符号集中，向导将提示您为您的数据类型指定符号集。您可直接在键盘上键入所需用字符，或单击自定义…然后，使用鼠标选择所需的字符。

    要添加标点符号和排除的（禁用）字符，请单击高级参数…。您可直接在键盘上键入禁用字符或单击右侧的按钮，使用鼠标选择所需的字符。

    单击下一步。

  5. 在向导的最后窗口中，键入新数据类型的名称和简要描述。如果想要编辑新创建的数据类型的属性，请选择编辑属性选项。单击完成。

要根据现有数据类型创建新的数据类型：

  1. 在数据类型创建向导的第一个窗口中，选择基于现有类型的数据类型。选择所需的语言，单击下一步。
  2. 在下一个窗口中，选择作为创建新数据类型的源数据类型。与选定语言相对应的数据类型列在对话框右左侧的可用数据类型：。文本文件夹包含在第一个窗口中选择的自然语言。自定义文件夹包含用户创建的数据类型。其他文件夹包含与内容的类别和特定类型相对应的数据类型。
    要选择源数据类型，请在可用数据类型：字段中将其选定（按住 Ctrl 键可选择多项）然后单击添加 ->以将其传输至右窗格中。单击下一步。
  3. 在向导的最后窗口中，键入新数据类型的名称和简要描述。如果想要编辑新创建的数据类型的属性，请选择编辑属性选项。单击完成。

当您选择在创建数据类型时选择的内容时，新创建的数据类型将显示在预定义数据类型列表中。

要为您的字段指定新创建的数据类型；

  1. 在字段属性对话框的数据类型选项卡上，从内容：列表中选择所需的项目；
  2. 单击编辑…按钮（在详细信息：字段的右侧）
  3. 在内容设置：列表中，选择 特殊；
  4. 在所显示的列表中，选择您所创建的数据类型（自定义数据类型标有特定符号），然后单击确定。


文本数据类型的值范围限制

在校验设置对话框中，您可指定在字段中输入的文本的值范围限制。

注：程序将文本类型不仅视为带文本内容的数据类型，而且视为带其他内容的数据类型（为其选择了将文本作来值处理选项）。

  • 最大长度： – 在字段中指定文本的最大长度；
  • 如果应将正则表达式用于检查字段值，则请在 内容限制： 字段中，从列表中选择 正则表达式 。

    按钮有助于您正确地建立正则表达式。有关详细信息，请参见用于正则表达式的符号集。

    要提高错误消息的可读性，请在正则表达式描述：字段中，提供用于错误消息的正则表达式的描述。

  • 如果您需要指定允许值列表，请在 内容限制： 字段中，从列表中选择 允许值 。要添加值，请单击 添加… 并输入值。要编辑值，请单击 编辑…。要删除值，请单击删除。要从文件加载可能的值，请单击 加载…
  • 将校验错误视为警告 – 如果您想要将与您指定的限制不符的任何项视为警告，请选择此选项。


数字的值范围限制

要指定数字的值范围限制：

  1. 请启用选项使用限制：。
  2. 指定最大数字值和最小数字值。
  3. 将校验错误视为警告 – 如果您想要将与您指定的限制不符的任何项视为警告，请选择此选项。

处理文档时，程序将检查输入的值是否在指定的范围内。


日期值范围限制

在校验设置对话框中，可指定在此字段中输入的该日期间隔。

  1. 启用选项日期不得超过以下间隔：。
  2. 选择固定：以选择固定时间间隔或选择相对于校验日期：以设置一个相对于文档校验日期的时间间隔。
  3. 输入该间隔的开始和结束日期。
  4. 将校验错误视为警告 – 如果您想要将与您指定的限制不符的任何项视为警告，请选择此选项。


处理所输入的文本数据类型的值

处理输入的值

对于任何数据类型，均可自动处理输入的值：删除空格、切换大小写字母并自动替换特定字符或文本。要启用自动处理字段值，在字段属性对话框的数据类型选项卡上，在 AutoCorrect 选项：字段的右侧单击编辑…按钮。

选择所需的自动处理选项。

如果选择仅在识别后应用一次 AutoCorrect，则仅在识别字段后才执行自动处理。否则，每当字段值发生变化时，均会执行自动处理。

  • 要自动替换已识别字段值中的字符，请单击编辑…字段右侧的替换字符：按钮。在打开的对话框中，您可添加用于自动替换的字符。如果指定的字符出现在已识别的字符值中，其将自动被替换。
  • 要自动替换整个已识别的字段值或分隔字段值中的单词，请单击编辑…字段右侧的替换文本：按钮。

    在打开的对话框中，您可添加用于自动替换的单词和表达式。要替换整个字段，请选择 匹配整个字段内容。

    如已启用精确搜索程序将搜索您已输入的单词或表达式并予以替换，或如已启用模糊搜索程序将搜索与您所输入的单词或表达式相似的单词或表达式，并予以替换。允许的错误数量取决于单词的长度。

    对于区分大小写的替换单词或表达式，请启用选项大小写匹配。

  • 在更改大小写：下拉列表中选择其中一种文本字母转换方法：

    无 – 不转换；

    大写 – 所有字母均更改为大写。

    小写 – 所有字母均更改为小写。

    首字母大写 – 首字母将大写，剩余的字母小写。

  • 删除多余的空格 – 如果您想要删除空格，请启用此选项。

您也可将脚本用于自动替换：选择使用脚本选项，单击编辑…以打开脚本编辑器，并键入脚本代码。


文本字段识别选项

可在字段属性对话框的识别选项卡上设置识别属性（从此字段的快捷方式菜单中选择属性… 菜单项）。正确确定的字段值会大大提升识别质量，减少出现错误的可能性。

  • 不要识别（将自动输入图像字段中的密钥） – 当字段由于某些原因（例如，如果字段中文本包含混淆性字母时）无法识别且由操作员手动输入其值时，请启用此选项。在此情况下，您不必配置其他识别属性，因为将不识别此字段，操作员将需要在校验期间输入字段值。

  • ICR（手印） – 在手印此字段中的静态文本时启用此选项。

  • OCR（打印）： – 在打印此字段中的静态文本时启用此选项。从下拉列表中选择打印样式（印制、点矩阵打印机和打字机等）。另请参见支持的文本类型。

  • 高级： – 使用此选项可选择多个文本类型或指定自定义文本类型。

  • 标记类型： – 选择标记类型以简化选择，从下拉列表中选择样本。如果标记在扫描期间消失，则表明其类型为等宽（灰色方框）。如果标记在扫描期间未消失且分成字符空格单元格，则必须输入单元格的总数。当程序自动检测到带有该等标记的字段时，也将自动确定单元格数量。

  • 字母大小写： – 选择字段中的字母大小写。如果同时可选择大写字母和小写字母，请保留启用自动选项。

  • 方向： – 指定文本方向。

  • 为一行字段启用一行选项。

  • 对于其值始终由单一单词组成的字段，请启用一个单词选项。

  • 在识别期间配置图像处理选项：

  • 反转 – 反转图像。
  • 移除纹理 – 移除纹理。
  • 去斑 – 启用此选项可移除图像中的垃圾。
  • 仅清除指定大小的垃圾： – 如果您想要仅清除指定大小的垃圾，请启用此选项。指定垃圾大小。如果此选项已禁用且仅启用去斑选项，则将自动选择垃圾大小。


字段校验属性

校验是由操作员执行的检查已识别数据的过程。程序将标出不确定识别的字符并将其提交操作员校验。但是，您可配置字段属性，以便程序提交字段供校验，即使其不包含不确定识别的字符。相反，即使其包含不确定识别的字符，也不将其提交供校验。操作员看到已识别的字符及其图像后，将确认识别结果或予以纠正。

在创建文档定义时，可以在字段属性对话框的校验选项卡上配置校验选项。

对于操作员要校验的字段，选择 需要校验。

配置字符显示参数：

  • 如果要突出显示校验字符，选择 突出显示所有字符；
  • 如果不突出显示字符，选择 不要突出显示字符；
  • 如果要根据识别确定性突出显示字符，选择 如果置信水平少于以下项时突出显示字符：，并在下拉列表中指定突出显示字符前的最低确定度。

组校验

  • 对于要发送至组校验 的字段字符，选择 发送字符至组校验。
  • 选择要发送至组校验的字符：仅突出显示的字符 或 所有字符。
  • 选择要进行组校验的字符集：只有数字 或 自定义。根据需要，可通过单击 修改…更改用户定义的字符集。

字段校验

  • 对于要发送至字段校验的字段，选择 发送到字段校验。
  • 选择发送字段进行字段校验的情况：始终或 如果字符具有突出显示的字符或格式错误。


用户脚本

用户脚本（自定义操作）

用户脚本就是在字段校验期间或在文档编辑器中查看字段时由用户触发的自定义脚本规则。通过单击字段值右边的…可触发脚本。

自定义脚本可以在 自定义操作 选项卡上设置。要添加或删除用户脚本可用的信息，请使用 添加… 和 删除按钮。要编辑脚本，请使用 脚本编辑器 窗口（该窗口在您单击 编辑… 时打开）

选择 启用自定义操作，可以让操作员访问脚本。

有关脚本的更多信息，请参见使用 FlexiCapture 9.0 中的脚本。


复选标记

重要事项！将针对整个复选标记组配置组合到组中的复选标记属性。如果您尝试编辑属于组的复选标记的属性，则将打开用于编辑复选标记组属性的对话框。

当您创建复选标记字段时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的五个选项卡。

项目符号 | 基本属性
项目符号 | 认别属性
项目符号 | 数据类型
项目符号 | 校验属性
项目符号 | 规则校验


基本字段属性

可在常规选项卡上配置基本字段属性。

在此选项卡上，字段类型显示为名称右侧的图标。

  • 名称： – 字段名称。名称在创建字段时自动分配，并与最接近字段的说明性文本相对应。编辑属性时，可更改默认分配的名称。另请参见如何更改字段名称。
  • 标题： – 将显示在数据表单中的字段的名称。
  • 导出字段值 – 如果想要导出字段值，必须启用此选项（默认启用）。您可能需要禁用此选项，例如，如果此字段的值用于获取已计算字段的值（参见规则校验），且只需导出最终结果。
  • 显示在数据表单中 – 如果必须在数据表单中显示字段，则必须启用此选项（默认启用）。
  • 只读 – 如果字段仅供查看时访问，请启用此选项，即，操作员无法修改其值。对于必须使用规则自动计算其值的字段，您可启用此选项，例如，对于您计划在其中保存总和或组合其他字段的字段（参见规则校验）。
  • 注释： – 您可输入任何注释。


复选标记数据类型

复选标记的数据类型可在字段属性对话框的数据类型选项卡上设置。

复选标记的数据类型决定了要分配给选定和未选定复选标记的复选标记字段的值。

为复选标记值选择合适的选项：

  • 是/否 – 如已选择复选标记，则字段值为“是”，如未选择，则字段值为“否”。
  • 1 / 0 – 如已选择复选标记，则字段值为“1”，如未选择，则字段值为“0”。
  • <复选标记名称>/空 – 如已选择复选标记，字段值将与复选标记名称匹配，如未选择 – 将向字段分配一个空值。
  • 自定义： – 通过启用此选项，您可输入自定义值。 选定 – 对于选定的复选标记；未选定 - 对于未选定的复选标记。


复选标记识别属性

可在字段属性对话框的识别选项卡上设置识别属性（从此字段的快捷方式菜单中选择属性…）。正确确定的字段值会大大提升识别质量，减少出现错误的可能性。

  • 复选标记类型： – 选择复选标记类型。此属性对正确识别复选标记极为重要。

    方块形 – 如果将复选标记放在受限制的方块形框中，则可选择此复选标记类型。

    没有框 – 如果复选标记放在没有框的白色背景中，请选择此复选标记类型。

    自动 – 如果您选择此类型，程序将自动确定复选标记类型。

    重要事项！请注意，在此情况下，不得选择表单上的复选标记，因为程序将检测是否已选择复选标记（将已处理文档上的复选标记的图像与用于创建文档定义的空白表单上的图像进行对比）。

  • 允许纠正 – 如果您想要允许纠正任何复选标记，请启用此选项，在此情况下，用墨水涂掉的复选标记将视为未选定。但是，如果您已选择自动类型，则不得允许纠正该等复选标记。

    • 您可以配置字段图像处理选项：

  • 反转 – 反转图像
  • 移除纹理 – 移除纹理
  • 去斑 – 启用此选项可移除图像中的垃圾。
  • 仅清除指定大小的垃圾： – 启用此选项可仅清除特定大小的垃圾。指定垃圾大小。如果此选项已禁用且仅启用去斑选项，则将自动选择垃圾大小。


字段校验属性

校验是由操作员执行的检查已识别数据的过程。程序将标出不确定识别的字符并将其提交操作员校验。但是，您可配置字段属性，以便程序提交字段供校验，即使其不包含不确定识别的字符。相反，即使其包含不确定识别的字符，也不将其提交供校验。操作员看到已识别的字符及其图像后，将确认识别结果或予以纠正。

在创建文档定义时，可以在字段属性对话框的校验选项卡上配置校验选项。

对于操作员要校验的字段，选择 需要校验。

  • 对于要发送至组校验 的字段的字符，选择 发送字符至组校验。
  • 选择要发送至组校验的字符：仅突出显示的字符 或 所有字符。


复选标记组

重要事项！组属性适用于属于复选标记组的所有复选标记。

复选标记组的值是由分号 (;) 分隔的选定复选标记名称的列表，如未选择复选标记则为空字符串。

当您创建复选标记组时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的五个选项卡。

项目符号 | 基本属性
项目符号 | 认别属性
项目符号 | 数据类型
项目符号 | 校验属性
项目符号 | 规则校验


复选标记组的数据类型

复选标记的数据类型可在字段属性对话框的数据类型选项卡上设置。

允许空选择区域 – 如果必须在组中至少选择一个复选标记，则请启用此选项。在此情况下，如果没有在组中选择复选标记，程序将显示相关警告。

允许多个选择区域 – 启用此选项即允许在组中选择多个复选标记。如已禁用此选项，程序将在已选择组中多个复选标记时显示一条警告。

要更改复选标记的名称，请选择所需的行，单击编辑…。在打开的对话框中，提供复选标记字段的新名称及要在导出期间分配给复选标记的新名称。

当没有选择复选标记字段时及选择了多个复选标记字段时，您可定义要导出的值。要执行此操作，请从列表中选择 <未选择项目> 或 <多个项目…> 并单击编辑…。在打开的对话框中，在导出的值：字段中指定所需的值。如果没有指定导出值：a) 在没有选择复选标记字段时导出空字符串，b) 如果选择了多个字段，则将指定选定复选标记字段的值（由逗号分隔）。

创建复选标记组


条形码

当您创建条形码字段时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的五个选项卡。

重要事项！可将条形码突出显示为字段元素或静态元素。这取决于被处理的文档中的条形码值：如果是用于文档定义匹配或标识，则您需要在静态元素模式中创建它。如果条形码用于数据捕获，则您必须在字段标记模式中创建它。条形码属性的差异取决于其是字段元素还是静态元素。本节描述了字段属性，另请参见定位点条形码。

项目符号 | 基本属性
项目符号 | 认别属性
项目符号 | 校验属性
项目符号 | 规则校验


条形码识别属性

可在字段属性对话框的识别选项卡上设置识别属性（从此字段的快捷方式菜单中选择属性…）。正确确定的字段值会大大提升识别质量，减少出现错误的可能性。

  • 不要识别（将自动输入图像字段中的密钥） – 如果条形码值将由操作员手动输入，请启用此选项。如果是这样，您不必配置剩余的识别设置。
  • 代码类型： – 指定条形码类型（这通常是自动确定的）。
  • 方向： – 指定条形码方向。

您也可以配置条形码图像预处理选项：

  • 反转 – 反转图像。
  • 移除纹理 – 移除纹理。
  • 去斑 – 启用此选项可移除图像中的垃圾。
  • 仅清除指定大小的垃圾： – 如果您想要仅清除指定大小的垃圾，请启用此选项。指定垃圾大小。如果此选项已禁用且仅启用去斑选项，则将自动选择垃圾大小。


字段校验属性

校验是由操作员执行的检查已识别数据的过程。程序将标出不确定识别的字符并将其提交操作员校验。但是，您可配置字段属性，以便程序提交字段供校验，即使其不包含不确定识别的字符。相反，您可指定即使其包含不确定识别的字符也不将其提交供校验。操作员看到已识别的字符及其图像后，将确认识别结果或予以纠正。

在创建文档定义时，可以在字段属性对话框的校验选项卡上配置校验选项。

对于操作员要校验的字段，选择 需要校验。

  • 对于要发送至字段校验的字段，选择 发送到字段校验。
  • 选择发送字段进行字段校验的情况：始终 或 如果字符具有突出显示的字符或格式错误。


图片

创建图片时，将向其分配默认属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的四个选项卡。

项目符号 | 基本属性
项目符号 | 认别属性
项目符号 | 导出图片
项目符号 | 规则校验


基本字段属性

可在常规选项卡上配置基本字段属性。

在此选项卡上，字段类型显示为名称右侧的图标。

  • 名称： – 字段名称。名称在创建字段时自动分配，并与最接近字段的说明性文本相对应。编辑属性时，可更改默认分配的名称。另请参见如何更改字段名称。
  • 标题： – 将显示在数据表单中的字段的名称。
  • 导出字段值 – 如果想要导出字段值，必须启用此选项（默认启用）。您可能需要禁用此选项，例如，如果此字段的值用于获取已计算字段的值（参见规则校验），且只需导出最终结果。
  • 显示在数据表单中 – 如果必须在数据表单中显示字段，则必须启用此选项（默认启用）。
  • 注释： – 您可输入任何注释。


图片识别属性

可在字段属性对话框的识别选项卡上设置识别属性（从此字段的快捷方式菜单中选择属性…）。

  • 从识别中排除 – 如果必须将图片字段区域多其他字段落识别区域中排除，请启用此选项。（此选项仅可用于图片字段，确保与 FormReader 6.5 模板兼容。）


导出图片

在文档定义中，可为每个图片选择导出设置。要选择图片导出设置，请在所需字段中单击右键，选择属性…然后单击导出选项卡。您可选择以下任一选项：

  • 文件类型：：（TIFF、JPEG、BMP、JPEG2000、PCX packbits 和 PNG）。
  • 质量：：对于 TIFF、JPEG 和 JPEG2000 文件，您可选择生成文件的质量，从最好到最差。
  • 颜色类型：：彩色、灰色和中间色（黑白）。

您也可设置生成图片的分辨率：选择将分辨率更改为并键入所需的分辨率或从列表中选择分辨率。


表格

当您创建表格时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的三个选项卡。

项目符号 | 基本属性
项目符号 | 列
项目符号 | 规则校验


表格，列

列选项卡显示了此表格各列的列表。每个表格列均属于某一字段类型（参见创建表格）并具备此字段类型的特定属性。

要编辑其中一个列的属性：

  1. 从列表中选择其名称。
  2. 单击属性…按钮


字段组

当您创建字段组时，会向其分配默认的属性。从快捷方式菜单中选择属性…即可更改属性。属性修改对话框包括用于不同组属性的三个选项卡。

项目符号 | 基本属性
项目符号 | 字段
项目符号 | 规则校验


组字段

字段选项卡显示了组包含的字段的列表。

要编辑其中一个字段的属性：

  1. 请从列表中选择其名称。
  2. 单击属性…按钮

创建字段组


服务字段

在创建服务字段时，可以单击快捷菜单上的属性…来配置默认属性。“属性”对话框有两个选项卡，每个属性组一个选项卡

基本字段属性
数据源属性


数据源属性

在 数据源 选项卡上，可指定服务字段的来源和数据类型。

  1. 从 来源： 列表，选择字段的数据源。
  2. 如果选择文档注册参数 或 批处理文件注册参数，应在 参数名： 字段中指定要用作数据源的注册属性的名称。
  3. 对于数据类型，应选择服务字段所需的数据类型。


规则校验

规则扩展了自动化结果检查的可能性。通过规则，可设置数据限制，即指定某些字段值必须符号的条件。

如果文档中的值不符号这些条件，该等页面则标有警告。规则应用程序的主要用于检查文档数据的完整性。

您也可借助于规则处理输入的值：合并多个字段的值，或使用数据库中的相关值替换识别的值。

ABBYY FlexiCapture 9.0 可使您配置以下类型的规则：

  • 校验和 – 检查多个字段的和。将特定字段值的总和与另一个不同字段中的值或预设数字进行对比。
  • 对比字段 – 对比多个字段的值。
  • 数据库检查 – 将输入的值与特定数据库中的值对比，以对其进行检查。
  • 合并字段– 合并多个字段的值。合并字段时可添加任何分隔符。
  • 脚本 – 用户借助于脚本描述限制。
  • 总图数 - 总字数（俄语） – 将数字总和与用字书写的同一总和进行对比（只限于俄语）。

可向规则分配错误或警告状态。如果符合某一条件，字段则标用红色标志（错误）或黄色标志（警告）。参见规则校验。

可在对象属性对话框的规则选项卡上配置规则（字段、节段和文档等）。

在分层结构中，规则存储在其得以创建时所处的对象级别：这可能是字段、文档定义节段或文档定义本身。在大多数情况下，规则存储级别并不重要。但如果您在创建带有复杂结构、字段组或重复元素的文档定义，则需要观察规则存储位置。例如，如果您拥有与规则相链接的字段组及该组中的某些字段，则当您为该组创建新实例时，只有该规则存储在组本身或存储在其字段而不是更高级别时才复制并履行该规则。从对象属性对话框中，您可查看适用于此对象的规则或存储在此对象及其附属对象中的规则。您可指定想要查看的规则，只需从显示在列表中：下拉列表中选择其中一个值：

  • 处理对象的规则 – 显示适用于当前对象（其属性对话框当前已打开的对象）的规则。
  • 存储在对象中的规则 – 显示存储在当前对象中的规则。
  • 存储在对象及其子对象中的规则 – 显示存储在当前对象及其子对象中的规则（例如，对于字段组，将显示存储在组及其所有字段中的规则）。

注：新规则只能在存储在对象中的规则或存储在对象及其子对象中的规则显示模式中创建。不能在处理对象的规则显示模式中创建新规则。

每个规则均有一个错误或警告状态。如果在发生规则错误时尝试导出文档，程序会显示一条错误消息。规则警告不会阻止导出。

校验和
对比字段
检查数据库
合并字段
图数中的总和 - 单词中的总和

带脚本帮助的规则集


值总和检查规则

此规则用于检查多个字段的值总和。将特定字段值的总和与另一个不同字段中的值或预设数字进行对比。例如，如果您的文档包含带有工资金额、奖金金额和基他补偿金的字段或总和字段，则您可配置将用于检查字段值总和是否与所生成字段中总和相匹配的规则。如果出现误配，则将显示一条错误消息。

要创建总和检查规则，请执行以下操作：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮。
  4. 从规则类型列表中选择校验和 并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误并单击下一步。
  6. 向汇总字段值列表中添加要检查值总和所属的字段。使用添加…按钮添加字段
  7. 启用以下选项之一：
    • 字段： – 用于将总和与所生成字段的值对比。使用选择…按钮选择此字段的名称。
    • 编号： – 用于将总和与指定数定对比。输入此数字。
  8. 比较值分数部分： – 输入数字小数点后的位数以确定对比精度。
  9. 如果您至少想要将两个非空项目相加，请启用选项至少要添加两个非空项目。
  10. 单击完成以完成规则创建。此时，规则名称显示在规则选项卡中。


多个字段值对比规则

此规则是指检查多个字段的值。如果您的文档的多个字段必须具备相等的值，则可使用此规则。如果值不匹配，则将针对该文档显示规则错误消息。

要创建值对比规则，请执行以下操作：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮
  4. 从规则类型列表中选择对比字段并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误并单击下一步。
  6. 向要对比字段列表中添加想要对比的值所属的字段。使用添加…按钮添加字段
  7. 选择匹配类型：
    • 完全匹配 – 适用于精确的值匹配；
    • 模糊匹配 – 适用于模糊的值匹配。在此情况下，将在不考虑字母大小写和空格的情况下对比字段，对于长于 4 个字符的字段值，允许显示一条错误。
  8. 单击完成以完成规则创建。此时，规则名称显示在规则选项卡中。


数据库检查规则

字段值的数据库检查涉及将已识别的字段值与数据库表格中的值进行对比，如果两个值相匹配，则视为正确的。如果出现误匹，则将显示一条规则错误消息。

要创建数据库检查规则，请执行以下操作：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮
  4. 从规则类型列表中选择数据库检查并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误并单击下一步。
  6. 建立数据库连接。可在打开的数据链接属性对话框中配置必要的设置，当您单击设置…按钮就会打开该对话框。
  7. 从列表中选择数据库方案和表格。
  8. 将文档定义中的字段与数据库表格中的字段相匹配。要实现这一点，请单击添加…按钮。此时将打开字段链接对话框。从列表中选择文档定义字段，及数据库表格中的相应字段。选择匹配类型：
    • 完全匹配 – 字段值必须完全匹配。
    • 模糊匹配 – 字段值必须部分匹配。在此处，程序将搜索最接近的单词，只有在其中添加、删除或替换最少数量的字母才能获取原始单词。允许错误的数量取决于原始单词的长度。如果您想要用数据库中的相应值替换文档字段值，请启用选项从数据库复制字段值 。
    • 不要对比 – 将不执行比较，将用数据库中的值替换字段值（选项从数据库复制字段值已启用）。
  9. 使用添加…、编辑…和删除按钮添加、编辑和删除字段之间的链接。


字段值合并规则

此规则是指合并多个字段的值。合并的字段值可用点、空格或其他分隔符隔开。

要创建值合并规则，请执行以下操作：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮。
  4. 从规则类型列表中选择合并字段并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误 并单击下一步。如果合并程序中包括的一个字段已从文档定义中移除，则将显示此规则的错误。
  6. 向要合并字段列表中添加您想要包括在合并程序中的字段列表。使用添加…按钮添加字段。选择结果字段： – 用来存储合并结果的字段。在分隔符：窗口中输入必要的分隔符。
  7. 默认情况下，分隔符将添加在非空值之间。如果您想要程序始终添加分隔符，即使是对于空字段值，请启用选项插入空字段值的分隔符。
  8. 单击完成以完成规则创建。此时，规则名称显示在规则选项卡。

合并规则可存储在任何文档定义字段中。因此，使用不带区域的字段更为方便。

如果您仅需要导出所生成字段的值，而不是包括在合并程序中的字段的值，请为该等字段禁用导出字段值选项。


带脚本帮助的规则集

ABBYY FlexiCapture 9.0 允许您配置带脚本帮助的数据检查规则。

要创建该等规则，请执行以下操作：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮将其断开。
  4. 从规则类型列表中选择脚本并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误 并单击下一步。
  6. 可用字段列表显示了可用对象的列表。您可借助于添加…和删除按钮添加和删除字段。启用了只读选项的字段的值仅可供读取访问，但可借助于脚本覆盖禁用了此选项的字段的值。
  7. 单击编辑…按钮，以打开用于脚本编辑的特定窗口。
  8. 选择脚本语言，输入脚本文本。
  9. 在主菜单中选择工具>检查脚本 可检查脚本。
  10. 选择文件>保存以保存脚本。
  11. 单击完成。所创建的规则将显示在规则选项卡列表中。

注：您想要用于多个规则中的程序应写入全局规则模块，可从脚本编辑器访问该模块。从脚本编辑器工具栏的下拉列表中，选择规则全局脚本模块。也可从文档定义编辑器中访问全局规则模块（文档定义>脚本模块>规则脚本…）。

有关使用脚本创建规则的详细信息，请参见使用 FlexiCapture 9.0 中的脚本。


图数中的总和 - 单词中的总和

图形中的总和 - 单词中的总和

重要事项！只有您选为文档定义选择俄语识别语言时才能设置此规则（文档定义>文档定义属性…）。

此规则旨在将数字总和与用俄语单词表示的相应总和进行对比。如果两个总和不相同，则将显示消息表明规则返回错误。

要创建“图数中总和 - 单词中总和”规则，请执行以下步骤：

  1. 打开字段属性对话框（快捷菜单，属性…）或文档定义属性对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…按钮。
  4. 从规则类型列表中选择总图数 - 总字数（俄语）并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误并单击下一步。
  6. 单击选择…按钮（在数字总和：字段的右侧），然后选择包含数字总和的文档定义字段。
  7. 单击选择…按钮（在单词总和：字段的右侧），然后选择包含同一单词中总和的文档定义字段。
  8. 单击完成以完成规则创建。此时，规则名称显示在规则选项卡上。


值求和计算规则

此规则用于计算多个字段值之和，并将和输入指定的字段。例如，如果文档中有工资、奖金以及其他费用的字段，可以设置规则来计算这些字段之和，并将结果写入特定字段。

要创建求和计算规则，请执行以下操作：

  1. 打开“字段属性”对话框（快捷菜单，属性…）或“文档定义属性”对话框（文档定义编辑器菜单，文档定义>文档定义属性…）。
  2. 转至规则选项卡。
  3. 单击新建规则…
  4. 在规则列表上，选择 计算总和并单击确定。
  5. 输入规则名称，选择规则类型：警告或错误。然后单击下一步。
  6. 向 汇总字段值： 清单中添加要对值进行求和的字段。单击添加…。
  7. 在 结果字段： 字段中，指定要求和的字段。单击 选择…。
  8. 如果至少要使用两个非零的被加数，选择至少要添加两个非空项目。
  9. 单击完成，以完成规则创建。规则名称显示在规则选项卡上。


配置数据导出

要指定如何保存通过处理纸质文档所获取的数据，则需要为每个文档定义设置导出。可能存在四种类型的导出：导出至文件、导出至数据库、导出至 Microsoft SharePoint 库或脚本导出。您所选择的导出类型决定了可用的导出设置。您可为文档定义指定多种导出类型。

对于每种导出类型，请指定应导出的文档：有错误的文件和/或无错误的文档。

对于每种导出类型，请指定其必要性。对于必要的导出类型，未能处理此类型错误将返回错误。对于可选导出类型，未能处理此类型错误则不返回错误。

在图像导出期间，可以隐藏特定字段的图像（以编辑机密信息和其他敏感数据）。字段清单单独对每种导出类型定义。因此，可以控制员工对特定信息的访问权限。要隐藏字段，在配置图像导出时选择 编辑图像中的敏感性数据，然后单击 选择要编辑的字段…，并在 选择要编辑的字段 对话框中，指定字段列表和要隐藏的图像。

自动导出在文档定义属性对话框的导出标签中设置。选择 启用自动报告 即可实现自动导出文档。

要设置导出，请在文档定义编辑器中选择文档定义>导出设置…，并在导出设置对话框中指定所需的导出类型。

导出至文件
图像导出至文件
导出至数据库
导出至 SharePoint
用脚本描述的导出


导出至文件

要配置导出至文件，请执行以下操作：

  1. 在文档定义编辑器窗口中，选择菜单项文档定义导出设置…
  2. 单击添加…并选择导出到数据文件（在类型：字段中）。
  3. 指定是否需要导出。
  4. 指定是否应导出图像。
  5. 指定应导出的文档（有和/或无错误）并单击下一步>。

  6. 指定导出参数并单击下一步>。这些可调整的导出参数由类型：字段中指定的值决定。

      重新创建 Hot Folder 子文件夹的文件名和结构；
      如果选择此值，文件夹结构将模仿导入文档图像的热文件夹的结构。在配置这种导出类型时，请在导出路径：字段中选择要模仿热文件夹结构的文件夹。
      将所有文档导出至一个文件；
      选择此值，将所有数据导出至一个文件。在配置这种导出类型时，请在路径字段中输入数据所要导出到的文件的路径及名称。
      对每个批处理文件创建单独的文件夹；
      选择此值，以将每个文档导出至一个独立文件：
      • 在文件前缀字段中指定路径和文件名的第一个字符；
      • 对于要导出至独立文件夹的每个批处理文件，请选择对每个批处理文件创建单独的文件夹。
      使用模板重新创建文件夹结构和文件名；
      如果选择此值，文件名和子文件夹结构将视文档参数而定。
      • 在导出路径：中指定根导出路径。
      • 指定文件命名选项。单击编辑… 并指定所需的规则即可。更多信息请参阅导出文件命名选项。
      • 在如果文件存在字段中，选择所生成名称的文件已存在时程序所要执行的操作。

      重要事项！为了正确完成导出，在将项目上传到服务器后，请确保以 UNC 格式指定导出路径 (\\computer_name\share_name[\path])。另外，还要确保和导出有关的所有工作站均具备对所指定位置的访问权限。

      采用以下格式指定路径时将发生导出错误：<disk:>\[path]。如果指定的是相对导出路径，则只能通过应用程序界面 (API) 来访问数据。如果要以另外的方式访问数据，相对路径的根文件夹必须采用 UNC 格式来指定（可在项目属性中进行配置）

  7. 选择文件类型（支持的格式有 CSV、DBF、TXT、XLS 和 XML），指定选定的文件类型的其他导出属性，并根据需要选择文本编码。然后单击下一步>。

    Microsoft Office Excel 下一步 (*.xls)；
    • 选择 Excel 版本（5.0/95; 97-2003; 97-2003（与 5,0/95 兼容））；
    • 选择导出时保留值类型，根据数据类型来导出数据。清除此选项可导出所有“常规”类型的数据；
    • 选择为可重复项目编辑独立文件，将包含多个可重复项目的表格和字段导出至独立文件。请留意注意事项；
    • 对于 Excel 5.0/95，请选择一个代码页。
    • 根据需要配置字段名称和格式。单击字段匹配，并在字段匹配对话框中指定文件名和包含有数字和日期的字段格式。
    XML 文档 (*.xml)；
    • 指定要导出的其他数据（字段位置和类型、错误、识别质量数据）；
    • 如果要保存带字段类型描述的 XML 方案，请选择导出时保留值类型。
    • 选择编码；
    • 根据需要指定字段名称。单击字段匹配，并在字段匹配对话框中指定字段名称。
    逗号分隔值文件 (*.csv)；
    • 选择列分隔符：；
    • 如果要将包含多个重复项目的表格和字段导出至独立文件，请选择为可重复项目编辑独立文件。请留意注意事项；
    • 选择编码；
    • 根据需要配置字段名称和格式。单击字段匹配，并在字段匹配对话框中指定文件名和包含有数字和日期的字段格式。
    文本文件 (*.txt)；
    • 选择列分隔符：；
    • 如果要将包含多个重复项目的表格和字段导出至独立文件，请选择为可重复项目编辑独立文件。请留意注意事项；
    • 选择编码。
    • 根据需要配置字段名称和格式。单击字段匹配，并在字段匹配对话框中指定文件名和包含有数字和日期的字段格式。
    DBase 文件 (*.dbf)；
    • 选择导出时保留值类型，根据数据类型来导出数据。所有文本类型的字段应清除该选项。
    • 如果要将包含多个重复项目的表格和字段导出至独立文件，请选择为可重复项目编辑独立文件。请留意注意事项；
    • 根据需要配置字段名称。单击字段匹配，并在字段匹配对话框中指定字段名称。
  8. 如果要保存图像，请指定图像保存参数并单击下一步>。
    • 选择同时保存图像和数据，或指定图像文件夹；
    • 选择图像文件命名方案：与数据文件相似或相反。请参阅导出文件命名选项。
    • 指定包含要在导出过程中隐藏的图像的字段。
  9. 如果应存储图像，请指定图像存储选项，单击下一步>。
    • 选择所需的图像格式、质量和颜色。
    • 要更改源图像的分辨率，请选择将分辨率更改为并从列表中选择相应的值。
    • 如果选择 PDF 或 PDF/A 作为存储格式，则可创建可搜索的 PDF 文件，只需选择 创建可搜索 PDF。您可选择与在文档定义中指定的语言不同的语言（或多语言文档的语言）：单击选择…（在语言：字段的右侧），并选择相应的语言。如果想要使用在文档定义中指定的语言，请选择与文档定义中相同（在语言：字段中）。
  10. 输入导出配置文件名称，单击完成。

注：默认情况下，重复字段（即，带有多个实例和表格的字段）导出至已为其创建了新文件夹的独立文件中。文件夹的名称包括导出文件夹名称。要禁用将重复字段导出至独立文件，请清除选项为可重复项目编辑独立文件（在导出目标向导选项卡上，此选项可用于 XML 以外的所有格式）。在此情况下，当重复字段被导出至一个导出文件时，程序将为每个元素实例添加新行。


将图像导出至文件

图像导出至文件

要将图像导出至文件：

  1. 在文档定义编辑器窗口中，选择文档定义>导出设置…
  2. 单击添加…并选择导出到图像文件字段中的 类型：。
  3. 指定是否需要导出。
  4. 指定应导出的文档（有错误和/或无错误）并单击下一步>。
  5. 指定导出参数并单击下一步>。这些可调整的导出参数由类型：字段中指定的值决定。
      重新创建 Hot Folder 子文件夹的文件名和结构；
      如果选择此值，文件夹结构将模仿导入文档图像的热文件夹的结构。在配置这种导出类型时，请在导出路径：字段中选择要模仿热文件夹结构的文件夹。
      将所有文档导出至一个文件；
      选择此值，将所有数据导出至一个文件。在配置这种导出类型时，请在路径字段中输入数据所要导出到的文件的路径及名称。
      将文档导出为独立的文件；
      选择此值，以将每个文档导出至一个独立文件：
      • 在文件前缀字段中指定路径和文件名的第一个字符；
      • 对于要导出至独立文件夹的每个批处理文件，请选择对每个批处理文件创建单独的文件夹。
      使用模板重新创建文件夹结构和文件名；
      如果选择此值，文件名和子文件夹结构将视文档参数而定。
      • 在导出路径：中指定根导出路径。
      • 指定文件命名选项。单击编辑… 并指定所需的规则即可。更多信息请参阅导出文件命名选项。
      • 在如果文件存在字段中，选择所生成名称的文件已存在时程序所要执行的操作。

      重要事项！为了正确完成导出，在将项目上传到服务器后，请确保以 UNC 格式指定导出路径 (\\computer_name\share_name[\path])。另外，还要确保和导出有关的所有工作站均具备对所指定位置的访问权限。

      采用以下格式指定路径时将发生导出错误：<disk:>\[path]。如果指定的是相对导出路径，则只能通过应用程序界面 (API) 来访问数据。如果要以另外的方式访问数据，相对路径的根文件夹必须采用 UNC 格式来指定（可在项目属性中进行配置）

  6. 指定图像保存选项，单击下一步 >。
    • 选择所需的图像格式、质量和颜色。
    • 要更改源图像的分辨率，选择将分辨率更改为，并从列表中选择适当的值。
    • 如果选择 PDF 或 PDF/A 作为存储格式，则可选择 创建可搜索 PDF 来创建可搜索的 PDF 文件。您可选择一种与在文档定义中指定的语言不同的语言（如果是多语言文档，则可选择多种语言）：单击选择…字段右边的语言：，并选择相应的语言。如果要使用在文档定义中指定的语言，请选择与文档定义中相同字段中的语言：。
  7. 输入导出配置文件名称，单击完成。


导出至数据库

要配置导出至数据库，请执行以下操作：

  1. 在文档定义编辑器窗口中，选择菜单项文档定义>导出设置…
  2. 单击添加…并选择导出到 ODBC 兼容数据库字段中的类型：。
  3. 指定是否需要导出。
  4. 指定是否应导出图像。
  5. 指定应导出的文档（有错误和/或无错误）并单击下一步>。

  6. 指定导出设置并单击下一步>。

    • 建立数据库连接。在连接字符串：窗口中输入连接参数，或单击设置连接…按钮，并在数据链接属性对话框中配置连接参数。
    • 从下拉列表中选择方案。
    • 可以单击测试连接按钮来检查数据库连接。

      提示：建议将 OLE DB Provider for ODBC Drivers 用作 OLE DB Provider。选择 OLE DB Provider for SQL Server 可能导致在处理某些数据类型和长字段时出现问题。

    • 匹配文档定义字段与数据库表格列。要执行该操作，请单击设置字段映射…
    • 在字段映射对话框中，指定程序要将文档定义字段值导出到的数据库表格和表格列。
      详细信息...

      左侧的字段映射对话框包含文档节段和字段。在右侧，您必须将其与数据库中的表格和字段相匹配。如果数据库已有用于数据导出的表格，那么在字段映射对话框中，需要为每个文档节段以及每个文档字段的数据库表格列选择数据库表格。

      如果数据库没有用于导出的表格，则可单击自动创建表格按钮来自动创建数据库表格。单击此按钮后，程序将创建带有您导出时需要的结构的表格。文档字段将与表格列相匹配。

      字段组及带有多个实例和文档表格的字段均将导出至数据库中的独立表格。主键和外键用于将主要表格与附属表格相链接。在主要表格中，主键添加至每个条目中。在附属表格中，每个条目均有一个外键，其记录了主要表格中相应条目主键的值。如有必要，将自动添加主键和外键。您仅需要指定要将键导出到的字段。

      默认为启用显示链接的列选项。如果禁用此选项，则树状图右侧上的可用表格列的列表不显示已为其作出了导出配置的列。

  7. 如果应保存图像，请指定图像保存选项，单击下一步>。
    • 指定是否应将图像保存至数据库或另存为文件。
    • 如果选择将图像保存至文件，请指定文件命名模板（单击 文件命名选项…）以及是否应覆盖同名文件。更多信息请参阅导出文件命名标准。
    • 如有必要，指定要在导出时隐藏的字段。
  8. 如果应保存图像，请指定图像存储选项，单击下一步>。
    • 选择所需的图像格式、质量和颜色。
    • 要更改源图像的分辨率，选择将分辨率更改为，并从列表中选择适当的值。
    • 如果选择 PDF 或 PDF/A 作为存储格式，则可选择 创建可搜索 PDF来创建可搜索的 PDF 文件。您可选择一种与在文档定义中指定的语言不同的语言（如果是多语言文档，则可选择多种语言）：单击选择…字段右边的语言：，并选择相应的语言。如果要使用在文档定义中指定的语言，请选择与文档定义中相同字段中的语言：。
  9. 输入导出配置文件名称，单击完成。

注：

  1. 图片导出至独立的文件。图片文件的名称和路径可存储在相应的数据库字段中（可在映射字段时作出此设置）。
  2. 如果图像和图片等目标文件夹的路径包含网络磁盘，请确保处理此项目的所有处理工作站均可访问此磁盘。


将数据导出至 SharePoint 文档库

ABBYY FlexiCapture 9.0 可供您将文档导出至 MicrosoftTM SharePoint 文档库。因此，在您将获取的文档图像库中，每个文档的附加列中均填充有某些字段的值。

注：

  1. 设置将数据导出至 SharePoint 需要管理员权利。仅具备贡献者权利就足可将数据导出至 SharePoint。
  2. 用于记录数据的 SharePoint 列，其类型必须为单行文本或多行文本。

要设置导出到 SharePoint：

  1. 在文档定义编辑器窗口中，选择文档定义导出设置…
  2. 单击添加…
  3. 选择 导出到 SharePoint（在类型：字段中）。
  4. 指定是否需要导出。
  5. 指定应导出的文档（有和/或无错误）并单击下一步>。

  6. 指定导出设置。

    • 服务器 URL（例如：http://myserver）： – 输入 SharePoint 库所在的服务器的地址。使用连接设置…按钮设置验证参数（默认情况下，将使用 Windows 身验证参数）和代理设置（如有必要）。
    • 在服务器地址下方，指明了连接状态。如果服务器断开连接，请单击连接即可重新建立连接。
    • 连接至 SharePoint 服务器后，从选择 SharePoint 库：列表中选择一个库。
    • 单击浏览…并在库中查找所需的文件夹。
    • 在内容类型：字段中，选择您的文档内容的类型（支持 SharePoint 2007 版本以上的文档)。在此情况下，您可将值导出至与选定内容类型相对应的字段中。
    • 现在请指定应导出的文档定义字段及要导出的位置。单击设置字段映射…按钮，在字段映射对话框中选择所需的选项。在此对话框中，必须建立文档定义字段与 SharePoint 文档列之间的对应。文档定义字段显示在左侧。对于要导出的每个文档定义字段（但组和表格除外）您均可选择空白的 SharePoint 列。
  7. 单击下一步>。
  8. 输入导出配置文件名称，单击完成。

完成导出后，文档将保存在指定的 SharePoint 库中，每个文档均有一个对应列（其中填充了源自指定字段的值）。这些值可用于搜索和建立文档索引。


用脚本描述的导出

要借助于脚本配置导出：

  1. 在文档定义编辑器窗口中，选择文档定义导出设置…
  2. 单击添加…
  3. 选择 自定义导出（脚本）（在类型：字段中）。
  4. 指定是否需要导出。
  5. 指定应导出的文档（有和/或无错误）并单击下一步>。
  6. 选择脚本语言JScript(r) 或 VBScript）。
  7. 在单击编辑脚本…时显示的编辑器窗口中键入脚本代码。然后单击下一步>。
  8. 输入导出配置文件名称，单击完成。

注：您想要用于多个导出脚本中的程序将写入全局导出模块，可从脚本编辑器访问该模块。从脚本编辑器工具栏的下拉列表中，选择导出全局脚本模块。也可从文档定义编辑器中访问全局导出模块（文档定义>脚本模块>导出脚本…）。

有关使用脚本描述导出的详细信息，请参见使用 FlexiCapture 9.0 中的脚本。


导出文件命名规则

导出文件命名标准

在导出期间，将根据用户指定的标准，自动形成文件名和路径。数据文件名和图像文件名均可配置。

可以在 导出文件目标 窗口中配置文件名和路径信息。根据选择的导出类型，可通过单击 编辑…（在带文件命名模板的字段的左侧） 或 文件命名选项…来打开此窗口

文件导出模板形成类型有两种（在 视图：字段中选择）：

简单;

对于这种类型，可以选择附加路径（设置图像导出与导出数据至文件同时进行时除外）、文件名的重要部分，并根据需要添加标识符。

要指定相对路径，选择 使用其他路径： ，然后选择方法：与热文件夹结构相似（热文件夹的相对源路径）或根据批处理文件名称 (批处理文件名称)。

以下项目可以用作文件名的重要部分：

  • 源文件名;
  • 文档定义名称;
  • 指定的文件名： - 用户指定的字符的组合。

以下项目可以用作附加标识符

  • 文档标识符（选择 添加文件标识符至文件名）；
  • 索引字段值（选择 添加索引字段至文件名，然后单击 … ，并选择 选择字段 窗口中的索引字段）。
高级.

对于这种类型，文件命名模板将作为 文件名称模板： 字段中的文本行输入。模板可以包含永久的部分和标记，这些部分和标记可以被替代为特定文件信息。可以使用键盘来输入标记，也可以使用 添加标记… 和 删除标记 按钮来添加和删除标记。

为了正确地生成文件名，请确保您所选择的文件命名选项不会生成空文件名。如果发生此情况，程序将显示警告消息。


在文档窗口中配置数据显示

识别数据后，用户将在文档窗口中看到它。默认情况下，数据将按顺序排列，其标题与文档定义字段的名称相对应。

但是，您可更改数据显示，对其进行方便的排列，或重命名元素。可在文档定义编辑器窗口的右下角编辑数据显示。

您可在数据表单中更改字段标题，无需在文档结构中更改其名称。要更改标题，打开字段属性对话框，单击常规选项卡，然后在标题：字段中输入新名称。此名称将用作数据表单字段中的标题。此功能对自定义列名称有用，特别是对于无法在其中更改字段名称的 FlexiLayout。

可在文档定义属性对话框的数据表单选项卡上指定字段名称和已识别数据值的文本字体和大小（文档定义>文档定义属性…）。您也可更改大小，只需在数据表单窗口中单击右键，并选择首选大小（快捷方式菜单项文本大小）。

您可移动、修改和重命名字段并更改其他字段属性。要返回原始的字段显示，请选择合适的快捷方式菜单项。

您可添加任何文本，例如说明。要执行此操作，请在数据表单窗口中单击右键，选择插入标签方框。输入文本，替换标签文本。


文档定义属性

基本文档定义属性，例如其名称、语言和书写风格均是在借助于文档定义向导的情况下配置的。其他属性默认配置。

您可在属性对话框中查看和更改文档定义的属性，当您在文档定义编辑器窗口中选择菜单项文档定义>文档定义属性…时将会打开此对话框。

此对话框有六个选项卡。

常规选项卡

在此选项卡上，您可重命名文档定义并输入或编辑其描述。已启用：选项包括文档定义及将其从文档处理中排除。

识别选项卡

在此选项卡上，您可修改文档定义识别的一般属性：

  • 语言（区域）： – 务必指定用于正确识别的语言。此属性确定输入语言和其他本地设置，例如，日期格式和货币等。
  • 书写风格： –各个国家/地区的书写风格可能差别很大，正因如此，指定因家/地区以使程序选择典型的书写风格才变得很重要。

  • 指定文本类型：

    ICR（手印） – 如果文档中大多数字段将用手填写，请启用此选项；

    OCR（打印）： –如果将打印大多数字段中的值，请启用此选项。在下拉列表中选择打印类型。

    注：并非所有语言均支持识别手印文本。对于某些语言，此识别类型将不可用。参见受支持的识别语言。

    以后您可为单一字段更改文本类型，将默认使用在此阶段中指定的类型。

  • 您可在可能的页面方向组中启用一个或多个选项，以便在选择自动页面方向期间将按 180°、顺时针 90°或逆时针 90°旋转页面。
  • 单击高级选项…以配置线性和非线性图像失真的纠正。

组装 选项卡

此选项卡用于配置多页文档的组装规则。

在最简单的情景下，文档定义包括只出现一次的单一节段。如果文档定义包括多个节段，此选项卡将显示其名称列表。您可指定每个节段的重复次数，只需在最小数量和最大数量列中修改数量。

  • 检查重要字段的均等性 – 如果您想要根据关键字段检查文档组装，请启用此选项。然后，在关键字段列中为每个节段选择关键字段。当您输入文档时，只有带有每个节段中关键字段匹配值的文档才视为已正确组装。如果其值不匹配，则将显示组装错误消息。
  • 启用附加页面 – 如果您想要处理带附录的文档，请启用此选项。
  • 有时，您可能想要在文档中禁用节段顺序检查（例如，如果切段顺序不影响文档组装）。选择禁用节段次序检查以禁用检查。程序仍将检查显示在文档中的所有节段，但忽略其顺序。

有关详细信息，请参见为多页文档创建文档定义、将页面组装进文档及为带附录的文档创建文档定义。

规则 选项卡

此选项卡用于执行带有文档定义规则的操作。您可删除、编辑或创建新规则。

有关详细信息，请参见规则校验。

导出 选项卡

此选项卡显示指定文档定义的当前导出设置。要更改导出设置，请单击编辑…按钮

有关详细信息，请参见配置数据导出。

数据表单 选项卡

在此选项卡上，您可修改用于显示已识别数据的字体轮廓和大小。

数据文本设置组包含用于显示已识别值的字体设置。

标签文本设置组包含用于显示说明性文本（字段名称）的设置

有关详细信息，请参见在文档窗口中配置数据显示。


为通过 ABBYY FormDesigner 创建的表单导入文档定义

ABBYY FormDesigner 是一种便利工具，专用于创建机器可读表单。除了符合自动化文档处理的所有要求的表单，通过 ABBYY FormDesigner 设计的表单也可为您提供几乎可直接用于在 ABBYY FlexiCapture 9.0 中处理这些表单的 Document Definition。

要获取用于处理通过 ABBYY FormDesigner 设计的表单的文档定义，请执行以下操作：

在 ABBYY FormDesigner 中：

  1. 创建表单
  2. 发布表单
  3. 将其导入 XML Form Definition 格式。您将获取扩展名为 .xfd 的文件。

有关如何创建、发布和导出表单的详细信息，请参见 ABBYY FormDesigner 9.0 帮助主题和用户指南。

在 ABBYY FlexiCapture 中：

  1. 在程序主窗口中，选择菜单项项目>文档定义…；
  2. 在文档定义对话框中，单击导入…按钮
  3. 在打开的打开要导入的文件对话框中，从文件类型下拉列表中选择 XML Form Definition 文件 (*.xfd)并指定 *.xfd 文件的路径；
  4. 新文档定义的名称显示在文档定义对话框的文档定义列表中。

打开用于编辑的已导入文档定义后，您将看到字段标记和静态元素已显示在图像中。您只需编辑字段属性并配置导出即可。


为多页文档创建文档定义

ABBYY FlexiCapture 9.0 可供您为多页文档创建文档定义。文档定义可能包含任何数量的节段，而节段可能包含一个或多个页面。多页文档的文档定义需要您指定节段顺序其编号及用于将页面组装进文档的规则。

在向导完成创建新的文档定义后，将创建不包含节段的简单文档定义。您可将页面添加至文档定义。当您添加页而时，其图像添加至文档定义编辑器窗口中的图像区域，在其中创建的字段将列在普通的字段列表中。在此情况下，文档包括单一节段，即使其可能包含多页。

如果文档具备持续或反复出现在多页上的区域或持续出现在下页中的表格，则应向单一节段中添加页面。此同一方法也用于加载多页弹性描述（请参见为处理弹性文档创建文档定义）。弹性描述中的所有字段必须属于文档定义中的一个节段。

另一种方法是向文档定义添加节段。在最简单的情景下，一个节段包含一页。如果页面上的字段集是独立的，您可选择它。此方法更有说明性：文档结构显示字段所属的节段，您也可配置文档组装的自定义结构。让我们假设，例如，您的文档包含三种类型的页面，第一种和第三种类型的页面可能出现一次，而第二种类型的页面可能出现 2 到 5 次。然后，您必须创建节段，每种页面类型创建一个节段，并指定节段在文档中的顺序及其可能重复的次数。

更为复杂的情景是：文档定义包括多个节段，某些节段包括多页。例如，这可能是包含固定节段和弹性多页节段的文档定义。或描述包含可能多次重复出现的双面表的文档的文档定义。假设您需要为包含标题页（A 页）和一定数量双面表（页面顺序 - BCBC...）的文档创建文档定义。因此，您将创建包含一个 A 页及由 B 页和 C 页组成的 BC 节段的节段 A。文档结构配置如下：节段重复一次，然后是节段 BC，节段 BC 重复 3 到 7 次。

对于包含多个节段的文档定义，您可启用校验关键字段及重复节段的顺序和次数。要实现此目的，您必须在每个文档节段中标识关键字段。其值在不同节段中必须相同。关键字段的一个示例是必须写在每页上的文档完成人员的姓，或某一标识数字。

处理批处理文件时，程序将尝试将一系列页面组装进文档，并在此过程中检查组装规则。程序将检查关键字段值。如果同一文档各页上的关键字段不匹配，则将显示错误消息。有时发生此情况，是因为文档页面在扫描期间放置不正确，在此情况下，更改页面顺序足以符合文档组装规则。参见将页面组装至文档。

要将页面添加至节段中，请使用文档定义编辑器菜单项文档定义>添加页面…或图像快捷方式菜单中的添加页面…菜单项。然后，加载新的未完成页面的图像，并选择必须在页面上自动标记的对象类型。

要添加新节段，请使用文档定义编辑器窗口中的菜单项文档定义>添加文档节段…。此时，节段创建向导将打开，以协助您配置所有必要的参数。遵循向导说明执行以下操作：

  • 指定节段名称。
  • 加载未完成页面的图像（扫描或从文件加载）或加载弹性描述文件。
  • 选择将自动标记的对象类型。

将在文档结构窗口中显示一个新节段及其所包含的字段。

要查看在创建文档定义时生成的文档结构，请在文档定义编辑器窗口右侧的文档结构窗口中，转至页面选项卡。其以页面概述模式显示了文档结构。在此选项卡上，您可更改文档中包含的节段数（要实现此目的，请在节段名称右侧的方块形中输入新值 - 数字或时间间隔）、附加附录页、更改节段中页面顺序并将页面从一个节段移至另一个节段（只需拖放页面）。

显示文档结构窗口

要指定重复节段的顺序和重复次数及组装规则，请使用文档定义编辑器窗口中的菜单项文档定义>文档定义属性…。在组装选项卡上，指定文档中每个节段的最小数量和最大数量（默认值 – 1）。如果您想要检查关键字段的值，请启用选项检查重要字段的均等性 并在每个节段中选择关键字段。

有时，您可能想要在文档中禁用节段顺序检查（例如，如果切段顺序不影响文档组装）。选择文件菜单上的禁用节段次序检查以禁用检查。程序仍将检查显示在文档中的所有节段，但忽略其顺序。

显示组装选项卡


为弹性文档处理创建文档定义

对于帐单、付款单和相似文档，您无法创建带有固定字段位置的文档定义。这是因为其位置、大小和编号可能不相同，从而导致固定文档定义无法应用于所有文档。在该等文档中，程序将在预识别整个页面后搜索字段，并根据关键字和相对字段位置创建弹性描述。有一种特殊的程序模块 ABBYY FlexiLayout Studio 9.0 用于设计弹性描述（随 ABBYY FlexiCapture 9.0 一起提供）。您可在 ABBYY FlexiLayout Studio 9.0 的帮助主题中找到有关如何设计弹性描述的详细说明。

弹性描述导出至 .afl 文件，并加载进 ABBYY FlexiCapture 9.0。可将弹性描述用于整个文档定义或用作其节段之一。弹性描述可能是多页的。

附加弹性描述

可在创建文档定义阶段附加弹性描述。要执行此操作，在文档定义向导的第二个阶段添加文档图像，然后启用选项加载 FlexiLayout输入包含弹性描述的 .afl 文件的路径。

在文档定义节段的对话框中，可从文档定义编辑器窗口中附加弹性描述。

  1. 选择文档节段。（如果文档包括单一节段，请在文档结构窗口中，打开页面选项卡，选择此单一节段的名称。）单击右键，并从快捷方式菜单中选择属性…。
  2. 转至FlexiLayout选项卡。
  3. 单击加载…
  4. 选择所需的包含弹性描述的 .afl 文件。

附加弹性描述后，字段和几何布局将显示在图像上。现在，您必须如同在固定文档定义中一样配置字段属性。指定识别、校验和导出属性，并设置必要的规则。

注：导入带有包含可能字段值的文本文件的 FlexiLyout 时，可根据创建 FlexiLayout 时定义的相对路径存放这些文件。相对路径与项目文件相对。要编辑这些文件，请在本地保存项目（选择项目>导出项目…），编辑文件、在服务器上更新项目（选择项目>更新项目…）。


为带有附录的文档创建文档定义

ABBYY FlexiCapture 9.0 可供您为包含附录的文档创建文档定义。附录是每个表格可能附有的附加页面。没有文档定义应用于这些页面，但在文档组装期间会考虑到这些页面。例如，所提交的贷款申请表（固定表单）就附有自由表单格式的损益表。此损益表可作为附录处理。

要为带有附录的文档创建文档定义：

第一种方法：

  1. 打开页面选项卡（在文档结构窗口中，文档定义编辑器的第一部分）。
  2. 启用选项启用文档中的附加页面。
  3. 在节段名称右侧显示的方框中输入附录页面的数量或范围。
显示文档结构窗口

另一种为带有附录的文档创建文档定义的方法：
  1. 打开文档定义属性对话框（在文档定义编辑器窗口中选择文档定义>文档定义属性…）。
  2. 转至组装选项卡。
  3. 启用选项启用附加页面。此时附加页面行将显示在节段列表中。
  4. 在附录中输入最小和最大页面数。
显示对话框

为了保存附录文本，当配置导出时，您需要指定图像保存选项（在导出设置对话框中）。如果您选择可搜索 PDF 来保存图像，则将识别文本并保存在可搜索 PDF 文件中。


处理非结构化文档

ABBYY FlexiCapture 9.0 可用于处理包含以自由样式显示的信息的文档，例如，合同、信函、订单和附录。由空白表或条形码页面分隔的带有文本或图像的非结构化文档经过处理后导出至可搜索的 PDF 文件或图形文件。

处理该等文档通常涉及将转文档转换为电子表单并根据关键字段值运行搜索。

如有可能，在该等文档部搜索关键字段（例如，合同编号）使用通过 ABBYY FlexiLayout Studio 创建的弹性描述执行。参见创建用于处理弹性文档的文档定义。

如果无法自动搜索关键字段，操作员则可手动输入其值。I 要实现此目的，请创建带有一个字段（如有必要，也可以是多个字段）文档定义，并在此字段的识别属性中启用选项不要识别（将自动输入图像字段中的密钥）。操作员可在运行校验过程时手动输入关键字段。

您需要配置导出以启用数据存储：您可将关键字段值导出至文件或数据库，并以方便的格式保存文档图像。可将文档图像保存在图形文件或可搜索的 PDF 文件中。

将页面组装进行文档时请密切注意：通过可能为固定格式的非结构化文档可确定某而所属的文档。为了自动化非结构化文档的组装，我们建议使用空白表或带条形码的页面分隔文档。将图像添加至批处理文件（通过扫描、从文件添加或创建导入配置文件）时，您可能需要启用选项适用于由以下项分隔的图像并从下拉列表中选择值空白页面或带有条形码的页面具体取决于要用作分隔符的页面。页面自动组装进文档中：页面将添加至当前的文档，直至到达下一个分隔符页面。有关详细信息，请参阅添加页面图像。


编辑和发布文档定义

可在文档定义编辑器窗口中编辑文档定义。在此，您可修改字段和静态元素的布局，编辑其属性、规则并导出设置等。

为了不影响其他项目成员在编辑文档定义时所作的工作，程序允许您在将最新发布的文档定义版本用于识别时编辑本地文档定义副本。在此模式中，可在本地修改和测试文档定义，而操作员可完成对使用旧版本识别的文档的校验和导出，即使已对文档定义作出大幅修改或将其删除。其他用户不可访问正被编辑的文档定义以对其进行编辑。当您完成编辑文档定义后，即可将其发布、为其制作可用于文档识别的新版本或撤消所有更改。

要编辑文档定义，请执行以下操作：

  1. 在程序主窗口中，选择菜单项项目>文档定义…
  2. 选择要编辑的文档定义。
  3. 单击编辑…按钮（在文档定义）对话框中，以开始编辑文档定义。文档定义的本地版本将复制到您的 PC。文档定义将变成不可供其他用户访问以进行编辑。
  4. 在文档定义编辑器窗口中作出必要的修改。保存文档定义
  5. 通过多个图像测试文档定义。对于文档定义调整，您可使用适用于本地版本文档定义的测试批处理文件。
  6. 单击发布按钮（在文档定义对话框中），以发布文档定义。发布之后，新的文档定义版本将用于识别工作批处理文件中的文档。文档定义现在供其他管理员编辑。要返回原始的文档定义，请单击放弃更改。
  7. 文档定义将按其在文档定义窗口中列出的顺序应用。如有必要，更改文档定义的顺序。
  8. 要加快 FlexiLayout 匹配，请选择使用第一个可接受弹性布局以使程序使用第一个匹配的 FlexiLayout。否则，程序将尝试应用每个 FlexiLayout，然后选择最佳匹配。

新的文档定义版本在得以发布后将立即用于识别和进一步文档处理。但是，先前版本的文档定义用于在发布之时已被处理的文档。您可为处理中的文档更新文档定义，只需选择工具>更新至最新版本。取决于您对文档定义所作出的更改，将显示消息提示您重新识别文档（如果识别参数已更改）、重新检查规则（如果规则已更改）或重新导出文档（如果只有导出设置已更改）。


测试文档定义

开始大批量文档输入之前，必须测试文档定义。可使用添加至测试批处理文件的文档执行测试，因为这些批处理文件兼容于本地文档定义版本。可从程序主窗口的项目>测试批处理文件 菜单中获取这些批处理文件。您也可从文档定义编辑器窗口中访问测试批处理文件，只需选择工具>切换至测试批处理文件…。

重要事项！只有创建测试批处理文件的用户才能处理测试批处理文件。如有必要，工作批处理文件可用作测试批处理文件的一部分，在此情况下，其将用作测试批处理文件的图像来源。

可直接在文档定义编辑器中测试文档定义，针以用于创建文档定义的图像执行。要开始测试，请选择文档>运行测试。在处理文档时，将显示数据表单，及格式错误、不确定字符和规则错误。

您可使用文档>视图菜单重新排列窗口，并使用文档>校验菜单导航校验项目、不确定字符和规则错误。单击完成测试按钮或选择文档>完成测试 可停止测试。

注：在测试模式中，更改字段边界将不会引起程序重新识别字段，但当您在文档窗口中更改字段边界时却会出现此情况。

要针对其他图像测试文档定义，请选择测试批处理文件（在文档定义编辑器中选择工具>切换至测试批处理文件…）。在显示批处理文件选择对话框之前，程序检查当前文档定义是否有错误。如果文档定义无错误，则将其保存，并显示批处理文件选择对话框。当您在此对话框中选择批处理文件时，主程序窗口将激活，并自动切换至新选择的批处理文件。

我们建议检查至少带有 20 个文档图像的每个文档定义（如果文档是用手填写的，最好是使用由不同人填写的文档）。

需要执行测试，以确定是否：

  1. 是否有足够数量的已标记定位点和标识符供将文档定义应用于图像。
  2. 是否已正确配置字段属性。
  3. 是否已正确配置规则。
  4. 是否已正确配置导出。

在测试期间，您需要执行在处理文档时所执行的整个一系列操作。

如果在测试期间检测到规则错误、不正确的字段值等，则必须编辑文档定义才能纠正它们。

只有清除所检测到的所有问题后，您才能发布文档定义并开始大批量输入文档。

项目符号 操作已配置项目


分类器

分类器是在 ABBYY FlexiLayout Studio 中创建的项目，用于初步识别单一页面并将其分类为属于某特定类型。例如，可根据 FlexiLayout 或布局备选项分类页面。在 ABBYY FlexiLayout Studio 中创建分类器后，就可在 ABBYY FlexiCapture 中将其用于在项目级别或批处理文件类型级别分类文档。

要在项目级别添加分类器项目：

  1. 打开项目。
  2. 在主窗口中，在项目菜单中选择项目属性…。此时显示项目属性对话框。
  3. 单击识别选项卡，并单击加载…
  4. 选择包含分类器的 *.cfl 文件。

注：创建批处理文件时，如果将默认值指定为批处理文件类型，则在项目属性中指定的设置将用于处理。

要在批处理文件级别添加分类器项目：

  1. 打开批处理文件类型对话框（通过选择项目>批处理文件类型…）
  2. 从列表中选择批处理文件类型，单击编辑…。此时出现批处理文件类型属性对话框。
  3. 单击识别选项卡，然后在分类器部分中单击加载…
  4. 选择包含分类器的 *.cfl 文件。

分类器用于以下目的：

  • 加快选择文档定义。通过使用分类别，程序不必在搜索最佳匹配时搜索所有可用文档定定义，而是根据分类功能选择合适的文档定义。搜索顺序由用户确定，该用户选择分类功能并构建分类器树状图。对于具备大量文档定义的大规模项目，速度提升特别明显。
  • 要在分类器树状图中发布分类功能。例如，在最底层，您可根据带有某公司名称的文档部分选择在该公司内部发送的文档。在下一级别，可根据文档的标题或特定页面上的分隔符数量对文档进行分类。
  • 要管理第三方 FlexiLayout 应用程序。第三方开发人员创建的 FlexiLayout 可能与其文档不匹配。在此情况下，您可使用分类器作以补救，无需联系开发人员。
  • 要加速包含多语种文档定义的项目。如果使用了分类器，则仅执行两次文档预识别：当分类文档时及在应用选定的文档定义时。否则，必须为项目中每个语种的文档定义执行预识别。

有关分类器的详细信息，请参见 ABBYY FlexiLayout Studio 帮助。


图像导入配置文件

文档处理从添加新图像开始。新图像通常是在扫描工作站上添加的（有关详细说明请参见“扫描工作站帮助”）。但是，也可在校验工作站和项目安装工作站上添加新图像，可自动从热文件夹添加。

如果图像定期采集自同一来源，也可在校验工作站和/或项目安装工作站上自动化图像添加例行程序。要自动化此过程，请在项目安装工作站上创建图像导入配置文件。此外，您可在后台模式中配置对传入图像的处理及图像的定期添加。配置了所需的设置后，单击鼠标，就可扫描图像或从预设来源导入图像，并处理收到的图像（例如，已去斑的图像）。如有必要，您可更改图像导入的来源或其设置。

如果导入来源经常发生变化，则可创建多个导入配置文件，并在这些配置文件之间切换，以避免一直在改变导入来源设置。

创建导入配置文件

要添加导入配置文件，请从主程序窗口中选择菜单项项目 > 图像导入配置文件…。在打开的对话框中，您可创建新的导入配置文件、编辑、删除和复制现有配置文件。

您可借助于“配置文件向导”创建新的导入配置文件，可从图像导入配置文件对话框运行该向导，只需单击新建…。在向导运行的第一个阶段，选择导入来源，例如，扫描仪或热文件夹。

通过扫描仪创建导入配置文件
  1. 选择扫描仪：作为导入来源。

    重要事项！必须连接扫描仪。要正确连接扫描仪，请查阅扫描仪随附的文档。确保安装扫描仪随附的所有 软件。

  2. 在第二步中，您可配置用于扫描和处理已扫描图像的选项：
    • 设置对话框的样式： – 选择程序与扫描仪之间的迭代方法：
      • FlexiCapture 扫描仪设置：在此情况下，ABBYY FlexiCapture 的扫描仪设置对话框用于配置扫描选项。单击设置…按钮以配置扫描选项。如已启用扫描之前显示扫描仪设置则当您在扫描之前选择此导入配置文件时，将显示 ABBYY FlexiCapture 的扫描仪设置对话框。
      • 扫描选项：将使用相关扫描仪驱动程序的对话框配置扫描选项。在此情况下，您在创建导入配置文件时将无法更改扫描选项，但每当您开始扫描图像之前均将显示扫描仪设置对话框。
    • 指定想要在单程中扫描一个还是多个图像。
  3. 在下一步中，您可配置用于确定将图像添加至文档的原则的选项及图像处理选项。详情请参阅图像预处理选项。
  4. 在最后一步中，您可更改分配给导入配置文件的默认名称，并输入您的注释。
通过热文件夹创建导入配置文件
  1. 选择热文件夹：作为导入来源。指定热文件夹的路径：单击浏览…按钮

    重要事项！要从热文件夹添加图像，用户必须有对该文件夹的读写权限。

  2. 在第二步中，设置图像加载选项：
    • 每 – 启用此选项，输入程序自动检查热文件夹是否有新图像的时间间隔。

      注：要启动从热文件夹导入图像，请在处理服务器监控中为指定的项目启用热文件夹。

    • 在批处理文件设置中，启用其中一个选项以指定用于添加新图像的批处理文件。
      • 将图像添加至当前批处理文件 – 启用此选项以便将图像从热文件夹添加至当前批处理文件；
      • 将图像添加至指定批处理文件： – 启用此选项并从下拉列表中选择批处理文件名称，以将图像添加至特定批处理文件；
      • 自动为导入图像创建新批处理文件 – 启用此选项，以自动为新图像创建批处理文件。在批处理文件类型：字段中，指定批处理文件的类型。如有必要，指定批处理文件注册参数（单击注册参数…）并在优先级：字段中更改其优先级。
    • 在要添加的文件数下拉列表中，选择其中一个值以指定要添加至指定的或新创建的批处理文件的文件数：
      • 根据描述文件 – 将根据描述添加文件。要指定已描述文件的名称和类型，请单击设置…按钮。有关详细信息，请参见描述文件。
      • 所有文件 > 将添加热文件夹中的所有文件。
      • 从子文件夹 - 将添加子文件夹中名称符合指定格式的所有文件。单击设置…以指定名称格式。
      • 多个文件 – 将添加多个文件。要指定文件数量，请单击设置…按钮，以输入数量或值范围。
      • 注：如果指定一定数量的文件，例如 5，且热文件夹中只剩下4个文件，则将不导入这些文件。如果指字范围，例如，1-5，则将导入剩余的5个文件。
      • 单个文件 – 将添加单个文件。
    • 如果配置文件用于导入照片而不是扫描的图像，请选择将图像视为照片。
  3. 在下一步中，您可配置用于确定将图像添加至文档的原则的选项及图像处理选项。详情请参阅图像预处理选项。

  4. 在第四步中，配置文件向导将要求您在导入后指定用于热文件夹清理的选项：可删除成功导入的图像或将其移至特定文件夹。已处理的带有错误的图像仍保留在热文件夹中，也可移至特定文件夹。如果您想要移动图像，请指定要将图像移到的文件夹。

  5. 在最后一步中，您可更改分配给导入配置文件的默认名称，并输入您的注释。

您也可在选择导入配置文件对话框中编辑和创建图像导入配置文件，当您从主菜单中选择文件 >导入图像…时将出现此对话框。

添加页面图像


图像预处理选项

将新图像添加至批处理文件后，程序将执行图像预处理：将图像分成文档，清除其噪声并将其旋转等。

您可在图像预处理 选项卡上选择图像预处理选项。可为以下内容选择预处理选项：

  1. 项目。在此情况下，当将新图像手动添加至项目批处理文件时默认使用选定的项目。在主窗口中选择项目>项目属性…，然后，单击图像预处理选项卡。
  2. 导入配置文件。在使用此导入配置文件添加新图像时将使用这些选项。当 创建新导入配置文件时，在图像预处理阶段选择图像预处理选项。
  3. 手动添加的图像。当从文件 添加图像时，在加载图像对话框中单击图像处理设置…按钮。

注：手动扫描图像时将不执行图像预处理。仅在使用导入配置文件添加图像时才对图像执行预处理。

用户可选择以下任一个图像预处理选项：

  • 确定向文档添加图像的原则的选项：
    • 匹配文档定义时自动创建 – 如果您想要在匹配期间（识别期间）将图像分成文档，可选择此选项。在此情况下，在添加图像后立即将其分成文档，但只有在根据相应文档定义中描述的结构分析和识别页面后才组装文档。有关详细信息，请参见 为多页文档创建文档定义 和 将页面组装进文档。
    • 对于每个图像文件（适用于每个图像文件），
    • 或在程序到达分隔符表时创建新的文档（适用于由以下项分隔的图像）。

    • 要将空白页面用作分隔符，请从下拉列表中选择空白页面。
      要将带有条形码的页面用作分隔符，请从下拉列表中选择带有条形码的页面。您可设置条形码类型和/或值，只需单击设置…按钮。如果没有指定条形码类型或值，则将任何带有条形码的页面视为分隔符页面。否则，仅将使用带有指定类型条形码或值的页面。如果不需要将添加至批处理文件的分隔符页面，请选择删除分隔符页面。如果未勾选此选项，分隔符页面将添加至批处理文件中，并变成每个文档的第一页。

    注：您不必使用分隔符页面拆分文档之间的页面。只能在以下情况下使用分隔符页面：根据页面外观无法确定其是属于上一文档还是属于下一文档时。例如，当文档包括任意数量的相同页面时且批处理文件包含多个该等文档时，将会发生此情况。

  • 配置图像处理选项：
    • 为图像去斑 – 删除图像噪声；
    • 将彩色和灰色图像转换为黑白 – 将图像转换为黑白图像；
    • 通过以下方式旋转图像 – 按指定的方向旋转图像。
  • 清除歪斜选项。默认情况下，将选定这些选项，程序将依赖黑色方块形和/或垂直和水平分隔符为新添加的图像清除歪斜。建议不要关闭清除歪斜选项，除非清除歪斜操作执行不正确（例如，如果程序将邮戳或图形读取为分隔符且尝试根据此错误的数据为图像清除歪斜时）。
    • 使用黑色分隔符纠正歪斜– 如已选定此选项，则将根据分隔符行为图像清除歪斜；
    • 使用黑色方块形纠正歪斜 – 如已选定此选项，则将根据黑色方块形为图像清除歪斜；


默认导出设置

在不使用文档定义设置导出至文件或数据库时可使用默认的导出设置，也可将默认导出设置用于尚未为其配置导出设置的文档定义。

导出设置是针对每个文档定义配置的，但有时您可能需要导出至另一个存储位置，例如，测试导出。在此情况下，操作员可使用导出按钮菜单，并使用不同于文档定义设置的设置导出至文件或数据库。参见导出识别的数据。首次导出时可使用默认设置。如果在以后对导出设置作出了修改，则将保存最后一次使用的导出设置。

可在导出选项卡上配置导出至文件或数据库的默认设置，该选项卡位于项目属性对话框中（主窗口菜单项项目 > 项目属性…）。该选项卡显示了当前的默认导出设置。您可为导出至文件或数据库配置设置。要修改默认导出设置，请单击编辑…并配置与文档定义导出设置相似的导出设置（参见配置数据导出）。


批处理文件

要处理的文档放在批处理文件中。将文档组合进批处理文件的原则由用户确定。例如，用户可选择将所有文档作为一个批处理文件处理，或将同一天导入或一次扫描的所有文档组合在一起。

在处理工作站上，从热文件夹导入图像会自动创建批处理文件。在扫描工作站上，可以由操作员手动创建批处理文件，有相应的扫描配置文件可用时会自动创建批处理文件。创建批处理文件应指定其类型，该类型决定批处理文件的处理方式。

页面图像在处理期间添加。详情请参阅添加页面图像。

在项目安装工作站上，可以通过创建批处理文件、向批处理文件添加文档图像和处理批处理文件（即识别、校验和导出结果）调试文档定义。要创建新批处理文件，在主窗口中右键单击批处理文件列表，并从快捷方式菜单中选择“新建批处理文件...”。

工作批处理文件和测试批处理文件

由批处理文件安装操作员使用测试批处理文件测试和调试文档定义。工作批处理文件用于通过 ABBYY FlexiCapture 9.0 处理文档。如果在处理期间发生错误，批处理文件安装操作员也可以访问工作批处理文件。在发生错误时，操作员可以打开该批处理文件并纠正错误。 测试批处理文件和工作批处理文件在本地文档定义中是不同的，它们用于处理测试批处理文件的文档，而发布的文档定义用于处理工作批处理文件的文档。请参阅 编辑和发布文档定义。

要打开批处理文件列表，从项目安装工作站上的视图菜单中选择批处理文件或测试批处理文件菜单项。


索引字段

为了使搜索和处理文档变得更容易，您可使用文档定义中任何字段的值为文档建立索引。在程序主窗口的文档列表中，除了基本信息，您还可输出每个文档索引字段的值，按这些值对文档进行排序，并轻易地查找必要的文档。

要按字段值建立索引，请为此字段启用索引字段选项（在文档定义编辑器中的常规选项卡中）。

要在文档列表中显示索引字段的值：

  • 在程序主窗口中，打开文档批处理文件，启用详细文档列表模式（工具栏上的 [image] 按钮）。
  • 右键单击表格标题区域（列名称），从下拉列表中选择自定义…。
  • 在选择列对话框中，单击新建…按钮。
  • 在编辑列对话框中，单击选择…右侧的IDD_SH_NEW_SUPER_GRID_COLUMN::IDC_INDEXED_FIELD_NEW_COLUMN选择...按钮。在打开的对话框中，选择启用了索引字段选项的其中一个字段。您也可输入任何列名称，并指定对齐方法。
  • 带有索引字段值的另一列将显示在表格中。在该列上单击，以便按索引字段的值为文档排序。


操作已配置项目

文档经历各个处理阶段。创建和安装项目时，应指定需要操作员控制或错误纠正的阶段和情况。将为此阶段创建任务队列。此外，还为有问题的文档提供了特殊异常队列。

操作员是监控文档或批处理文件的处理或错误纠正的系统用户。下表列出了 ABBYY FlexiCapture 操作员及可向其提供的工作站和队列。

操作员 | 工作站 | 队列 | 职能
监控操作员 | 管理和监控控制台 | - | 监控系统的运行
扫描操作员 | 扫描工作站 | - | 扫描文档或导入文档图像并发送文档供处理
数据校验操作员 | 数据校验工作站 校验工作站（仅限于组校验和字段校验） | 数据校验 | 检查和纠正不可靠识别的字答（组校验和字段校验）
校验操作员 | 数据校验工作站 数据校验工作站 | 数据校验 校验 文档组装检查 批处理文件完整性检查 | 同数据校验操作员 + 检查和纠正文档组装错误和批处理文件组装错误
高级校验操作员 | 数据校验工作站 校验工作站 | 数据校验 校验 文档组装检查 批处理文件完整性检查 导出确认 异常 | 与数据校验操作员执行相同工作 + 确认文档导出，处理异常

操作员启动其相应工作站，并根据向其授予的权限执行必要的操作。


工作流

文档在多个阶段中处理。文档在处理阶段中得以转换，处理阶段可能是无人照看模式，也可能需要操作员干预。所有阶段均按特定顺序排列，文档只有成功通过以前的所有阶段才能进行某一特定阶段。一般而言，文档处理包括以下阶段：添加图像、识别、校验和导出。校验阶段是可选的。其他阶段是必需的。

在每个阶段中，均将形成一个任务队列，该队列包含要处理的文档的列表。随着处理过程的进展，文档从第一个队列（识别）移至最后一个队列（导出）。队列通常与处理阶段相对应，但也存在特定队列，例如，异常队列。

阶段

  1. 导入图像

    图像可从热文件夹自动获取或由扫描工作站操作员添加。扫描操作员可扫描文档或导入已扫描文档的图像。要自动化此过程（即，通过单击鼠标使用预定义的设置添加图像），扫描操作员可创建扫描配置文件。

  2. 识别。识别队列在处理工作站上自动得以处理。
  3. 校验。校验队列由校验工作站操作员处理。
  4. 导出。导出队列在处理工作站上自动得以处理。

对于较大处理量，可将校验阶段分成多个较小的子阶段，每个操作员负责较少的操作。

可创建以下独立队列：

  • 文档组装检查
  • 数据校验 - 不确定字符和组校验和字段校验及格式错误纠正
  • 校验 - 规则检查和文档窗口检查
  • 批处理文件完整性检查
  • 导出确认

注： 将逐一为批处理文件类型指定队列。

队列任务由具备必要访问权的操作员处理：

  • 数据校验操作员 - 仅数据校验队列
  • 校验操作员 - 数据校验、校验、文档组装检查和批处理文件完整性检查
  • 高级校验操作员 - 所有队列

注：借助于数据校验工作站，其操作员只需处理源自于数据校验队列的任务，不管其访问权如何。


添加页面图像

图像导入指将文档页面图像添加至项目中，它是文档处理的开始。图像可能源自于扫描工作站或自动采集于热文件夹。

后台图像导入

如果配置了相应的导入配置文件，可以采用后台模式执行图像导入。热文件夹的图像被自动导入系统。程序以设置中指定的时间间隔检查新图像的文件夹。

向批处理文件添加图像的方法有以下几种：

  1. 从文件中加载先前保存的图像；
  2. 扫描图像；
  3. 使用管理员先前配置的图像导入配置文件导入图像（参阅图像导入配置文件。）

手动添加图像

如有必要，可在校验工作站（由高级校验操作员执行）或在项目安装工作站上手动将图像添加至批处理文件中。图像是在查看模式中添加至批处理文件中的。打开要将图像添加到的批处理文件或在列表中选择此批处理文件。

以下方法可用于将图像添加至批处理文件中：

  • 加载以前保存在图像文件
  • 扫描文档
  • 通过使用任一个以前创建的图像导入配置文件来导入图像（参见图像导入配置文件）

要添加图像，右键单击批处理文件，从快捷方式菜单中选择相应的菜单项。

从文件添加图像

要从文件加载图像，选择加载图像…菜单项或使用 Ctrl+O 快捷键。在打开的对话框中，选择所需的图像文件并配置图像导入选项：

  • 创建新文档 – 为添加的图像创建新文档
  • 添加至当前文档(A) – 将图像添加至当前突出显示的文档。
  • 您也可以选择图像预处理选项。单击图像处理设置…按钮，并在打开的对话框中选择所需的选项。详情请参阅图像预处理选项。

扫描图像

要从扫描仪添加图像，选择扫描图像…菜单项。选择扫描仪，配置扫描选项并扫描图像。

使用导入配置文件添加图像

如果管理员配置了导入配置文件，导入按钮的菜单中会显示导入配置文件的名称。要开始导入图像，只需选择一个有导入配置文件名称的项目即可。

选择导入图像…后，会打开选择导入配置文件对话框。从列表中选择导入配置文件并单击导入按钮开始导入图像。


配置扫描选项

要处理的文档通常源自于扫描工作站或热文件夹。但是，也可在校验工作站或项目安装工作站上扫描文档。在此情况下，必须选择必要的扫描参数。

识别质量主要取决于扫描图像的质量。通过配置基本扫描选项，如图像类型、分辨率和亮度，可以调整图像质量。

通过 ABBYY FlexiCapture 扫描图像时，程序通过 TWAIN 或 ISIS 驱动程序和扫描仪交互的方式有以下两种：

  • 通过 ABBYY FlexiCapture 界面：
    在此情况下，借助于 ABBYY FlexiCapture 对话框扫描仪设置配置扫描选项；以指定的扫描仪：作为导入源创建导入配置文件时可以配置扫描选项。
  • 通过扫描仪的 TWAIN 或 ISIS 驱动程序：
    使用相关扫描仪驱动程序的对话框配置扫描选项。从导入按钮的下拉菜单选择扫描图像…自动打开该对话框。

基本扫描选项

  • 图像类型 – 灰度扫描（256 个灰度梯度）是识别系统的最佳模式。以灰度模式扫描时，程序自动选择亮度水平。

    黑白图像类型可以加快扫描速度，但有损某些文字信息，可能会影响中低印刷质量文档的识别质量。
    如果要在电子文档中保留文档的彩色元素（图片、彩色文字和彩色背景），需要选择彩色图像类型。其他情况可以使用灰度 图像类型。

  • 必须选择亮度和对比度值的理由有二，首先是保留定位点区域，其次是保证尽可能清晰确定地识别区域的图像。
    在大多数情况下，适合选择平均亮度值 50%。
    以黑白模式扫描某些文档时，可能需要另外配置亮度。
  • 分辨率 –对于手工填写的表单的处理，以黑白模式扫描的分辨率建议采用 300 dpi，以黑白模式扫描的分辨率建议采用 200 dpi。扫描表单的分辨率必须匹配模板图像的分辨率。

注：

  1. 以 400-600 dpi 分辨率扫描比使用 300 dpi 分辨率扫描的时间长很多，以灰度或彩色模式扫描比使用黑白模式扫描的时间长很多。某些型号的扫描仪，以 600 dpi 分辨率扫描的时间更是达到 300 dpi 分辨率扫描时间的 4 倍。建议不要以低于 200 dpi 的分辨率进行扫描。
  2. 使用扫描仪驱动程序的对话框时，配置扫描设置的选项的名称依据扫描仪型号而定。例如，可能将亮度称作阈值，或者将亮度标记为太阳或黑白圆圈标记。选项的含义在扫描仪随附的文档中进行了说明。
扫描模式提示
  1. 使用黑白扫描仪扫描彩色背景的表单：要在扫描期间使背景消失，需要在扫描仪上安装一台适当的过滤灯：粉色表单 – 安装红灯，绿色表单 – 安装绿灯。
  2. 使用彩色扫描仪扫描彩色背景的表单：要在扫描期间使背景消失，需要在扫描仪设置中配置相关颜色的过滤模式。
  3. 扫描彩色背景较浅的表单： 如果处理的是浅色的彩色表单，由于色彩强度低，即便不采用软件过滤颜色，使用白灯也可以使背景消失。扫描表单的方法通常在表单制作阶段选择。
亮度选择提示
  1. 扫描的图像必须可读（要查看已扫描的图像，请在文档窗口中打开该图像）。
  2. 如果扫描图像中的文字断开、较浅或暗淡：
    • 降低亮度，增大对比度（使图像变暗）或
    • 尝试以灰度模式扫描（此时会自动选择亮度）。
  3. 如果扫描的图像背景不鲜明；有变形、斑状或混合的字符；文字模糊、浓厚；
    • 增大亮度（使图像变亮）或
    • 尝试以灰度模式扫描（此时会自动选择亮度）。


识别

文档是在处理工作站中自动识别的。

系统根据定位点元素和标识符选择匹配的文档定义，在与选定文档定义的字段匹配的字段中识别数据。

可靠识别的字符与总字符数之比显示在置信水平列中。

如果在识别期间在项目中作出了更改且如果项目包括校验阶段，则校验操作员及高级校验操作员可使用新设置手动重新识别文档。要重新识别文档，请启动校验工作站，并从主菜单中选择工具 > 更新至最新版本 。


初步图像分析和应用文档定义

识别、分析和文档定义匹配是自动完成的。但是，校验操作员和初级校验操作员可手动运行分析和文档定义匹配，只需在校验工作站上选择工具 > 重新分析。如果文档定义与文档匹配，页面及其文档将有相应的名称。只要项目中有一个文档定义与图像不匹配，就会不处理页面。

在运行识别前，可以分析或确定要对特定页面应用哪一种文档定义。然后选择主菜单项识别 > 分析。如果可以应用某个文档定义，将对该页及该页所属的文档相应命名。如果任何项目文档定义均不匹配图像，将不会处理该页。

您也可以对某页或整个文档应用某个特定的文档定义。在大多数情况下，会对页面自动应用在程序中正确创建的文档定义，但有些情况可能必须手动应用文档定义。

要应用文档定义：

  1. 突出显示该文档；
  2. 从文档的快捷菜单中选择匹配文档定义…或选择主菜单项识别 > 匹本文档定义…；
  3. 在打开的选择文档定义对话框中，选择一个文档定义并单击确定。

如果选择的文档定义被成功应用，将为文档及其页面分配相关文档定义及其节段的名称。

要对一个页面应用文档定义：

  1. 突出显示该页面；
  2. 从页面的快捷方式菜单中选择匹配文档定义…或选择主菜单项识别 > 匹本文档定义…；
  3. 在打开的选择要匹配的文档定义对话框中，选择一个文档定义并单击确定。

如果该文档定义被成功应用，会为选定页面分配相应的文档定义节段的名称。


检验识别的数据

校验或检查已识别数据是操作员工作中劳动量最大的一部分。由于此原因，对 ABBYY FlexiCapture 9.0 中的校验过程进行了安排，以尽可能为操作员操作便利，并最小化错误数量。

当程序对某些字符的识别精度没有绝对的把握时，其就将这些字符标识为不确定识别的字符。校验过程旨在校验该等字符，确保其被正确识别并在必要对其加以纠正。

规则校验是自动执行的。如果字段值符合规则条件，则这些字段可能被标记为已确定识别，并将其从校验过程中排除。如果字段值不符合规则条件，则将提交该等字段供校验。

对于多页文档，您必须首先确保已页面组装进文档中。

然后运行校验过程。校验过程分成两个阶段：组字段校验。如果文档定义没有包括在组校验或字段校验中的字段（参见字段校验属性），则将忽略相关的校验阶段。

组和字段校验之后是在文档窗口中的校验。在较早阶段中未得到确认的字符仍用红色突出显示。

可在主窗口工具栏中单击 [image] 和 [image] 按钮，以导航这些错误。程序导航所有错误，其中包括组装错误、不确定识别的字符和规则错误等。

将页面组装至文档
组校验
字段校验
在文档窗口中校验
规则校验


将页面组装至文档

页面将自动组装进文档中。在此方面，在为多页文档处理创建文档定义时，您必须描述组装原则。您也可配置关键字段校验。

操作员的任务是识别并纠正可能的文档组装错误。

组装错误在页面概览模式中最易纠正，在该模式中，用户可清楚地查看页面图像及其所属的不同文档。单击 [image] 按钮即可切换至此模式。

注：查看详细信息时可更改页面概览的比例（通过按住 Ctrl 键和使用滚轮）。

注：在创建文档定义时，如果选择了禁用节段次序检查选项，该选项位于组装选项卡上，则不检查各节段的顺序。程序仍将确保所有节段均显示在文档中，但忽略其顺序。

创建文档定义时，需要配置文档组装规则：重复出现的文档节段的顺序和数量。也可根据关键字段的值配置组装校验：在此情况下，关键字段的值必须在文档的所有页面中保持一致。

带有组装错误的文档标有 [image] 符号。将在文档定义名称下方以红色字母提供错误描述。

如何纠正组装错误

  1. 文档中不正确的页面顺序

    页面可能太少或太多，或者文档页面的排列顺序不正确。要阅读提示，请将光标放在标有红色十字形的页面上：

    要纠正该等错误，可使用鼠标在单一文档之内及在两个文档之间移动此页面。

    多个文档的页面可合并为一个单一文档，如下所示：

    • 突出显示要合并的文档（使用 Ctrl-Click 选择多个文档）；
    • 单击右键，从快捷方式菜单中选择合并。

    要拆分一个文档中的多个页面，并将每个页面放入独立文档中：

    • 突出显示要拆分的页面所在的文档；
    • 从快捷方式菜单中选择拆分。

  2. 如果文档定义要求校验关键字段以实现正确的页面组装，则关键字段的值将显示在每页图像的下方：

    • 用灰色突出显示 – 对于匹配；
    • 用红色突出显示 – 对于误匹；

    识别或填写不正确的关键字段可能不匹配。检查关键字段的值。如果关键字段的值仍不匹配，则可能表明该等页面不属于同一文档。如果页面顺序错误，请查找带有相同关键字段的页面，按项目 1 所中述将其组装进文档中。


组校验

组校验涉及组合被识别为具有相同值的字符图像并在校验程序屏幕上显示它们，这样，操作员就可轻易地识别并纠正偏离于组的字符。

显示组校验窗口

在组校验期间，操作员可查看被校验的字符的上下文，方法是从突出显示的字符的快捷方式菜单中选择显示字符图像菜单项，或按 F2 键。

也可激活以下模式：包含字符的字段在您将光标指向被校验字符时将显示的模式。在此方面，请在校验程序窗口中选择菜单项视图>字段图像>显示字段图像或使用 Ctrl+I 快捷方式。

可用以下方法纠正不正确识别的字符：突出显示与组字符不匹配的字符，并输入正确的值。该值用绿色突出显示，将显示在字符图像的左上角。

如果您甚至在查看字符的上下文后仍无法确定该字符的含义，请在其上面单击鼠标左键：将用一个红色的问号将其突出显示。

可使用工具栏上的切换按钮切换字符状态。

从快捷方式菜单中选择确认可确认正确识别的字符。要一次性确认所有字符，请单击工具栏上的全部确认按钮。

注：创建文档定义时，您可在配置字段属性时修改校验选项。将提交启用了发送字符至组校验选项（该选项位于校验选项卡上，可在字段属性对话框中找到此选项卡）的字段以供进行组校验。参见字段校验属性。对于组校验，我们建议提交复选标记及仅可填充数字的字段。在字段的上下文中更易于检查字母。


字段校验

字段校验是一种旨在有效纠正“易识别”字段的错误的校验模式，即值范围已知或可轻易识别的字段。该等字段的示例是国家或城市名称：我们知道此字段的值。

要决定如何纠正字段，用户仅需要查看此字段并了解其值范围。输入错误和字段格式错误均可纠正。

显示字段校验窗口

要纠正不正确识别的字符，您可使用标准模式的文本编辑器：字符粘贴和替换模式 - 您可在此两种模式之间切换，只需按键盘上的 Insert 键。

用户将按顺序审核每个字段的识别结果，在必要时予以纠正，并单击确认字段按钮予以确认。

您需要纠正字段中的值。如果无法纠正，则可跳过字段或延迟校验，只需单击推迟按钮以便在以后予以纠正。

注：将提交启用了发送到字段校验选项（该选项位于校验选项卡上，可在字段属性对话框中找到此选项卡）的字段以供进行字段校验。参见字段校验属性。对于字段校验，我们建议提交带有已知值范围的单行字段。


在文档窗口中校验

文档窗口也可供您检查识别精度并纠正不正确识别的字符。文档窗口在您双击页面名称时打开。文档窗口包括数据区域、页面图像和错误区域（如果存在该等错误）。您可选择要显示的错误类型：组装错误、格式错误、规则错误或其任何组合。要显示某种类型的错误，请单击错误窗格右上角中的相应按扭。

单击布局按钮即可配置窗口布局。在文档窗口中，操作员不仅会看到字符组或独立字符，而且能看到整个文档。

显示文档窗口

在数据区域中，不确定识别的和值得怀疑的字符标有颜色，并将突出显示带有不正确数据类型或未履行规则的字段。

要确认带有不确定识别字符的字段，请将光标放在该字段中，按 Enter 键。

不仅可按顺序排列用于查看和编辑已识别数据的字段，而且可用任何便利于用户的其他方式排列这些字段。您可在文档定义编辑器中更改这些字段的排列，请参见配置文档窗口中显示的数据。

您可导航至文档窗口中的下一个错误，只需单击主窗口工具栏上的 [image] 和 [image] 按钮。程序导航所有错误，其中包括组装错误、不确定识别的字符、规则错误和关键字段误匹等。


规则校验

未履行的规则标有：黄色标记 [image] （警告）或红色标记 [image] （错误）。

规则错误显示在文档编辑器的独立窗口中，带有未履行规则的文档标有红色标志。

对于未履行的规则，操作员必须检查数据识别的质量。对于识别错误，操作必须予以纠正。对于无法纠正的格式填写错误，操作员不得导出文档。带有错误的文档可留在以后校验：将其与硬拷贝文档或其他可用来源进行对比。

要重新检查数据是否存在规则错误，请单击运行校验…按钮右侧的箭头，并选择重新检查规则菜单项。如果在纠正字段值后符合了规则，则将移除标志。


导出识别的数据

文档是自动导出的。取决于设置，可能需要高级校验操作员作出附加的确认。文档是根据文档定义中提供的设置导出的。如果文档定义中没有导出设置，则将根据项目设置导出文档。如果某些文档需要优先导出，则可将其发送至导出阶段中的导出队列。

也可在校验工作站或项目安装工作站上手动导出文档。

将数据导出至文件

  1. 要将数据导出至文件，请从文档的快捷方式菜单中选择导出至 > 将数据导出至文件…。此时将显示导出到数据文件对话框。
  2. 如有必要，单击设置...以调整导出设置，单击确定以应用更改。
  3. 单击导出以导出数据。

将数据导出至数据库

  1. 要将数据导出至数据库，请从文档的快捷方式菜单中选择导出至 > 数据库...。 此时将显示导出到 ODBC 兼容数据库对话框。
  2. 指定导出设置。
  3. 单击确定以导出数据。


后台模式

不需操作员干预的处理阶段，由处理服务器自动执行。但是，也可在校验工作站或在项目安装工作站上手动执行处理阶段，在此情况下可在后台模式中运行处理阶段。

只要不要求操作员控制，即可以后台模式导入、识别和导出文档。

要将任务传输到后台模式，请单击后台模式对话框中的正在添加图像…按钮（或在正在识别…或正在导出…...对话框中）。

以下任务可以在后台模式中运行：

  • 使用相应的导入配置文件加载图像。
  • 文档识别，如果选择了自动识别添加的图像选项（工具 > 选项…，文档处理选项卡）。

切换到后台模式时， [image] 图标会显示在任务栏上。单击该图标将会打开背景任务对话框，该对话框显示了任务列表。

  • 程序将根据任务出现的顺序或根据用户设置的优先级（设置优先级…按钮)执行这些任务。
  • 任务执行情况记录在用户可以自定义的日志文件中（工具 > 选项…，任务进度选项卡）。单击 查看日志 按钮查看日志。
  • 单击 结束任务 按钮。

程序也会在右下角显示的气球状弹出消息中通知您后台任务的进度。一旦启动任务、任务出错和完成任务，即会显示消息。详情请参阅其他选项。


ABBYY FlexiCapture 9.0 界面

本节描述 ABBYY FlexiCapture 9.0 界面的主要元素：主窗口、菜单和工具栏。

项目安装工作站
项目安装工作站菜单
项目安装工作站工具栏
校验工作站
校验工作站菜单
校验工作站工具栏
数据校验工作站
数据校验工作站菜单
数据校验工作站工具栏
文档定义编辑器
文档定义编辑器菜单
文档定义编辑器工具栏
组校验窗口
组校验窗口菜单
组校验窗口工具栏
字段校验窗口
字段校验窗口菜单
字段校验窗口工具栏


项目安装工作站窗口

本程序的主窗口显示作为用户所处理的项目一部分的文档批处理文件列表。

显示批处理文件列表的主窗口

通过双击可查看批处理文件的内容。将显示该批处理文件所包含的文档的列表。

要返回批处理文件列表，请单击项目>批处理文件（或测试批处理文件，如果使用的是测试批处理文件）。

主菜单（下方有工具栏）位于窗口上方。

主窗口的其余部分被工作批处理文件窗口（带有所包含文档的列表）占据。

状态栏位于窗口下方。状态栏显示本程序的状态以及当前执行的操作。将指针放到菜单项目或按钮上时，状态栏将显示简要描述。

要检查识别的数据，请打开文档窗口。双击文档或文档中某一页的的名称即可打开。文档窗口由三个部分组成：

  • 文档页面图像；
  • 识别的数据；
  • 规则错误（有规则错误时将显示）。

更多信息请参阅在文档窗口中校验

显示文档窗口

项目安装工作站菜单
项目安装工作站工具栏


项目安装工作站菜单

文件
菜单 | 描述
新建项目… | 创建新项目
打开项目… | 打开现有项目
从服务器打开项目… | 从应用程序服务器打开现有项目
关闭项目 | 关闭当前项目
保存 | 保存更改
新建批处理文件… | 创建新的批处理文件
加载图像… | 从文件中加载图像
扫描图像… | 添加通过扫描获取的图像
导入图像… | 使用配置的导入配置文件导入图像
导出至 |
将数据导出至文件… | 将数据导出至文件
将图像导出至文件… | 将图像导出至文件
数据库… | 将数据导出至数据库
最近项目 | 打开一个以前打开过的项目
退出 | 关闭 ABBYY FlexiCapture 9.0
编辑
菜单 | 描述
撤销 | 取消上次操作
恢复 | 恢复所取消的操作
剪切 | 剪切选定对象
复制 | 将选定对象复制到剪贴板
粘贴 | 粘贴从剪贴板复制的对象
删除 | 删除选定对象
合并 | 将多个选定页面合并成一个文档
拆分 | 将一个选定的文档拆分成多个页面
全选 | 选择所有对象
查找… | 查找指定的文本
查找下一个 | 查找前面指定的文本的下一个文本
转至 |
下一个文档 | 转至批处理文件中的下一个文档
上一个文档 | 转至批处理文件中的上一个文档
图像 |
去斑 | 图像去斑
反转 | 反转图像
水平翻转 | （相对于垂直轴）水平翻转图像
垂直翻转 | （相对于水平轴）垂直翻转图像
顺时针旋转 90° | 将图像顺时针旋转 90°
逆时针旋转 90° | 将图像逆时针旋转 90°
旋转 180° | 将图像旋转 180°
更改分辨率… | 更改图像分辨率
另存为… | 按指定的名称保存图像
视图
菜单 | 描述
测试批处理文件 | 打开测试批处理文件的列表
批处理文件 | 打开批处理文件的列表
详细信息 | 按详细的列表显示文档和文档页面
缩略图 | 按缩略图显示文档图像
选择详细信息… | 允许配置按详细视图模式显示的多个列的列表
文档编辑器 |
图像模式 | 在文档窗口中显示页面图像
数据模式 | 在文档窗口中显示识别的数据
图像窗口 | 允许在文档窗口中定位图像
错误窗口 | 允许在文档窗口中定位错误窗口
图像比例 | 允许选择合适的字段图像比例
数据文本比例 | 允许在显示已识别数据时选择使用的字体大小
显示工具栏 | 在文档窗口中显示/隐藏工具栏。该工具栏允许纠正某些匹配错误，例如，可以添加未找到的字段，添加或删除表格分隔符。主要在使用 FlexiLayout 时使用该工具栏。
显示活动字段格式错误 | 允许指定格式错误显示模式
显示黑白图像 | 将彩色和灰色图像显示为黑白图像
Размер эскизов | 允许选择页面缩略图的大小
Панели инструментов | 显示/隐藏工具栏
状态栏 | 显示或隐藏状态栏
全屏 | 切换至全屏模式
刷新 | 刷新显示的信息
属性… | 打开文档属性或页面属性对话框
识别
菜单 | 描述
分析 | 分析文档页面并查找合适的文档定义
匹本文档定义… | 对选定的文档或页面匹配选定的文档定义
识别 | 启动识别
校验
菜单 | 描述
运行校验… | 启动校验
下一个要校验的项目 | 转至下一个校验对象
上一个要校验的项目 | 转至上一个校验对象
下一下组装错误 | 转至下一个组装错误
上一个组装错误 | 转至上一个组装错误
下一个不确定字符 | 转至下一个不确定识别的字符
上一个不确定字符 | 转至上一个不确定识别的字符
下一条规则错误 | 转至下一个规则错误
上一条规则错误 | 转至上一个规则错误
项目
菜单 | 描述
文档定义… | 打开显示有“文档定义”列表的对话框，在该对话框中可创建、编辑、导入和删除文档定义（此菜单仅适用管理员）
批处理文件类型… | 打开显示有批处理文件类型列表的对话框，在该对话框中可创建、编辑、导入和删除批处理文件类型（此菜单仅适用管理员）
图像导入配置文件… | 打开显示有图像导入配置文件列表的对话框，在该对话框中可创建、复制、编辑和删除这些配置文件（此菜单仅适用管理员）
通过密码保护… | 允许用密码来保护当前项目（此菜单仅适用管理员）
未保护… | 允许对项目禁用密码保护（此菜单仅适用管理员）
导出项目… | 将项目导出至指定的文件夹。将从当前项目获取图像。
更新项目… | 配置更新的项目。导出期间显示的消息和错误可以保存至文件中（右键单击并选择“导出至文件”）。
项目属性… | 打开“项目属性”对话框
工具
菜单 | 描述
更新至最新版本 | 对当前处理的文档应用项目更改
重新分析 | 重新分析文档
重新识别 | 重新识别文档
刷新组装 | 将页面组装刷新到文档中
重新检查规则 | 重新核对规则
检查批处理文件完整性 | 检查批处理文件完整性
更改批处理文件优先级 | 允许选择批处理文件的优先级
更改批处理文件类型… | 更改批处理文件类型
选项… | 打开选项对话框，在该对话框中可以配置后台任务处理、窗口视图等不同属性。
帮助
菜单 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助文件
技术支持… | 打开程序帮助中的技术支持部分
如何购买 ABBYY 产品… | 打开程序帮助中的购买 ABBYY FlexiCapture 9.0 部分
ABBYY 网站… | 打开 ABBYY 网站
发送反馈… | 允许发送反馈给 ABBYY：用户对本程序的看法、希望和评价
关于 ABBYY FlexiCapture… | 打开关于 ABBYY FlexiCapture 9.0 对话框，该对话框中包含有对本程序的简要描述。


项目安装工作站工具栏

标准工具栏

工具 | 按钮 | 描述
打开项目 |  | 打开一个项目
保存更改 |  | 保存更改
剪切 |  | 在处理文档图像中的数据时，剪切选定对象
复制 |  | 复制选定对象
粘贴 |  | 粘贴从剪贴板复制的对象
删除 |  | 删除选定对象
撤消 |  | 取消上次操作
恢复 |  | 恢复所取消的操作
文档视图

工具 | 按钮 | 描述
详细信息视图 |  | 以详细的列表显示文档和文档页面
缩略图视图 |  | Позволяет просматривать изображения страниц документов в виде уменьшенных копий
测试批处理文件列表 |  | 显示测试批处理文件的列表
工作批处理文件列表 |  | 显示工作批处理文件的列表
刷新 |  | 刷新主窗口中的信息
导航

工具 | 按钮 | 描述
上一个要校验的项目 |  | 转至上一个校验对象。浏览包括组装错误、不确定识别的字符、规则错误、关键字段不匹配等在内的所有错误。
下一个要校验的项目 |  | 转至下一个校验对象。浏览包括组装错误、不确定识别的字符、规则错误、关键字段不匹配等在内的所有错误。
上一个文档 |  | 转至上一个文档。
下一个文档 |  | 转至下一个文档。
项目安装

工具 | 按钮 | 描述
文档定义… |  | 打开包含项目中的“文档定义”列表的窗口。
批处理文件类型… |  | 打开包含项目中的批处理文件类型列表的窗口。
项目属性… |  | 打开“项目属性”对话框。
显示图像导入配置文件 |  | 打开包含项目中的“图像导入配置文件”列表的窗口。
将项目上传至服务器… |  | 打开上传项目至应用程序服务器的窗口。


校验工作站窗口

校验工作站

本程序的主窗口显示选取队列处理任务的列表。

显示队列列表的主窗口

在接收任务时，主窗口将显示该任务中的文档的列表。

显示文档列表的主窗口

主菜单（下方有工具栏）位于窗口上方。

主窗口的其余部分被带有队列或文档列表的工作空间占据。

状态栏位于窗口下方。状态栏显示本程序的状态以及当前执行的操作。将指针放到菜单项目或按钮上时，状态栏将显示简要描述。

校验工作站菜单
校验工作站工具栏


校验工作站菜单

文件
菜单 | 描述
从服务器打开项目从服务器打开项目… | 从应用程序服务器打开现有项目
关闭项目 | 关闭当前项目
保存 | 保存更改
加载图像… | 从文件中加载图像
扫描图像… | 添加通过扫描获取的图像
导出至 |
数据至文件将数据导出至文件… | 将数据导出至文件
图像至文件将图像导出至文件… | 将图像导出至文件
数据库… | 将数据导出至数据库
最近项目 | 打开一个以前打开过的项目
退出 | 关闭 ABBYY FlexiCaptuer 9.0
编辑
菜单 | 描述
撤销 | 取消上次操作
恢复 | 恢复所取消的操作
剪切 | 剪切选定对象
复制 | 将选定对象复制到剪贴板
粘贴 | 粘贴从剪贴板复制的对象
删除 | 删除选定对象
合并 | 将多个选定页面合并成一个文档
拆分 | 将一个选定的文档拆分成多个页面
全选 | 选择所有对象
查找… | 查找指定的文本
查找下一个 | 查找前面指定的文本的下一个文本
转至 |
下一个文档 | 转至批处理文件中的下一个文档
上一个文档 | 转至批处理文件中的上一个文档
图像 |
去斑 | 图像去斑
反转 | 反转图像
水平翻转 | （相对于垂直轴）水平翻转图像
垂直翻转 | （相对于水平轴）垂直翻转图像
顺时针旋转 90° | 将图像顺时针旋转 90°
逆时针旋转 90° | 将图像逆时针旋转 90°
旋转 180° | 将图像旋转 180°
更改分辨率更改分辨率… | 更改图像分辨率
另存为另存为… | 以指定的名称保存图像
视图
菜单 | 描述
批处理文件 | 打开批处理文件的列表
队列 | 打开队列的列表
详细信息 | 以详细的列表显示文档和文档页面
缩略图 | 以缩略图显示文档图像
选择详细信息… | 允许配置以详细视图模式显示的列的列表
文档编辑器 |
图像模式 | 在文档窗口中显示页面图像
数据模式 | 在文档窗口中显示识别的数据
图像窗口 | 允许在文档窗口中定位图像
错误窗口 | 允许在文档窗口中定位错误窗口
图像比例 | 允许选择合适的字段图像比例
数据文本比例 | 允许在显示已识别数据时选择使用的字体大小
显示工具栏 | 在文档窗口中显示/隐藏工具栏。该工具栏允许纠正某些匹配错误，例如，可以添加未找到的字段，添加或删除表格分隔符。主要在使用 FlexiLayout 时使用该工具栏。
显示活动字段格式错误 | 允许指定格式错误显示模式
显示黑白图像 | 将彩色和灰色图像显示为黑白图像
缩略图大小 | 允许选择页面缩略图的大小
工具栏 | 显示/隐藏工具栏
状态栏 | 显示或隐藏状态栏
全屏 | 切换至全屏模式
刷新 | 刷新显示的信息
识别
菜单 | 描述
分析 | 分析文档页面并查找合适的文档定义
匹本文档定义… | 对选定的文档或页面匹配选定的文档定义
识别 | 启动识别
任务
菜单 | 描述
获取任务 | 从选定的队列中获取一个任务
关闭任务 | 关闭当前的任务，并在完成时将该任务返回应用程序服务器
显示任务注释 | 显示任务的注释
拒绝任务 | 拒绝当前的任务，并将该任务返回应用程序服务器
推迟任务… | 将当前任务推迟到以后处理
将任务发送至异常… （对于高级校验操作员 - 将任务发送至阶段(&E)…） | 将当前任务发送至“异常”（高级校验操作员可将该任务发送到任何处理阶段）
自动任务接收 | 启用/禁用自动任务获取
将文档发送至异常… | 将选定文档发送至新的“异常”
将文档添加至异常… | 将选定文档发送至现有的“异常”
从异常中移除文档 | 从“异常”中删除文档
查看异常列表… | 显示“异常”列表
校验
菜单 | 描述
运行校验… | 启动校验
下一个要校验的项目 | 转至下一个校验对象
上一个要校验的项目 | 转至上一个校验对象
下一下组装错误 | 转至下一个组装错误
上一个组装错误 | 转至上一个组装错误
下一个不确定字符 | 转至下一个不确定识别的字符
上一个不确定字符 | 转至上一个不确定识别的字符
下一条规则错误 | 转至下一个规则错误
上一条规则错误 | 转至上一个规则错误
工具
菜单 | 描述
更新至最新版本 | 对当前处理的文档应用项目更改
重新分析 | 重新分析文档
重新识别 | 重新识别文档
刷新组装 | 将页面组装刷新到文档中
重新检查规则 | 重新核对规则
检查批处理文件完整性 | 检查批处理文件完整性
更改批处理文件优先级 | 允许选择批处理文件的优先级
更改批处理文件类型… | 更改批处理文件类型
选项… | 打开选项对话框，在该对话框中可以配置后台任务处理、窗口视图等不同属性
帮助
菜单 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助文件
技术支持… | 打开程序帮助中的技术支持部分
如何购买 ABBYY 产品… | 打开程序帮助中的购买 ABBYY FlexiCapture 9.0 部分
ABBYY 网站… | 打开 ABBYY 网站
发送反馈… | 允许发送反馈给 ABBYY：用户对本程序的看法、希望和评价
关于 ABBYY FlexiCapture… | 打开关于 ABBYY FlexiCapture 9.0 对话框，该对话框中包含有对本程序的简要描述。


校验工作站工具栏

标准工具栏

工具 | 按钮 | 描述
打开项目 |  | 打开一个项目
保存更改 |  | 保存更改
剪切 |  | 在处理文档窗口中的数据时，剪切选定对象
复制 |  | 复制选定对象
粘贴 |  | 粘贴从剪贴板复制的对象
删除 |  | 删除选定对象
撤消 |  | 取消上次操作
恢复 |  | 恢复所取消的操作
文档视图

工具 | 按钮 | 描述
详细信息 |  | 以详细的列表显示文档和文档页面
缩略图 |  | 显示文档图像的缩略图
测试批处理文件 |  | 显示测试批处理文件的列表
工作批处理文件 |  | 显示工作批处理文件的列表
刷新 |  | 刷新主窗口中的信息
导航

工具 | 按钮 | 描述
上一个要校验的项目 |  | 转至上一个校验对象。浏览包括组装错误、不确定识别的字符、规则错误、关键字段不匹配等在内的所有错误。
下一个要校验的项目 |  | 转至下一个校验对象。浏览包括组装错误、不确定识别的字符、规则错误、关键字段不匹配等在内的所有错误。
上一个文档 |  | 转至上一个文档。
下一个文档 |  | 转至下一个文档。
队列和任务

工具 | 按钮 | 描述
获取任务 |  | 从选定的队列打开一个任务。
关闭任务 |  | 将任务返回服务器。
发送至“异常”（处理阶段） |  | 将任务发送至“异常”（对于高级校验操作员 — 可将任务发送到选定的处理阶段）。
推迟任务推迟任务… |  | 推迟该任务。
拒绝任务 |  | 取消任务（服务器稍后将把该任务发送给其他操作员）。
自动获取任务 |  | 启用/禁用自动任务获取。


数据校验工作站主窗口

数据校验工作站

本程序的主窗口显示（从数据校验队列）获取任务的队列名称。

显示队列列表的主窗口

在获取任务后，将接连打开组校验和字段校验窗口。

主菜单（下方有工具栏）位于窗口上方。

状态栏位于窗口下方。状态栏显示本程序的状态以及当前执行的操作。将指针放到菜单项目或按钮上时，状态栏将显示简要描述。

数据校验工作站菜单
数据校验工作站工具栏


数据校验工作站菜单

文件
菜单 | 描述
从服务器打开项目… | 从应用程序服务器打开现有项目
关闭项目 | 关闭当前项目
最近项目 | 打开一个以前打开过的项目
退出 | 关闭 ABBYY FlexiCaptuer 9.0
视图
菜单 | 描述
工具栏 | 显示/隐藏工具栏
状态栏 | 显示或隐藏状态栏
全屏 | 切换至全屏模式
刷新 | 刷新显示的信息
任务
菜单 | 描述
获取任务 | 从选定的队列中获取一个任务
显示任务注释 | 显示任务的注释
拒绝任务 | 拒绝当前的任务，并将该任务返回应用程序服务器
将任务发送至异常… | 将当前任务发送至“异常”
自动任务接收 | 启用/禁用自动任务接收模式
工具
菜单 | 描述
选项… | 打开选项对话框，在该对话框中可以配置后台任务处理、窗口视图等不同属性
帮助
菜单 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助文件
技术支持… | 打开程序帮助中的技术支持部分
如何购买 ABBYY 产品… | 打开程序帮助中的购买 ABBYY FlexiCapture 9.0 部分
ABBYY 网站… | 打开 ABBYY 网站
发送反馈… | 允许发送反馈给 ABBYY：用户对本程序的看法、希望和评价
关于 ABBYY FlexiCapture… | 打开关于 ABBYY FlexiCapture 9.0 对话框，该对话框中包含有对本程序的简要描述。


数据校验工作站工具栏

队列和任务

工具 | 按钮 | 描述
获取任务 |  | 从选定的队列打开一个任务。
发送至异常… |  | 将任务发送至“异常”。
拒绝任务 |  | 拒绝任务（服务器稍后会将该任务发送给另一操作员）。
刷新 |  | 刷新主窗口中的信息。
自动任务接收 |  | 启用/禁用自动任务接收模式。


文档定义编辑器窗口

文档定义是在文档定义编辑器窗口中创建和编辑的。此窗口仅在项目安装工作站上显示。

要打开文档定义编辑器，请从程序的主窗口中：

  1. 选择菜单项项目>文档定义…；
  2. 在打开的文档定义对话框中，突出显示文档定义名称，单击编辑…。

文档定义编辑器窗口也在完成文档定义向导时打开。

显示文档定义编辑器窗口

文档定义编辑器窗口由三个部分组成：

  1. 带有字段标记的页面图像及显示在左上角的静态元素。

    程序有两种处理字段和静态元素的模式：

    • 字段标记模式 – 通过单击 [image] 按钮启用；
    • 静态元素模式 – 通过单击 [image] 按钮启用。
  2. 配置已识别数据的显示编辑器位于左下角。
  3. 带有所有文档定义字段列表的文档结构（字段选项卡）显示在右侧。您也可切换至页面概述模式（页面选项卡）。

文档定义编辑器菜单
文档定义编辑器工具栏


文档定义编辑器菜单

文档定义
菜单项 | 描述
添加页面… | 将新页面图像添加到文档定义中
添加文档节段… | 将新节段添加至批处理文件中
脚本模块 |
规则脚本… | 打开规则全局脚本模块上的脚本编辑器。 有关脚本模块的更多信息，请参见使用 FlexiCapture 9.0 中的脚本。
导出脚本… | 打开导出全局脚本模块上的脚本编辑器。 有关脚本模块的更多信息，请参见使用 FlexiCapture 9.0 中的脚本。
导出设置… | 打开导出设置对话框以配置数据导出选项
文档定义属性… | 打开对话框以查看和编辑文档定义属性
保存 | 保存更改
关闭 | 关闭文档定义编辑器
编辑
菜单项 | 描述
撤销 | 撤消上一操作
重做 | 恢复上次撤消的操作。
剪切 | 剪切突出显示的对象
复制 | 将突出显示的对象复制到剪贴板
粘贴 | 粘贴剪贴板内容
删除 | 删除突出显示的对象
删除区域 | 从突出显示的对象的图像中删除区域
全选 | 选择所有项目
按类型选择… | 删除某类型的对象
创建字段 |
文本 | 将文本输入字段添加至文档结构中（没有图像上的区域）
复选标记 | 将复选标记字段添加至文档结构中（没有图像上的区域）
复选标记组 | 将复选标记组字段添加至文档结构中（没有图像上的区域）
条形码 | 将条形码字段添加至文档结构中（没有图像上的区域）
图片 | 将图片字段添加至文档结构中（没有图像上的区域）
表格 | 将表格字段添加至文档结构中（没有图像上的区域）
组 | 将一组字段添加至文档结构中（没有图像上的区域）
组 | 组合突出显示的对象
取消组 | 取消组合突出显示的对象
从图像复制文本… | 从图像的任何区域获取文本，并将其存储至剪贴板。选择此命令后，突出显示所需文件所在的区域。
图像... |
去斑 | 消除图像的噪声
反转 | 反转图像
顺时针旋转 90° | 将图像顺时针旋转 90°
逆时针旋转 90° | 将图像逆时针旋转 90°
旋转 180° | 将图像旋转 180°
另存为… | 将模板页面的图像保存至指定的文件
替换… | 替换模板页面的图像
视图
菜单项 | 描述
图像布局 |
静态元素 | 切换至静态元素模式
字段区域 | 切换至字段标记模式
文档结构 |
显示文档结构 | 显示或隐藏文档结构窗口
字段 | 将文档结构窗口切换至字段模式
页面 | 将文档结构窗口切换至页面模式
数据表单 | 显示/隐藏数据编辑器窗口
布局工具栏 |
水平 | 水平放置图像布局窗口的工具栏
垂直 | 垂直放置图像布局窗口的工具栏
显示黑白图像 | 在黑白模式中显示页面的彩色和灰色图像
图像比例 | 选择合适的图像比例
属性… | 打开对话框以查看和编辑突出显示的对象属性
文档
菜单项 | 描述
运行测试 | 在文档图像上开始测试文档定义。
完成测试 | 停止测试文档定义。
图像模式 | 在文档窗口中显示页面图像。
数据模式 | 在文档窗口中显示识别的数据。
布局 |
图像窗口 | 更改文档窗口中图像的位置。
顶部 | 将图像窗口置于屏幕顶部。
底部 | 将图像窗口置于屏幕底部。
左 | 将图像窗口置于左侧
右 | 将图像窗口置于右侧
错误窗口 | 更改文档窗口中错误窗口的位置。
顶部 | 将错误窗口置于屏幕顶部。
底部 | 将错误窗口置于屏幕底部。
左 | 将错误窗口置于左侧
右 | 将错误窗口置于右侧
显示工具栏 | 在数据模式中显示/隐藏工具栏。在图像模式中，工具栏始终显示，不得隐藏。
校验 |
下一个要校验的项目 | 转至下一个要校验的项目。
上一个要校验的项目 | 转至上一个要校验的项目。
下一个不确定字符 | 转至下一个不确定字符。
上一个不确定字符 | 转至下一个不确定字符。
下一条规则错误 | 转至下一个规则错误。
上一条规则错误 | 转至上一个规则错误。
工具
菜单项 | 描述
自动检测对象… | 自动检测并突出显示某类型的字段和静态元素（取决于模式）
检查文档布局 | 检查文档定义
匹配选择 | 检查文档定义节段的匹配性
切换至测试批处理文件… | 允许使用测试批处理文件测试文档定义
帮助
菜单项 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助主题
发送反馈 | 允许用户向 ABBYY 发送意见和建议。


文档定义编辑器中的工具栏

标准工具栏

名称 | 按钮 | 描述
保存更改 |  | 保存更改
剪切 |  | 在文档窗口中处理数据时剪切选定对象
复制 |  | 复制选定对象
粘贴 |  | 从剪贴板粘贴先前复制的对象
删除 |  | 删除突出显示的对象
撤消 |  | 撤消上一操作
恢复 |  | 恢复上次撤消的操作
检查文档定义 |  | 检查文档定义 检查结果显示在文档定义编辑器窗口的底部
图像布局窗口中的工具栏

图像布局窗口中的工具栏用于创建静态元素和文档定义字段。工具栏上的一组按钮随选定的模式而变化。

在静态元素模式中：

在字段标记模式中：

可水平或垂直放置此工具栏。可在视图>布局工具栏下方更改工具栏的方向。
名称 | 按钮 | 描述
常规
静态元素模式 |  | 切换至静态元素模式
字段区域模式 |  | 切换至字段区域模式
缩放 |  | 增加图像比例
自动检测对象 |  | 自动检测图像上的对象。选择此工具，然后在对象区域中单击鼠标左键。
选择区域 |  | 突出显示图像上已标记对象的区域。要突出显示某一区域，请选择此工具，然后在此对象区域中单击鼠标左键。
在静态元素模式中
创建定位点 |  | 创建定位点。选择此工具，然后使用鼠标框住带矩形的定位点。
创建分隔符 |  | 创建分隔符 选择此工具，然后使用鼠标框住带矩形的分隔符。
创建定位点文本 |  | 创建定位点文本。选择此工具，然后使用鼠标框住带矩形的文本。
创建定位点条形码 |  | 创建定位点条形码。选择此工具，然后使用鼠标框住带矩形的条形码。
在字段标记模式中
创建文本 |  | 创建文本输入字段。选择此工具，然后使用鼠标框住带矩形的文本输入区域。
创建复选标记 |  | 创建复选标记字段。选择此工具，然后使用鼠标框住带矩形的复选标记区域。
创建复选标记组 |  | 创建复选标记组。选择此工具，然后使用鼠标框住带矩形的复选标记组。
创建条形码 |  | 创建条形码字段。选择此工具，然后使用鼠标框住带矩形的条形码。
创建图片 |  | 创建图片字段。选择此工具，然后使用鼠标框住带矩形的图片。
创建表格 |  | 创建表格字段。选择此工具，然后使用鼠标框住带矩形的表格。此时工具栏上将显示附加表格标记按钮。
创建组 |  | 创建字段组。选择此工具，然后使用鼠标框住带矩形的字段组。
为没有区域的字段创建区域 |  | 为包括在文档结构中但没有图像上区域的字段创建区域。选择此工具，然后使用鼠标框住带矩形的字段区域。从下拉列表中选择名称。（此列表显示了没有图像上区域的字段的名称）。
创建不可识别的区域 |  | 突出显示将从识别过程中排除的字段。
表格标记按钮 当在给定文档定义节段中至少创建了一个表格时显示
创建列 |  | 用于创建表格列，并指定其类型。要创建列，请选择此工具并在想要在其中创建列的区域中单击。从下拉列表中选择列类型。
绘制表格分隔符 |  | 向表格添加水平和垂直分隔符。
删除分隔符 |  | 删除分隔符


组校验程序窗口

组校验窗口

如果“文档定义”包含有已选择发送字符至组校验选项的字段，则在开始校验时将显示“组校验”窗口。更多信息请参阅字段校验属性。

此窗口用于目测检查识别为相同值的字符。屏幕上将显示识别为相同的字符，以标识和改正突出的字符。请参阅组校检。

组校验窗口菜单
组校验窗口工具栏


组校验程序菜单

组校验窗口菜单

队列和任务（此工具栏仅适用数据校验工作站）
菜单 | 描述
获取任务 | 获取新的数据校验任务
将任务发送至异常将任务发送至异常… | 将当前任务发送至“异常”
拒绝任务 | 拒绝当前任务（该任务将在某个时间返回给操作员）
刷新 | 刷新任务信息
校验
菜单 | 描述
全部确认 | 确认所有字符是否正确识别，并进入下一阶段
全部全部推迟 | 推迟所有字符的校验，并为这些字符标上问号
切换 | 推迟选定字符的校验，并为这些字符标上问号
下一页 | 如果一个屏幕上无法显示所有字符，则转至下一页
上一页 | 如果一个屏幕上无法显示所有字符，则转至上一页
关闭 | 关闭校验窗口
编辑
菜单 | 描述
撤销 | 取消上次操作
恢复 | 恢复所取消的操作
全选 | 选择所有字符
视图
菜单 | 描述
字段图像 |
显示字段图像 | 显示/隐藏含当前字符的字段的图像
顶部 | 将字段图像定位在校验窗口上方
底部 | 将字段图像定位在校验窗口下方
图像比例 | 允许选择合适的字段图像比例
显示字符图像 | 显示/隐藏字符图像
工具栏 | 显示/隐藏工具栏
信息栏 | 显示或隐藏信息栏
状态栏 | 显示/隐藏状态栏
字符大小 | 允许选择合适的字符大小
全屏 | 切换至全屏模式
首选项首选项… | 允许设置字符临近的区域
帮助
菜单 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助文件
关于 ABBYY FlexiCapture… | 打开关于 ABBYY FlexiCapture 9.0 对话框，该对话框中包含有本程序的概述。


组校验程序工具栏

组校验窗口工具栏

标准工具栏

工具 | 按钮 | 描述
上一页 |  | 如果一个屏幕上无法显示所有字符，则转至上一页
下一页 |  | 如果一个屏幕上无法显示所有字符，则转至下一页
全部确认 |  | 确认所有字符是否正确识别，并进入下一阶段
更改字符状态 |  | 将字符状态更改为被拒绝和返回
撤消 |  | 取消上次操作
恢复 |  | 恢复所取消的操作
队列和任务（此工具栏仅适用数据校验工作站）

工具 | 按钮 | 描述
获取任务 |  | 打开数据校验任务
发送至异常 |  | 将任务添加至“异常”
拒绝任务 |  | 拒绝任务。该任务将被发送给另一操作员
刷新 |  | 刷新任务信息


字段校验程序窗口

字段校验窗口

如果“文档定义”包含有已选择发送到字段校验选项的字段，则完成组校验后将显示字段校验窗口。更多信息请参阅字段校验属性。

该窗口用于目测校验整个字段上下文中不确定识别的字符。请参阅字段校验。

字段校验窗口菜单
字段校验窗口工具栏


字段校验程序菜单

字段校验程序窗口菜单

队列和任务（此菜单仅适用数据校验工作站）
菜单 | 描述
获取任务 | 获取新的数据校验任务
将任务发送至异常… | 将当前任务发送至“异常”
拒绝任务 | 拒绝当前任务（该任务将在某个时间返回给操作员）
刷新 | 刷新任务信息
校验
菜单 | 描述
确认字段 | 确认字段
推迟 | 推迟字段校验
下一个不确定字符 | 转至下一个不确定识别的字符
上一个不确定字符 | 转至上一个不确定识别的字符
下一个字段 | 转至下一字段
上一个字段 | 转至上一字段
关闭 | 关闭校验窗口
编辑
菜单 | 描述
撤销 | 取消上次操作
恢复 | 恢复所取消的操作
剪切 | 剪切选定对象
复制 | 将选定对象复制到剪贴板
粘贴 | 粘贴从剪贴板复制的对象
删除 | 删除选定对象
全部删除 | 删除所有对象
全选 | 选择所有对象
插入分行符 | 插入分行符
合并字符 | 如果某个字符在识别时被分割为多个字符，则合并选定的字符
视图
菜单 | 描述
字段数据 |
识别的文本 | 显示/隐藏识别的文本
字符较像剪切 | 切换至带有字符图像切割的字段视图
显示特殊符号 | 显示/隐藏特殊字符
字段图像 |
显示字段图像 | 显示/隐藏含当前字符的字段的图像
顶部 | 将字段图像定位在校验窗口上方
底部 | 将字段图像定位在校验窗口下方
图像比例 | 允许选择合适的字段图像比例
类似类似字段 | 显示/隐藏其他文档中的类似字段
显示字符图像 | 显示/隐藏字符图像
工具栏 | 显示/隐藏主窗口工具栏
信息栏 | 显示或隐藏信息栏
状态栏 | 显示或隐藏状态栏
字符大小 | 允许选择合适的字符大小
全屏 | 切换至全屏模式
首选项首选项… | 允许设置字符临近的区域
帮助
菜单 | 描述
帮助主题… | 打开 ABBYY FlexiCapture 9.0 的帮助文件
关于 ABBYY FlexiCapture… | 打开关于 ABBYY FlexiCapture 9.0 对话框，该对话框中包含有本程序的概述。


字段校验程序工具栏

字段校验窗口工具栏

标准工具栏

工具 | 按钮 | 描述
上一字段 |  | 转至上一字段
下一字段 |  | 转至下一字段
确认字段/跳过字段 |  | 确认字段中所有字符是否正确识别，并进入下一字段。如果字段值与该字段格式不一致，按钮名称将变为跳过字段。如果字段值无法纠正，则其跳过或推迟该字段的校验。
推迟字段 |  | 如果字段无法纠正，将推迟该字段的校验
上一个不确定字符 |  | 转至上一个不确定识别的字符
下一个不确定字符 |  | 转至下一个不确定识别的字符
撤消 |  | 取消上次操作
恢复 |  | 恢复所取消的操作
队列和任务（此工具栏仅适用数据校验工作站）

工具 | 按钮 | 描述
获取任务 |  | 获取新的数据校验任务。
发送至异常 |  | 将当前任务发送至“异常”。
拒绝任务 |  | 拒绝当前任务（服务器稍后会将该任务发送给另一操作员）。
刷新 |  | 刷新任务信息


附录

设计机器可读表单
热键
在 FlexiCapture 9.0 中使用脚本
FormReader 6.5 和 FlexiCapture 9.0 规则对比
受支持的识别语言
字符正确宣染的字体
受支持的文本类型
受支持的条形码类型
受支持的图形格式
导出文件格式
用于正则表达式的符号集
专利
其他公司提供的技术


创建机器可读表单

调查问卷、社保表单、选票和保修卡是用于收集不同类型信息的所有不同类型的表单。

表单与其他类型的文档有何不同？

  1. 表单始终包含一组字段。
  2. 每个字段均可能只包含一种类型的信息，例如，“姓”字段仅包含姓（如填写正确），“日期”字段只包含日期。

在需要从大量调查对象收集信息时将会使用表单。手动收集信息是一种耗时且令人厌倦的过程，且几乎不可避免地出现打印错误和其他错误。机器可读表单用于自动化此过程。

自动化表单处理包括以下阶段：

  1. 设置表单处理应用程序（创建文档定义并指定要识别的字段）。
  2. 采集表单图像（扫描）。
  3. 处理表单图像（识别图像并校验提取的数据）。
  4. 将提取的数据导出至外部信息系统。

表单自动化处理对于符合此章节中讨论的要求的表单最为有效。

机器可读表单
机器可读表单的元素
表单完成方法
机器可读表单的类型
选择表单权利类型
机器可读表单的常规要求


机器可读表单

要阅读表单信息，表单处理应用程序应：

  1. 确定表单元素的位置。
  2. 分隔字段内容与字段边界、文本标记、背景和说明性文本等。

机器可读表单可使程序执行这些任务。

对于第一个要成功执行的任务，表单必须与表单模式或文档定义相对应，即所有表单元素的位置在所有同类型表单上必须相同。

对于第二要成功执行的任务，表单的设计必须能体现自动化输入，即程序可轻易地区分要捕获的数据及诸如字段边界、文本标记、背景或说明性文本之类的该等不可识别的表单元素。


机器可读表单的元素

表单上可能显示以下元素：

项目符号 | 文本
项目符号 | 输入字段
项目符号 | 复选标记字段
项目符号 | 复选标记组
项目符号 | 定位点
项目符号 | 行分隔符
项目符号 | 表单标识符
项目符号 | 图片
项目符号 | 表格
项目符号 | 元素组


创建机器可读表单/文本

文本

文本是包含描述性文本的机器可读表单的元素：表单标题、字段名称和说明等。


创建机器可读表单/输入字段

输入字段

输入字段是机器可读表单的一种元素，供表单完成人员输入文本。为了便于文本输入，输入字段可能包含特定文本标记。输入字段通常附有描述或说明要输入数据的性质的文本。

向我显示输入字段

下表列出了可能的文本标志类型。

文本位于线上 | 在线上输入文本。
字母位于框中 | 在组合的框中输入字母。
字母位于独立框中 | 在独立的框中输入字母。
字母位于梳形中 | 在梳形上输入字母。
文字位于框中 | 在框中输入文本。
文字位于梳形框中 | 在梳形框中输入文本。


创建机器可读表单/复选标记字段

复选标记字段

复选标记字段是机器可读表单的元素（通常是称为“复选框”的方块形），完成表单的人员应在其中作以标记。

复选标记字段通常附有说明了复选标记用途的文本。

向我显示复选标记字段

下表显示了可能的复选标记字段形状

方块形
圆圈
下划线

也可能呈现其他形状，例如，多边形和椭圆形等。


创建机器可读表单/复选标记组

复选标记组

复选标记组是将多个复选标记字段（只能勾选一个）联合在一起的机器可读表单元素。复选标记组通常附有用来说明所选类型的说明性文本。

向我显示复选标记组


定位点

定位点是用于协助将表单图像与文档定义匹配且用于自动化处理期间确定表单的方向的机器可读表单元素。

程序只有将表单与其文档定义相匹配，才能开始识别表单的内容。所有同类型的机器可读表单必须与一个文档定义相符，即，所有表单元素的位置在所有表单上必须完全相同。程序将尝试根据表单上定位点的数量和位置将表单与其文档定义相匹配。如果程序设法将表单上的定位点与文档定义上的定位点相匹配，则其将确切地知道在哪些位置可找到包含要识别数据的字段。

下表列出了标准定位点。

黑方块形
直角形
十字形
计时标记
为了获取可能最佳的识别结果，建议在表单上设置标准定位点，但在某些情况下，行分隔符、说明性文本或条形码也可用作定位点。但是，标准定位点更为可靠，始终是首选定位点。


创建机器可读表单/行分隔符

行分隔符

行分隔符是机器可读表单的一种元素，其形状为一条垂直或水平的黑线。

行分隔符用于将表单分成多个逻辑节段。


创建机器可读表单/复选标标识符

表单标识符

表单标识符是用于选择正确的文档定义（如果多个文档定义的定位点排列相同）的机器可读表单元素。

建议使用条形码作为标识符。

条形码是一组用于编码信息宽度各异的垂直黑白线条。

向我显示条形码

表单上其他元素也可用作表单标识符。


创建机器可读表单/图片

图片

图片是不应对其进行识别且不应将其作为图像文件导出的机器可读表单元素。

例如，表单中应放置邮戳或签名的部分就是图片。


表格

表格包含带同类型元素的各列。

表格列可能包含以下类型的元素：

  • 文本
  • 输入字段
  • 日期
  • 数字
  • 复选标记

表格可能包含带列标题的行。


元素组

元素组 – 用于将组中多个逻辑链接的元素组合在一起的机器可读表单元素。


表单完成方法

可用以下任一种方法完成表单：

  • 手写

  • 使用点矩阵打印机

  • 使用打字机

  • 在印刷厂（这包括使用分辨率不小于 300 dpi 的喷墨或激光打印机打印的表单）

  • 使用上述组合


机器可读表单的类型

机器可读表单专为自动化数据输入设计，即，程序应能轻易地区分要捕获的数据及不可识别的表单元素（例如，字段边界、文本标记、背景或说明性文本）。

可采用以下两种方法之一实现此目的：

  1. 表单的设计必须确保字段边界、背景和文本标记在扫描后消失，或

  2. 表单的设计必须确保字段边界、背景和文本标记在扫描后明显不同。

如果采用第一种方法，则在扫描后只保留定位点、说明性文本和输入的数据。因此，程序将不必分隔数据与表单元素，使识别变得更为轻易和可靠。

在此情况下，可使用以下类型的表单：彩色 dropout 表单、带光栅背景的黑白表单、带光栅边界的黑白表单及黑白线性表单。

如果采用第二种方法，则定位点、说明性文本、输入的数据及文本标记和字段边界在扫描后仍保留在表单上。程序将查找由字段边界和文本标记包围的信息。如果这些表单元素缺失，识别质量将会大大下降。
在此情况下，将使用黑白线性表单。


Dropout 表单

Dropout 表单呈现浅色背景，带有用作字符单元格的白色矩形和复选标记字符等。

灰色 dropout 表单是其中一个示例，其背景为灰色。

彩色 dropout 表单包括的表单只有元素边界是彩色的。

字符单元格是只能在其中输入一个字符（例如，字母或数字）的小矩形。背景颜色极为重要，因为其必须在扫描期间消失。背景通常为浅红色、橙色或绿色。有关建议的颜色列表，请参见建议的 Dropout 表单颜色。

向我显示 dropout 表单

最为理想的是，所有表单元素（定位点除外）应在扫描期间消失，表单图像上只留下要识别的字段内容。

说明性文本可能被保留（如果用黑色打印）或随背景一起过滤掉。对于在扫描期间消失的说明性文本，其打印颜色必须与表单的背景相同，但饱和度较高。

决定是用黑色还是背景色打印说明性文本时，应考虑以下因素：

  • 如果说明性文本已保留，则图像文件将变得较大。

  • 用黑色打印的说明性文本与表单上其他元素之间的间隔至少为 1.5-2 mm。说明性文本与相应复选标记字段之间的间隔不得小于复选标记字段大小的 2/3。如果用背景色打印说明性文本，则文本与其他表单元素之间的空格并不如此重要。

用黑色打印的带说明性文本的表单清晰度更强。我们建议用黑色打印说明性文本，特别是当表单上没有定位点时。

提示
为带有用背景色打印的说明性文本的表单创建文档定义时，务必在彩色或灰色模式中扫描表单，以使表单上的说明性文本和元素更为清晰可见。

必须使用彩灯或滤色器扫描 Dropout 表单。选定的灯颜色取决于背景颜色。

必须在以下位置扫描带红色或绿色背景的表单：

  • 彩色扫描仪，使用滤色软件
  • 非彩色扫描仪，使用红色或绿色灯（硬件滤色）
  • 非彩色扫描，使用白灯和红色或绿色滤色器（此情况下，过滤质量要低得多，因为背景可能不会完全消失，或可能意外删除字段内容），或
  • 非彩色扫描仪，使用不带滤色器的白灯
    使用白灯扫描时，可能在不过滤的情况下删除某些较浅的背景：背景的弱饱和度将确保其在扫描期间消失。在此情况下，必须为每个特殊扫描仪反复尝试选择背景的颜色和饱和度。

注：许多彩色扫描仪也有用于过滤蓝色的软件滤色器。但是，我们建议不要在表单上使用蓝色阴影，因为表单有可能是同时使用黑色和蓝色墨水填写的。用蓝色墨水书写的字段内容将消失。

选择合适的颜色

红色 - 橙色优于绿色，因为他们表示的与蓝色对比度可能是最大的，这样就可提高扫描和识别质量（如果表单是用蓝色墨水填写的）。

在建议和 Dropout 菜单颜色中，您将找到用于表单处理的建议颜色，即，在使用任何扫描仪进行的扫描期间，这些颜色最有可能消失。特定扫描仪的“dropout”彩色列表（Pantone 或任何其他格式）也可从扫描仪制造商/经销商获取。


带光栅背景的黑白表单

该等表单上的字段在光栅背景中仅呈现为白色空格（通常为矩形）。背景由各个点组成。建议的点大小不得超过 0.1 mm，每个点之间的间隔大约为 1 mm。点大小及其之间的距离至关重要，因为光栅背景是在去斑期间而不是扫描期间删除的：程序会将这些点当作垃圾清除掉。因此，在已扫描图像上，这些点不应粘合在一起。


带光栅边界的黑白表单

这些表单没有背景。所有字段边界（字符单元格边界，复选标记字段和其他表单元素）由光栅线组成，即，一系列小黑点。光栅点大小通常为 0.39-0.5 pt。建议的大小为 0.39 pt，光栅点之间的距离至少要比点大小大五倍。点大小及其之间的距离至关重要，因为光栅背景是在去斑期间而不是扫描期间删除的：程序会将这些点当作垃圾清除掉。因此，在已扫描图像上，这些点不应粘合在一起。


黑白线性表单

这些表单通常没有背景。所有字段边界（字符单元格、复选标记字段和其他表单元素）由实心的黑色线条组成。字段边界不因扫描或去斑而消失。

注：填写此类型表单时必须确保极高的整洁性。如果填写表单时很粗心，字母可能与字段边界重叠，从而降低识别质量。这是因为只要字段内容与字段边界重叠，应用程序就极难将边界与文本分开。最理想的是，输入的文本不应接触字段边界。


选择表单权利类型

除了每种类型表单的设计和处理要求，选择表单类型时也需要考虑其他标准。这些包括打印成本和方法、必要的副本数量、生成的图像大小、扫描模式、必要的识别精度、表单处理速度、表单整体外观及已完成表单的整洁性等。下表概述了每种表单类型的优点和缺点。

标准 | Dropout 表单 |  | 黑白光栅表单 |  | 黑白线性表单
 | 缺点 | 优点 | 缺点 | 优点 | 缺点 | 优点
设计复杂性 |  | 易于使用任何图形编辑器进行设计。 | 文本编辑器提供了有限的用于设计此类型表单的工具。光栅点的大小至关重要。 |  |  | 易于使用任何图形编辑器进行设计
打印 | 难以在内部打印大量优质表单。 |  |  | 易于进行内部打印。 |  | 易于进行内部打印。
打印成本 | 如果使用了专业打印服务，则打印成本高于黑白表单。 |  |  | 如果使用了专业打印服务，则打印成本低于 dropout 表单。 |  | 如果使用了专业打印服务，则打印成本低于 dropout 表单。
图像大小 |  | 图像文件较小。 | 图像文件较大。 |  | 图像文件较大。 |
扫描模式 | 只能使用特殊的扫描模式（滤色）。 |  | 有限范围的亮度和对比度设置。 |  | 有限范围的亮度和对比度设置。 |
处理速度 |  | 较高的平均处理速度。 | 平均处理时间较长，因为图像需要去斑。 |  | 如果字符粘合在一起或覆盖了字段边界，则更有可能出现错误。 |
识别质量 |  | 极高识别质量。 |  | 高识别质量。 | 识别质量主要取决于填写表单的简洁性。 | 如果表单填写正确，则识别质量较高。
说明性文件的位置 |  | 说明性文件可放在任何位置，包括字段内部（只要其打印颜色与表单背景相同）。 | 将说明性文本和其他表单元素排列在表单上时必须小心。 |  | 将说明性文本和其他表单元素排列在表单上时必须小心。 |
表单外观和可读性 | 背景和说明性文本的低对比度设置可能会给表单可读性带来不利影响。 | 赏心悦目 | 设计不抢眼。可读性较低。 |  | 设计不抢眼。 | 可读性良好。
完成的简洁性 |  | 对文本重叠字段边界的不敏感。 | 书写小字符时要特别小心，不能太小，否则被当作垃圾字符删除。 | 对文本重叠字段边界的不敏感。 | 对文本重叠字段边界的极敏感。 |


机器可读表单的常规要求

现在，我们来了解一下机器可读表单的常规要求。

项目符号 | 表单背景要求
项目符号 | 定位点要求
项目符号 | 复选标记字段要求
项目符号 | 文本标记要求
项目符号 | 元素定位要求
项目符号 | 打印质量要求
项目符号 | 表单完成要求


表单背景要求

  1. 如有可能，使用 dropout 表单或带光栅字段边界的表单。
  2. 创始 dropout 表单时使用在扫描期间将消失的颜色。有关建议的颜色列表，请参见建议的 Dropout 表单颜色。
  3. 始终确保说明性文本与字段内容之间有空格。对于 dropout 表单，我们建议用与表单背景相同的颜色打印任何信息（除非说明性文本用作定位点而不是与黑色方块形组合）。用与背景相同的颜色打印信息后，您就可自由地将其放在表单上的任何位置，包括表单字段之内。
  4. 对于要用手完成的表单，不要使用蓝色。蓝色背景可与有可能用于完成表单的蓝色墨水合并。这将对识别质量带来不利影响。


定位点要求

  1. 建议将标准定位点用于机器可读表单（即，黑色方块形、直角形和十字形）。建议的定位点数量为 5：表单的每个角落均有一个定位点（如果用虚条将这些定位点连接在一起，则应形成一个矩形），虚线矩形的各侧有一个方块形。
  2. 如果由于某些原因，标准定位点无法使用，则建议使用以下元素组合作为定位点：
    a) 至少两条垂直的行分隔符或两条水平行分隔符
    b) 至少四个文本元素和一个表单标识符元素
    c) 也可能使用其他组合
  3. 定位点边缘与最近表单元素之间的距离不得小于 3 mm。
  4. 定位点与页面边缘之间的距离不得小于 8 mm。
  5. 应用深色打印定位点（建议用黑色），以便其在扫描期间不会消失。

除了上述常规要求，每个定位点类型均有其自己的特定要求：

黑色方块形要求

同一类型表单上的黑色方块形应大小相同，即介于 4х4 mm 和 8х8 mm 之间。建议的大小为 5х5 mm。不允许使用矩形。

十字形和直角形要求

  1. 可能围绕此类型定位点绘制的虚线方块形的大小必须介于 4x4 和 8x8 mm。建议的大小为 5х5 mm。
  2. 某类型字位点的大小必须在一个表单中保持一致。
  3. 所有定位点的各侧必须大小相等。
  4. 同一表单上定位点的线条厚度必须与相同，介于 0.3 至 1 mm 的范围。建议的厚度为 0.5 mm。

文本要求（如果用作定位点）

字体应小于 7 pt（标题 – 不小于 14 pt）。

行分隔符要求（如果用作定位点）

线条厚度不得小于 1 pt。建议的厚度为 1-1.5 pt。

条形码要求（如果用作定位点）

  1. 条形码宽度（最左条与最右条之间的距离）不得小于 47-50 mm。
  2. 条形码高度不得小于 12-15 mm（不包括数字）。
  3. 条形码方向（条的方向）应与页面方向相同（建议按条的方向扫描页面）。
  4. 建议使用 EAN 13 条形码格式。
  5. 建议条形码与任何其他表单元素之间的距离不得小于 10 mm。


复选标记字段要求

  1. 建议的字段大小为 3.5x3.5 mm、4x4 mm、4.5x4.5 mm 或 5x5 mm（如已使用圆形复选标记，其必须与建议大小的方块形相符）。
  2. 建议的复选标记字段边界的线宽为 0.4 mm（不管字段大小如何）。


文本标记要求

光栅点大小：

  1. 如果字段边界为光栅点，则光栅线厚度（即，光栅大小）必须为 0.39 pt。

  2. 光栅点之间的最佳距离为其大小的五倍。

    重要事项！字符单元格直角形中的点最有可能粘合在一起。

提示
如果您的软件不允许您指定每个光栅点之间的距离，则必须确保所选择的线条样式各点之间的距离足以防止其在扫描图像上粘合在一起，并可防止其在执行图像去斑后仍残存。这是 OCR 系统将大点当作垃圾读取，在去斑期间不会将其从图像中清除。

字符单元格大小：

  1. 建议的字符单元格大小为 4х5 mm；使用较小的尺寸需要表单填写人采用更高的精度，这点很难做到。建议也不要使用大字符单元格，因为这需要采用异常大的字母。字符单元格大小最好应能反映平均字母大小。
  2. 字段行之间的距离不得小于 2.5 – 3 mm，同一行中两个相邻字符单元格之间的距离不得小于 1-1.2 mm。
向我显示字符单元格

线条厚度：

  1. 如果边界为黑色线条（“文本在框中”、“字母在独立框中”或“字母在框中”），则线条厚度应为 1 pt。
向我显示黑色线条边界

梳形：

  1. 建议的梳形中各凹口之间的距离为 5 mm。
  2. 两个梳形水平线条（一条在另一条之上）之间的距离，不得小于 7.5 – 8 mm。
  3. 凹口高度必须大约为 0.9 – 1.2 mm。
  4. 凹口和水平线条的厚度应为 1 pt。
  5. 如果使用了带梳形的框，则框之间的最小距离应为 2.5 – 3 mm。
向我显示梳形


元素定位要求

  1. 务必确保表单有足够的边距，否则离表单边缘太近的表单元素在扫描时可能消失，从而导致数据丢失。
  2. 相邻表单元素之间的间隔不得小于 2 mm。
  3. 复选标记字段与说明性文本之间的间隔不得小于复选标记字段大小的 2/3。
  4. 确保说明性文本不与输入字段边界重叠。
  5. 如果说明性文本用黑色墨水打印的，请确保说明性文本与其他元素至小查隔 1.5-2 mm。对于用背景相同的墨水打印的说明性文本，此距离并不重要。


打印质量要求

打印空白表单时，请记住以下要求：

  1. 必须以专业方式或使用打印机打印表单。建议以专业方式打印彩色表单。如果无法做到这点，开始打印之前，请在扫描仪上测试表单颜色。
  2. 所有表单副本必须使用相同的来源文档打印，因为每个表单上的字段位置必须相同。
  3. 最小边距大小（即页面边缘与最近表单元素之就的距离）至少为 8 mm（建议使用 12 mm 边距）。
  4. 表单元素线性偏离不得超过 0.15%（对于 A4 页面，则为 0.5 mm ）。
  5. 使用打印机打印表单时所用的分辨率不得小于 600 dpi。
  6. 我们建议借助于同一扫描仪或同型号的不同扫描仪打印表单。

提示：我们建议不要使用复制设置复制机器可读表单。使用该等设备可能会稍微改变表单上元素的尺寸或其排列，例如，表格或输入字段边界可能会变厚或色深可能发生变化，从而降低识别质量。


表单完成要求

钢笔和墨水

填写表单时要确保整洁性，要用大写字母，使用黑色圆珠笔、中性笔或毛管绘图笔（深蓝色和紫罗兰色也可接受）填写。建议不要使用水彩笔/毯头笔，因为这样的笔所写出的字符可能太粗，妨碍识别。使用铅笔或浅色墨水填写的表单最难识别。

字母大小和样式

为了获取最佳识别结果，应用正楷大写字母填写表单。字母必须填满所有字符单元格，但不得覆盖单元格边缘。

如果表单上的字符单元格很明显（即使用了以下文本标记类型：字母位于框中和字母位于独立框中），则表单填写人员将字母连在一起的可能性很小。

以下文本标记类型增加了识别难度：文字位于梳形框中，字母位于梳形中。以下是预定义的字符单元格宽度，由于没有边界，更易于连接字母。对于不带框的梳形，可能会将字母写入大小或太大。

如果使用了位于框中的文本或位于线上的文本，则对字符单元格的宽度没有明显的限制。字母连接在一起可能对识别质量带来不利影响。对于位于线上的文本，则对字符高度没有限制。因此，建议不要将此标记类型用于需要高识别精度的表单。

另一个重要的要求是，字母不能与字段边界重叠。对于 dropout 表单或黑白光栅表单，此要求不怎么严格，因为字段边界将在扫描和去斑期间消失。如果黑白线性表单上的字母与字段边界重叠，则可能会降低识别质量。

样本

为了正确地填写表单，建议在表单上附上类似以下的备注。


建议的 Dropout 表单颜色

下表包含 dropout 颜色样本及其相应的色卡编号。扫描表单后，这些背景色将消失：

  • 使用任何扫描仪
    向我显示白灯表格
  • 使用带有软件红色滤色功能的彩色扫描仪或使用带有红灯/红色滤色器的非彩色扫描仪
    • 向我显示白灯表格


热键

键盘快捷键

本部分列示该程序的不同窗口中所使用的键盘快捷键。使用快捷键将不仅节省时间，而且方便工作。

项目安装工作站的键盘快捷键
校验工作站的键盘快捷键
数据校验工作站的键盘快捷键
文档定义编辑器的键盘快捷键
组校验的键盘快捷键
字段校验的键盘快捷键


项目安装工作站主窗口中的热键

项目安装工作站的键盘快捷键

菜单 | 命令 | 快捷键
文件 | 新建项目… | Ctrl+Shift+N
 | 打开项目… | Ctrl+Shift+O
 | 保存 | Ctrl+S
 | 新建批处理文件新建批处理文件… | Ctrl+N
 | 加载图像… | Ctrl+O
 | 扫描图像… | Ctrl+K
 | 导入图像… | Ctrl+I
 | 导出至将数据导出至文件… | Alt+Shift+S
 | 导出至数据库数据库… | Alt+Shift+D
 | 退出 | Alt+F4
编辑 | 撤销 | Ctrl+Z
 | 恢复 | Ctrl+Y
 | 剪切 | Ctrl+X
 | 复制 | Ctrl+C
 | 粘贴 | Ctrl+V
 | 删除 | Del
 | 全选 | Ctrl+A
 | 查找… | Ctrl+F
 | 查找下一个 | F3
 | 转至> 下一个文档 | Ctrl+D
 | 转至> 上一个文档 | Ctrl+Shift+D
 | 图像 > 去斑 | Ctrl+Alt+K
 | 图像 > 反转 | Ctrl+Alt+V
 | 图像 > 顺时针旋转顺时针旋转 90° | Ctrl+W
 | 图像 > 逆时针旋转逆时针旋转 90° | Ctrl+Shift+W
视图 | 测试批处理文件 | Ctrl+Shift+B
 | 批处理文件 | Ctrl+B
 | 详细信息 | Alt+1
 | 缩略图 | Alt+2
 | 图像模式 | Ctrl+1
 | 数据模式 | Ctrl+2
 | 放大 | Ctrl+Num+
 | 缩小 | Ctrl+Num-
 | 缩略图大小：增大 | Ctrl+Shift+Num+
 | 缩略图大小：缩小 | Ctrl+Shift+Num-
 | 全屏 | F11
 | 刷新 | F5
 | 对象属性 | Alt+Enter
识别 | 分析 | Ctrl+E
 | 匹本文档定义… | Alt+Shift+E
 | 识别 | Ctrl+R
校验 | 运行校验… | F7
 | 下一个要校验的项目 | F4
 | 上一个要校验的项目 | Shift+F4
 | 下一下组装错误 | F9
 | 上一个组装错误 | Shift+F9
 | 下一个不确定字符 | F8
 | 上一个不确定字符 | Shift+F8
 | 下一条规则错误 | F6
 | 上一条规则错误 | Shift+F6
项目 | 文档定义… | Ctrl+T
 | 批处理文件类型批处理文件类型… | Ctrl+Shift+T
 | 图像导入配置文件… | Ctrl+Shift+I
工具 | 更新至最新版本 | Alt+Shift+U
 | 重新分析 | Ctrl+Alt+E
 | 重新识别 | Ctrl+Alt+R
 | 重新检查规则 | Ctrl+F6
 | 检查批处理文件完整性 | Ctrl+Shift+E
帮助 | 帮助主题 | F1
常用命令 | 打开文档窗口（如果已选择文档或页面） | Enter


校验工作站主窗口中的热键

校验工作站的键盘快捷键

菜单 | 命令 | 快捷键
文件 | 保存 | Ctrl+S
 | 新建批处理文件新建批处理文件… | Ctrl+N
 | 加载图像… | Ctrl+O
 | 扫描图像… | Ctrl+K
 | 导出至将数据导出至文件… | Alt+Shift+S
 | 导出至数据库… | Alt+Shift+D
 | 退出 | Alt+F4
编辑 | 撤销 | Ctrl+Z
 | 恢复 | Ctrl+Y
 | 剪切 | Ctrl+X
 | 复制 | Ctrl+C
 | 粘贴 | Ctrl+V
 | 删除 | Del
 | 全选 | Ctrl+A
 | 查找… | Ctrl+F
 | 查找下一个 | F3
 | 转至> 下一个文档 | Ctrl+D
 | 转至> 上一个文档 | Ctrl+Shift+D
 | 图像 > 去斑 | Ctrl+Alt+K
 | 图像 > 反转 | Ctrl+Alt+V
 | 图像 > 顺时针旋转顺时针旋转 90° | Ctrl+W
 | 图像 > 逆时针旋转逆时针旋转 90° | Ctrl+Shift+W
视图 | 批处理文件 | Ctrl+B
 | 队列 | Ctrl+Q
 | 详细信息 | Alt+1
 | 缩略图 | Alt+2
 | 图像模式 | Ctrl+1
 | 数据模式 | Ctrl+2
 | 放大 | Ctrl+Num+
 | 缩小 | Ctrl+Num-
 | 缩略图大小：增大 | Ctrl+Shift+Num+
 | 缩略图大小：缩小 | Ctrl+Shift+Num-
 | 全屏 | F11
 | 刷新 | F5
 | 对象属性 | Alt+Enter
任务 | 获取任务 | Ctrl+G
识别 | 分析 | Ctrl+E
 | 匹本文档定义… | Alt+Shift+E
 | 识别 | Ctrl+R
校验 | 运行校验… | F7
 | 下一个要校验的项目 | F4
 | 上一个要校验的项目 | Shift+F4
 | 下一下组装错误 | F9
 | 上一个组装错误 | Shift+F9
 | 下一个不确定字符 | F8
 | 上一个不确定字符 | Shift+F8
 | 下一条规则错误 | F6
 | 上一条规则错误 | Shift+F6
工具 | 更新至最新版本 | Alt+Shift+U
 | 重新分析 | Ctrl+Alt+E
 | 重新识别 | Ctrl+Alt+R
 | 重新检查规则 | Ctrl+F6
 | 检查批处理文件完整性 | Ctrl+Shift+E
帮助 | 帮助主题 | F1
常用命令 | 打开文档窗口（如果已选择文档或页面） | Enter
 | 注册参数 | Ctrl+P


数据校验工作站主窗口中的热键

数据校验工作站的键盘快捷键

菜单 | 命令 | 快捷键
文件 | 退出 | Alt+F4
视图 | 全屏 | F11
 | 刷新 | F5
任务 | 获取任务 | Ctrl+G
帮助 | 帮助主题 | F1


文档定义编辑器中的热键

文档定义编辑器的键盘快捷键

菜单 | 命令 | 快捷键
文档定义 | 添加页面… | Ctrl+P
 | 添加文档节段… | Ctrl+Alt+S
 | 文档定义属性… | Ctrl+T
 | 保存 | Ctrl+S
 | 关闭 | Alt+F4
编辑 | 撤销 | Ctrl+Z
 | 重做 | Ctrl+Y
 | 剪切 | Ctrl+X
 | 复制 | Ctrl+C
 | 粘贴 | Ctrl+V
 | 删除 | Del
 | 删除区域 | Shift+Del
 | 全选 | Ctrl+A
 | 按类型选择… | Ctrl+Shift+A
 | 创建字段 - 文本 | Alt+Shift+T
 | 创建字段 - 复选标记 | Alt+Shift+C
 | 创建字段 - 复选标记组 | Alt+Shift+M
 | 创建字段 - 条形码 | Alt+Shift+B
 | 创建字段 - 图片 | Alt+Shift+P
 | 创建字段 - 表格 | Alt+Shift+L
 | 创建字段 - 组 | Alt+Shift+G
 | 组 | Ctrl+G
 | 取消组 | Ctrl+Shift+G
 | 从图像复制文本… | Ctrl+Alt+C
 | 图像 > 去斑 | Ctrl+Alt+K
 | 图像 > 反转 | Ctrl+Alt+V
 | 图像 > 顺时针旋转 90° | Ctrl+W
 | 图像 > 逆时针旋转 90° | Ctrl+Shift+W
视图 | 静态元素 | Ctrl+1
 | 字段区域 | Ctrl+2
 | 显示文档结构 | Alt+F1
 | 文档结构 - 字段 | Alt+1
 | 文档结构 - 页面 | Alt+2
 | 数据表单 | Alt+F2
 | 图像缩放 - 放大 | Ctrl+Num+
 | 图像缩放 - 缩小 | Ctrl+Num-
 | 属性 | Alt+Enter
文档 | 运行测试 | Ctrl+R
工具 | 自动检测对象… | Ctrl+D
 | 检查文档布局 | F9
 | 匹配选择 | Ctrl+E
帮助 | 帮助主题 | F1

图像窗口

命令 | 快捷键
选择区域 | Esc
自动检测对象 | Ctrl+Shift+D
创建定位点 | A
创建分隔符 | S
创建定位点文本 | X
创建定位点条形码 | D
创建文本 | T
创建复选标记 | C
创建复选标记组 | M
创建条形码 | B
创建图像 | P
创建表格 | L
创建组 | G
为没有区域的字段创建区域 | R
创建未识别区域 | O
创建字段列 | U
将分隔符添加至表格 | F
从表格中删除分隔符 | E
调整区域 | Ctrl+Alt+A
建议名称 | Ctrl+Alt+N
从图像获取名称… | Ctrl+Alt+I
检测标记类型 | Ctrl+Alt+D

文档结构窗口

命令 | 快捷键
显示字段图像 | Enter
重命名字段 | F2
在选定一个字段时： |
添加带文本的列 | Alt+Shift+T
添加带复选标记的列 | Alt+Shift+C
添加带条形码的列 | Alt+Shift+B
添加带图像的列 | Alt+Shift+P
在选定一个复选标记组时： |
添加复选标记 | Alt+Shift+C


组校验程序窗口中的热键

组校验窗口键盘快捷键

菜单 | 命令 | 热键
校验 | 全部确认 | Enter
 | 全部推迟 | Ctrl+Enter
 | 切换 | Space
 | 下一页 | Page Down
 | 上一页 | Page Up
 | 关闭 | Alt+F4
编辑 | 撤销 | Ctrl+Z
 | 恢复 | Ctrl+Y
 | 全选 | Ctrl+A
视图 | 字段图像 > 显示字段图像 | Ctrl+I
 | 字段图像 > 顶部 | Alt+1
 | 字段图像 > 底部 | Alt+2
 | 字段图像 > 图像比例 > 放大 | Ctrl+Num+
 | 字段图像 > 图像比例 > 缩小 | Ctrl+Num-
 | 显示字符图像 | F2
 | 全屏 | F11
帮助 | 帮助主题 | F1
本地符号菜单 | 显示字符图像 | F2
 | 确认 | Ctrl+E
 | 推迟 | Ctrl+R
 | 重置 | Esc


字段校验程序窗口中的热键

菜单 | 命令 | 热键
校验 | 确认字段 | Enter
 | 推迟 | Ctrl+Enter
 | 下一个不确定字符 | F4
 | 上一个不确定字符 | Shift+F4
 | 下一个字段 | Page Down
 | 上一个字段 | Page Up
 | 关闭 | Alt+F4
编辑 | 撤销 | Ctrl+Z
 | 恢复 | Ctrl+Y
 | 剪切 | Ctrl+X
 | 复制 | Ctrl+C
 | 粘贴 | Ctrl+V
 | 删除 | Del
 | 全选 | Ctrl+A
 | 插入分行符 | Shift+Enter
 | 合并字符 | Ctrl+M
视图 | 字段数据 > 识别的文本 | Alt+F1
 | 字段数据 > 字符较像剪切 | Alt+F2
 | 字段图像 > 显示字段图像 | Ctrl+I
 | 字段图像 > 顶部 | Alt+1
 | 字段图像 > 底部 | Alt+2
 | 字段图像 > 图像比例 >放大 | Ctrl+Num+
 | 字段图像 > 图像比例 >缩小 | Ctrl+Num-
 | 显示字符图像 | F2
 | 全屏 | F11
帮助 | 显示帮助 | F1


在 FlexiCapture 9.0 中使用脚本

本节描述了如何在 FlexiCapture 9.0 中使用脚本创建自定义规则、运行导出并创建导出处理程序。

两种脚本语言受支持 – JScript® 和 VBScript。

使用规格

在 VBScript 中，当引用当前对象的方法和字段时必须使用关键字 Me（C++ 和 Java 中的“this”备选项）。对于规则，当前对象是可校验的文档单元（包含规则的单元）；对于导出，则为可导出的文档。

Me.CheckSucceeded = False

在 JScript 中的相同情况下，您可忽略“this”：

this.CheckSucceeded = false; CheckSucceeded = false;

诸如“未找到方法或属性”之类的错误是在脚本运行时期间输出的：

ChecckSucceeded = false; //runtime error

语法错误是在保存脚本时输出的：

CheckSucceeded +++ false; //syntax error

自定义函数

脚本编辑器可供用户创建其自己的函数和程序，然后从规则代码或从导出代码对其进行调用。

可在其中一个全局模块中创建自定义函数 - 在导出模块或在规则模块中。可在脚本编辑器中选择所需的模块。

一个模块中的所有函数必须用同一语言写入。可用不同于相应全局模块中所用的语言写入规则或导出的核心代码。

例如，从用 VBScript 写入的规则代码中，您可调用用 JScript 写入的全局模块中包含的函数。

函数只能从“其自己的”模块中调用。这意味着，从规则代码中，您只能调用全局规则模块中包含的函数，从导出代码中，您只能调用全局规则模块中包含的函数。否则，执行期间将会出现错误。

函数调用方式如下：

[VBScript]

result = Rules.SomeFunction( param1, param2 … )

Export.SomeFunction param1, param2 …

[JScript]

result = Rules.SomeFunction( param1, param2 … );

Export.SomeFunction( param1, param2 … );

脚本执行超时

对于规则，默认超时为 10 秒，对于导出，默认超时为 1 分钟。

要更改默认超时，请在注册表中更改相应的值。

对于规则：
HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\9.0\Controller\ScriptSupport\DefaultScriptTimeout

对于导出：
HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\9.0\Controller\ScriptSupport\ExportScriptTimeout

将用毫秒指定注册表中的超时值。如果执行脚本所需的时间长于指定的超时，则将终止脚本。对于规则，将返回错误消息“脚本执行超时”。对于导出，则在批处理文件窗口的处理注释列中显示相似的消息。

使用脚本创建规则
使用脚本描述导出
从 FormReader 6.5 规则迁移并导出至 FlexiCapture 9.0 脚本


使用脚本创建规则

通过基于脚本的规则 (ScriptRule)，用户可创建复杂的自定义算法，以便使用标准脚本语言 JScript® 和 VBScript 执行文档校验和标准化。

注：使用第一版 ABBYY FlexiCapture 创建的某些脚本可能在第二版中失效。这是因为字段值在第二版中已类型化，而第一版中使用的是文本值。要解决此问题，您可 a) 将处理字段文本的脚本的值属性更改为“文本”或 b) 更改值属性的用途以使其与其当前的描述相符。参阅字段对象属性。

此部分也描述了自动替换脚本和批处理文件完整性脚本。

对象模型

规则应视为一种已校验文档单元的方法，例如，即引用“this”或“Me”指此规则目前适用的对象 [已校验的文档单元]。

规则可根据一个或多个字段的值执行文档校验。如果出现错误输出，则需要设置错误标志，如有必要，请指定错误描述、焦点字段及建议的替换变量。规则也可将某一字段标记为确定识别的。

规则可执行文档标准化：将字段值更改为正常外观或添加信息（例如，上次处理日期）。

已校验的文档单元

属性：

名称 | 类型 | 访问 | 描述
CheckSucceeded | 布尔 | 读/写 | 错误标志。true –没有规则错误，fasle – 存在规则错误
ErrorMessage | 字符串 | 读/写 | 错误消息
FocusedField | [字段] | 读/写 | 焦点字段
字段（“别名”） | [字段] | 只读 | 带别名 AliasName 的字段 别是是在从规则代码访问字段是所用的字段的特殊名称。因此，重命名字段将对规则代码中字段的用途产生影响。 别名也可用于具备相同名称的一个规则字段（例如，不同节段中具备相同名称的字段）。 别名可能等同于字段的名称，也可能不同。 当您将字段添加至规则时，则将自动为其生成别名，但您可修改或更改由程序生成的任何别名。
字段 | [字段集合] | 只读 | 参与规则的字段的集合
文档 | [文档] | 只读 | 包含已校验单元的文档
IsModuleAllowedByLicense | 布尔 | 只读 | 检查是否可根据许可参数访问模块。参数：作者 ID，模块 ID（字符串）。

其中已校验文档单元是一个字段，其支持属于[字段]对象的所有属性和方法。如果已校验单元不是一个字段，则您无法引用这些属性和方法，否则会引起错误。

字段

属性：

名称 | 类型 | 访问 | 描述
值 | 变量 | 读/写 | 字段的类型化值。 对于数字字段，包含浮动点数。 对于“日期/时间”字段，包含日期值 (VT_DATE)。 对于“货币”字段，包含总和值 (VT_CY)。 对于复选标记，包含布尔值。将值分配给复选标记时，您可使用布尔 true/false 值和文本“true”/“false”值（区分大小写）。 复选标记组的值是由分号 (;) 分隔的选定复选记名称的列表。如果尚未选定复选标记，字符串将为空。要更改复选标记组的值，请将“true”值分配给需要选择的复选标记，将“false”分配给不需要选择的标记。同时，必须将所有这些复选标记纳入规则中。 对于组、表格和图片 – 空字符串。 您不能将值分配给组、复选标记组和表格。试图将值分配给这些类型的字段将会引起错误。
文本 | 字符串 | 读/写 | 字段的文本值。与所有类型的字段（除开复选标记）的值相符。 对于复选标记，此属性的值是根据在日期类型选项卡上选择的字段属性确定的。 重要事项！应用规则时文本属性的值将不改变，即，更改规则代码中值属性将不会同时更改文本属性。 在以下样本中，oldText 值与 newText 值相同： Dim oldText, newText oldText = me.Field("FieldName").Text me.Field("FieldName").Value = newValue newText = me.Field("FieldName").Text
名称 | 字符串 | 只读 | 字段名称
IsVerified | 布尔 | 读/写 | 显示字段是否已校验的标志。标记为已校验的字段在校验期间及在计算需要校验的字符时将被忽略。 如果用户在校验期间确认了字段或如果某些规则已将属性的值设置为 true时，此属性设置为 true。 否则，此属性的值为false。
IsCertain | 布尔 | 读/写 | 字段确定性标志。标记为已确定识别的字段在校验期间及在计算需要校验的字符时将被忽略。 此属性已过时，只为向后兼容性保留。请换用 IsVerified 属性。
IsMatched | 布尔 | 只读 | 显示字段是否匹配的标志。
项目 | [字段集合] | 只读 | 对于多重字段，则指其实例集合。对于非多重字段，则为 0。
IsValid | 布尔 | 只读 | 显示字段值是否有效的标记。
SuspiciousSymbols | 字符串 | 只读 | 由 1's 和 0's 组成的字符串，其中 1's 与不可靠识别的字符相对应。对于复选标记，则返回单字符字符串。
IsVerified | 布尔 | 读/写 | 显示字段是否已校验的标志。
区域 | [区域集合] | 只读 | [字段区域集合]

方法：

名称 | 参数 | 描述
建议（文本） | 变量 | 添加具备建议字段值的提示。要设置多个变量，以必要的次数依次调用方法。 所添加的提示的值必须与字段类型相对应（即，其必须是数字字值的数字、“日期/时间”字段的日期等）。

[区域集合]

属性：

名称 | 类型 | 访问 | 描述
计数 | 整数 | 只读 | 集合中的区域数
项目（索引） | [区域] | 只读 | 带索引的区域。索引假定从 0 到计数 -1 的值

区域

属性：

名称 | 类型 | 访问 | 描述
PageIndex | 整数 | 只读 | 此区域所属页面的索引。
矩形 | [矩形集合] | 只读 | 组成区域的矩形的集合。 对于矩形区域，仅包含一个矩形。
SurroundingRect | [矩形] | 只读 | 围绕区域的矩形。
图片 | IPicture | 只读 | 此区域的图片。

字段集合

属性：

名称 | 类型 | 访问 | 描述
计数 | 整数 | 只读 | 集合中字段数量
项目（索引） | [字段] | 只读 | 索引字段。索引可能拥有从 0 到计数 -1 的值

文档

方法：

名称 | 参数 | 描述
页面 | [页面集合] | 文档页面的集合。
属性（名称） | 名称 – 属性名称 | 返回已查询属性的值。返回的值类型 – 变量。

可使用属性方法设置的文档属性（此方法所获取的文档属性是只读的）：

值 | 类型 | 描述
"TemplateName" | 字符串 | 文档定义名称
"TotalSymbolsCount" | 整数 | 字符数
"UncertainSymbolsCount" | 整数 | 不确定识别字符的数量
"RecognizedSymbolsCount" | 整数 | 已识别字符数
"Comment" | 字符串 | 注释
"Created" | 日期 | 创建日期
"CreatedBy" | 字符串 | 创建者
"Recognized" | 日期 | 识别日期
"RecognizedBy" | 字符串 | 识别人
"Modified" | 日期 | 上次修改日期
"ModifiedBy" | 字符串 | 修改者
"ProcessingErrors" | 字符串 | 错误
"ProcessingWarnings" | 字符串 | 警告

页面

名称 | 类型 | 访问 | 描述
ImageSource | 字符串 | 只读 | 图像来源的名称（文件名，扫描配置文件名称）。
ImageSourceType | 字符串 | 只读 | 描述图像来源类型的字符。可能的值：文件、扫描仪、自定义或空。
ImageSourcePageNumber | 整数 | 只读 | 来源文件中的页面数量。

使用脚本执行格式检查和自动替换

对象模型

引用“this”或“Me ”指要检查的对象及脚本所适用的对象。

脚本可用于检查和编辑字段值（如有必要）。您也可指定错误消息。

要检查的对象

属性：

名称 | 类型 | 访问 | 描述
文本 | 字符串 | 读/写 | 包含字段值的字符串。
SuspiciousSymbols | 字符串 | 只读 | 由 1's 和 0's 组成的字符串，其中 1's 与不可靠识别的字符相对应。对于复选标记，则返回单字符字符串。
ErrorMessage | 字符串 | 读/写 | 错误消息

批处理文件完整性检查

对象模型

引用“this”或“Me ”指要检查的对象及脚本所适用的对象。对象包含批处理文件和处理结果。

脚本可用于检查批处理文件的完整性并返回结果。如有必要，可创建错误消息。

对于文档，有关文档的一般信息已足够，无需有关其元素（字段和页面）的数据。但是，也可提供有关重要字段的数据。因此，如果您需要在完整性检查中使用字段值，则此字段必须为关键字段。

要检查的对象

属性：

名称 | 类型 | 访问 | 描述
批处理文件 | [批处理文件] | 只读 | 要检查的批处理文件。
CheckSucceeded | 布尔 | 读/写 | 批处理文件完整性检查的结果。
ErrorMessage | 字符串 | 读/写 | 错误消息

批处理文件

属性：

名称 | 类型 | 访问 | 描述
BatchTypeName | 字符串 | 只读 | 批处理文件类型的名称
文档 | [文档集合] | 只读 | 批处理文件中的文档 对于文档，有关文档的一般信息已足够，无需有关其元素（字段和页面）的数据。但是，也可提供有关关键字段的数据
RegistrationProperties | [注册参数集合] | 只读 | 批处理文件的注册参数。
RegistrationProperty（名称） | 字符串 | 只读 | 名称为 Name 的批处理文件注册参数的值

页面

属性：

名称 | 类型 | 访问 | 描述
TemplateName | 字符串 | 只读 | 节段名称
ImageSourceType | 字符串 | 只读 | 图像来源的类型。可能假定值文件或扫描仪
ImageSource | 字符串 | 只读 | 图像来源 对于文件，这是带有文件完整路径的文件的名称。 对于扫描仪，这是扫描仪的名称。
ImageSourcePageNumber | 整数 | 只读 | 来源文件中的页面数量。

文档集合

属性：

名称 | 类型 | 访问 | 描述
计数 | 整数 | 只读 | 集合中文档数量
项目（索引） | [导出的文档] | 只读 | 带索引的文档。索引采用从 0 到计数 -1 的值

文档

属性：

名称 | 类型 | 访问 | 描述
IsAssembled | 布尔 | 只读 | 显示文档是否已组装的标志
IsVerified | 布尔 | 只读 | 显示文档是否已校验的标志
IsExported | 布尔 | 只读 | 显示文档是否已导出的标志
TemplateName | 字符串 | 只读 | 文档定义的名称
ProcessingErrors | 字符串 | 只读 | 处理错误的消息文本
ProcessingWarnings | 字符串 | 只读 | 在处理过程中向用户发出的提示和/或警告
TotalSymbolsCount | 字符串 | 只读 | 总字符数（除了识别的字符，也包括由用户和规则添加的字符）
RecognizedSymbolsCount | 字符串 | 只读 | 已识别字符的数量
UncertainSymbolsCount | 字符串 | 只读 | 不确定识别字符的数量
ID | 字符串 | 只读 | 文档标识符
BatchName | 字符串 | 只读 | 批处理文件的名称
Field(FieldName) | [文档字段] | 只读 | 名称为 FieldName 的字段。既可返回字段，也可返回节段。 FieldName 是具有完整路径（从节段开始）的字段的名称。 例如： "Section 1\Group\Field 1" 重要事项： 如果字段路径中的任何一个组件包含多个项目，必须指定该组件的索引。 例如，对于多重组，上述路径应类似如下： "Section 1\Group[index]\Field 1" 索引假定从 0 至Count - 1 的值，其中 Count 是多重组件的副本数。 如果使用错误的名称，将显示异常。
HasField (FieldName) | 布尔 | 只读 | FieldName 字段存在性检查。
Children | [文档字段集合] | 只读 | 文档节段集合
Pages | [页面集合] | 只读 | 文档页面集合
RegistrationProperties | [注册属性集合] | 只读 | 文档注册属性集合
Action | [处理结果] | 只读 | 提供导出结果信息的特殊对象。 在导出期间信息将被写入此对象。 在进行导出后处理时，可根据需要使用此信息。
IndexedItemValue (Name) | [文档字段] | 只读 | 名称为 Name 的索引字段。Name 可以是具有完整路径（从节段开始）的字段名称。 例如： "Section 1\Group\Field 1"
IsModuleAllowedByLicense (AuthorID, ModuleID) | 布尔 | 只读 | 模块可用性检查（根据许可证参数： 作者标识符、模块（字符串）标识符。

注册参数集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中的参数个数
Item(index) | [注册参数] | 只读 | 带索引 index 的参数。index 采用从 0 到 Count – 1的值

注册参数

属性：

名称 | 类型 | 访问 | 描述
Name | 字符串 | 只读 | 注册参数的名称
Value | 字符串 | 只读 | 注册参数的值

用于创建用户规则的样本脚本


用于创建自定义规则的样本脚本

自动化规则

此示例演示了表格数据检查。检查表格数据是否与生成字段中值相匹配的规则检查。此表格含有表示某些货物价格和数量的列。规则是在包含表格和生成字段的节段级别编写。

[VBScript]

dim autoRule

set autoRule = CreateObject( "AutomationRule.CheckDoc" )

autoRule.CheckResult me.FIELD("cost"), me.FIELD("number"), _

me.FIELD("Result"), me

[JScript]

var autoRule = new ActiveXObject( "AutomationRule.CheckDoc" );

autoRule.CheckResult( Field("cost"), Field("number"),

Field("Result"), this );

ActiveX 组件代码

此处提供的代码是源自 AutomationRule 项目的 CheckDoc 类代码，用于上述提到的脚本。

Option Explicit

' Checks whether table data matches the result

' column1 - price column

' column2 - quantity column

' resultField - resulting field (<Total> or equivalent )

' docObj - document node being checked

Public Sub CheckResult(ByRef column1 As Object, ByRef column2 As Object, _

ByRef resultField As Object, ByRef docObj As Object)

On Error GoTo err_h

Dim costItems As Object, numItems As Object

    Dim curCost As Double, curNum As Long, sum As Double

Dim result As Double

Dim i As Long

Set costItems = column1.Items

Set numItems = column2.Items

' summing up table data

sum = 0

For i = 0 To costItems.Count - 1

curCost = costItems.Item(i).Value

curNum = numItems.Item(i).Value

sum = sum + curNum * curCost

Next

' comparison accuracy – result rounded to the 2nd digit after the decimal point

result = resultField.Value

If (Round(result, 2) = Round(sum, 2)) Then

docObj.CheckSucceeded = True

Else

docObj.CheckSucceeded = False

docObj.ErrorMessage = "Table data does not match the resulting value"

resultField.Suggest sum

End If

Exit Sub

err_h:

docObj.ErrorMessage = Err.Description

docObj.CheckSucceeded = False

End Sub

搜索变量列表

以下提供的规则代码检查字段值是否与列表中的任一值相匹配。如不匹配，则将出现规则错误标记，字段将收到建议的值列表。根据检查结果，将字段标记为确定或不确定识别。

[VBScript]

'remember field value

Dim fieldValue

fieldValue = me.Field("Field6").Value

'create list of values for check

Dim list(5)

dim i

for i = 0 to 4

list(i) = "2" & i

next

dim success

success = false

'check whether field value matches values in the list

for i = 0 to 4

if list(i) = fieldValue Then

success = true

exit for

end if

next

'depending on the check result, set a corresponding certainty status for the field

me.Field("Field6").IsCertain = success

'fill the list of suggestions for the field – a suggestion can be any of the

'suitable values

if success = false then

for i = 0 to 4

me.Field("Field6").Suggest( list(i) )

next

end if

'place an error flag

me.CheckSucceeded = success

[JScript]

// remember field value

var fieldValue = Field("Field6").Value;

// create list of values for check

var list = new Array(5);

for( i = 0; i < 5; i++ ) {

list[i] = "2" + i

}

var success = false;

// match field value against values in the list

for( i = 0; i < 5; i++ ) {

if( list[i] == fieldValue ) {

success = true;

break;

}

}

// depending on the check result, set a corresponding certainty status for the field

Field("Field6").IsCertain = success;

// fill the list of suggestions for the field – a suggestion can be any of the

// suitable values

if( !success ) {

for( i = 0; i < 5; i++ ) {

Field("Field6").Suggest( list[i] );

}

}

// place error flag

CheckSucceeded = success;

字段匹配检查

以下提供的规则代码检查已检查的字段是否已匹配。

[VBScript]

if me.Field("InvoiceNumber").IsMatched then

me.CheckSucceeded = true

else

me.CheckSucceeded = false

me.ErrorMessage = "Field InvoiceNumber is not matched"

end if

[JScript]

if( Field("InvoiceNumber ").IsMatched ) {

CheckSucceeded = true;

} else {

CheckSucceeded = false;

ErrorMessage = "Field InvoiceNumber is not matched";

}

复选标记检查

以下提供的规则代码检查是否已选择复选标记

[VBScript]

if me.Field("Page status").Value then

me.CheckSucceeded = true

else

me.CheckSucceeded = false

me.ErrorMessage = "Page status is not checked"

end if

[JScript]

if( Field("Page status").Value ) {

CheckSucceeded = true;

} else {

CheckSucceeded = false;

ErrorMessage = "Page status is not checked";

}

复选标记组检查

以下提供的规则代码迭代了组中的所有复选标记，如果未选择任何复选标记，则将选择第一个复选标记。此规则是针对复选标记组级别书写的。组中的所有复选标记均已添加至纳入规则中的字段列表。对于默认的复选标记（第一个），则已禁用只读标志。如果组中没有复选标记，则将启用规则错误标志。

此样本代码迭代了纳入规则中的所有字段。 因为未在代码中指定字段名称，所以，此代码可用于任何复选标记组。

[VBScript]

if me.Fields.Count = 0 then

me.CheckSucceeded = false

me.ErrorMessage = "No checkmarks in group"

else

dim isChosen, i

isChosen = false

for i = 0 to me.Fields.Count - 1

if me.Fields.Item( i ).Value then

isChosen = true

exit for

end if

next

if Not isChosen then

me.Fields.Item(0).Value = true

end if

me.CheckSucceeded = true

end if

[JScript]

if( Fields.Count == 0 ) {

CheckSucceeded = false;

ErrorMessage = "No checkmarks in group";

} else {

var isChosen = false;

var i;

for( i = 0; i < Fields.Count; i++ ) {

if( Fields.Item( i ).Value ) {

isChosen = true;

break;

}

}

if( !isChosen ) {

Fields.Item(0).Value = true;

}

CheckSucceeded = true;

}

字段可靠性检查
以下提供的规则代码检查字段中不确定字符的数量，并在不确定字符数量超过或等于三时清除字段。这是自动纠正脚本。

[VBScript]

dim susp, qty, strpos, i, SC, strposPrev

strposPrev = 0

qty = 0

SC = "1"

susp = me.SuspiciousSymbols

for i = 1 to len (susp)

strpos = InStr (i, susp, SC,1)

if strpos <> strposPrev and strpos <> 0 then

qty = qty + 1

strposPrev = strpos

end if

next

if qty >= 3 then

me.text = ""

end if

批处理文件完整性检查
检查在控制页面上指定的文档数量是否与批处理文件中库存及与实际处理的文档8数量相符。如果数量不匹配。则将返回错误。

[VBScript]

dim DQty

dim i

for i = 0 to me.Batch.Documents.Count - 1

if me.Batch.Documents.Item(i).TemplateName = "Inv" then

DQty = me.Batch.Documents.Item(i).IndexedItemValue("DocQty")

exit for

end if

next

dim AcQty

AcQty = me.Batch.Documents.Count

if acqty <> DQty then

me.CheckSucceeded = false

me.ErrorMessage = "Incorrect number of documents in the batch:" & " " & AcQty& ". " & "Expected number:" & " " & DQty & "!"

end if


使用脚本描述导出

对象模型

此模型用于导出脚本和导出处理程序脚本。

导出处理程序是一种在完成导出时运行的特殊脚本（前提是选择了导出后运行脚本 选项，该选项位于项目属性对话框的导出选项卡上，脚本的正文非空）。

导出必须视为一种可导出文档的方法，即引用“this”或“Me”指目前导出的对象[可导出文档]。

在导出处理程序中，指针 this 或 Me 指向[导出结果]类型的对象。

可在导出期间修改字段值。

批处理文件

属性：

名称 | 类型 | 访问 | 描述
BatchTypeName | 字符串 | 只读 | 批处理文件的类型名称。
Documents | [文档集合] | 只读 | 批处理文件所包括的文档。只提供文档的常规信息，不显示文档元素（字段、页面）的任何相关信息。但提供关键字段的相关信息。
RegistrationProperties | [注册参数集合] | 只读 | 批处理文件的注册参数。
RegistrationProperty (Name) | 字符串 | 只读 | 名称为 Name 的注册批处理文件的值。

可导出的文档

属性：

名称 | 类型 | 访问 | 描述
IsAssembled | 布尔 | 只读 | 显示文档是否已组装的标志
IsVerified | 布尔 | 只读 | 显示文档是否已校验的标志
IsExported | 布尔 | 只读 | 显示文档是否已导出的标志
TemplateName | 字符串 | 只读 | 文档定义名称
ProcessingErrors | 字符串 | 只读 | 处理错误消息
ProcessingWarnings | 字符串 | 只读 | 处理期间显示的提示和/或警告
TotalSymbolsCount | 整数 | 只读 | 总字符数（除了识别的字符，也包括由用户和规则添加的字符）
RecognizedSymbolsCount | 整数 | 只读 | 已识别字符数
UncertainSymbolsCount | 整数 | 只读 | 不确定识别字符的数量
Id | 字符串 | 只读 | 文档标识符
BatchName | 字符串 | 只读 | 批处理文件名称
Field(FieldName) | [文档单元] | 只读 | 名称为 FieldName 的单元。可能返回字段或节段。FieldName 是单元的名称及从节段开始的完整路径。 例如："Section 1\Group\Field 1" 重要事项！ 如果字段路径中的任何组件是多重组件，则必须提供该组件的索引。 例如，对于多重组，上述路径应类似如下： "Section 1\Group[index]\Field 1" 索引假定从 0 至计算 - 1 的值，其中计数是多重组件的实例数量。 如被有效名称调用，则将出现异常。
HasField (FieldName) | 布尔 | 只读 | 检查名称为 FieldName 的字段是否存在。
Children | [文档单元集合] | 只读 | 文档节段集合
Pages | [页面集合] | 只读 | 文档页面集合
RegistrationProperties | [注册参数集合] | 只读 | 批处理文件的注册参数。
Action | [操作结果] | 只读 | 包含有关导出操作结果的信息的特定对象。 程序在导出期间将信息写入此对象。 如有必要，此信息可供在完成导出时运行的处理程序使用。
IndexedItemValue (Name) | [字段] | 只读 | 名称为 Name 的索引字段
IsModuleAllowedByLicense (AuthorID, ModuleID) | 布尔 | 只读 | 检查是否可根据许可参数访问模块。参数：作者 ID，模块 ID（字符串）。

方法：

名称 | 参数 | 描述
SaveAs (filename, imageSaveOptions) | fileName – 文件的名称 imageSaveOptions – 图像保存参数（可选） | 将所有文档页面的图像保存至文件。

文档单元

文档单元可能是节段或字段。

属性：

名称 | 类型 | 访问 | 描述
Value | 变量 | 只读 | 键入的节点值。 对于数字字段，返回浮动点数。 对于“日期/时间”字段，返回日期值 (VT_DATE)。 对于“货币”字段，返回金额值 (VT_CY)。 对于复选标记，返回布尔值。 对于复选标记组，返回选定复选标记字段的列表或返回字符中（如未选择复选标记字段）。 对于图片，返回对象[图片]。 如果节点没有值，返回空值。尝试读取节点值之前，始终检查其是否为空（参见脚本样本）。 尝试读取空值将引起错误。 例如，对于节段、表格和组字段，值为空。 如果字段内容（已识别或用户键入的文本）与字段类型不匹配，值可能为空。
Text | 字符串 | 只读 | 节点的文本值。 对于复选标记，返回“是”/“否” 对于复选标记组，返回选定复选标记字段的列表或返回字符中（如未选择复选标记字段）。 对于无值的任何节点（例如，图片，组、节段等），返回空字符串。
Name | 字符串 | 只读 | 单元名称
IsExportable | 布尔 | 只读 | 显示是否必须导出单元
SuspiciousSymbols | 字符串 | 只读 | 由 1's 和 0's 组成的字符串，其中 1's 与不确定字符相对应。 对于复选标记，将返回仅包含一个符号的字符串。 对于没有值的单元，将返回空字符串。
Children | [文档单元集合] | 只读 | [附属单元集合] 如果没有附属单元，则为 0。 例如，组、复选标记组和表格行有附属单元。
Items | [文档单元集合] | 只读 | 对于多重单元，则指其实例集合。对于非多重单元，则为 0。
Regions | [区域集合] | 只读 | 字段区域集合
Field(FieldName) | [文档节点] | 只读 | 名称为 FieldName 的节点。可能返回字段或节段。 FieldName 是具备相对路径的节点的名称（从当前节点开始）。 重要事项！ 如果路径组件是多重的，请指定该组件的索引。
HasField (Name) | 布尔 | 只读 | 显示文档中是否存在名称为 Name 的字段的标志。
IsIndexed | 布尔 | 只读 | 显示节点是否为索引字段的标志。

图片

这是可保存至磁盘中文件的图片。

方法：

名称 | 参数 | 描述
SaveAs (filename, imageSaveOptions) | fileName – 文件的名称 imageSaveOptions – 图像保存参数（可选） | 将字段的图像保存至文件。

[文档单元集合]

文档单元集合是字段或节段的集合。

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中单元数量
Item(index) | [单元] | 只读 | 单元实例。索引可能拥有从 0 到计数 -1 的值

页面集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中页面数量
Item(index) | [页面] | 只读 | 带索引的页面。索引可能拥有从 0 到计数 -1 的值

页面

属性：

名称 | 类型 | 访问 | 描述
TemplateName | 字符串 | 只读 | 节段名称
ImageSourceType | 字符串 | 只读 | 图像来源的类型。可能假定值文件或扫描仪
ImageSource | 字符串 | 只读 | 图像来源 对于文件，这是带有文件完整路径的文件的名称。 对于扫描仪，这是扫描仪的名称。
ImageSourcePageNumber | 整数 | 只读 | 来源文件中的页面数量。
ExcludedFromDocumentImage | 布尔 | 读/写 | 从导出中排除页面的标志。默认值为 false。

方法：

名称 | 参数 | 描述
SaveAs (filename, imageSaveOptions) | fileName – 文件名 imageSaveOptions – 图像保存选项（可选） | 保存页面图像。

区域集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中区域数量
Item(index) | [区域] | 只读 | 带索引的文档。索引假定从 0 到计数 -1 的值

区域

属性：

名称 | 类型 | 访问 | 描述
PageIndex | 整数 | 只读 | 指定区域所属页面的索引。
Rects | [矩形集合] | 只读 | 组成区域的矩形的集合。 对于矩形区域，集合只包含一个矩形。
SurroundingRect | [矩形] | 只读 | 围绕区域的矩形。
Picture | [图片] | 只读 | 指定区域的图片。
IsMatched | 布尔 | 只读 | 显示字段是否匹配成功。

矩形集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中矩形数量
Item(index) | [矩形] | 只读 | 带索引的矩形。索引假定从 0 到计数 -1 的值

矩形

属性：

名称 | 类型 | 访问 | 描述
Left | 整数 | 只读 | 页面上矩形的左坐标。
Top | 整数 | 只读 | 页面上矩形的顶部坐标。
Right | 整数 | 只读 | 页面上矩形的右坐标。
Bottom | 整数 | 只读 | 页面上矩形的底部坐标。

ExportTools

全局对象，用于获取对象[图像保存选项]

方法：

名称 | 参数 | 描述
NewImageSavingOptions |  | 创建对象[图像保存选项]

图像保存选项

用于保存页面图像的选项。

属性：

名称 | 类型 | 访问 | 描述
Format | 字符串 | 读/写 | 图像格式 可获取其中一个值： "tif"、"jpg"、"bmp"、"jpg2000"、"pcx"、"png"、"pdf"、"pdf-s"、"pdf-a"、"pdf-a-s"、"pdf-s-a"。 不区分大小写。
ColorType | 字符串 | 读/写 | 所用颜色方案的类型。可获取其中一个值： "FullColor"、"GrayScale"、"BlackAndWhite"。 不区分大小写。
Resolution | 整数 | 读/写 | 图像分辨率 (dpi)
Quality | 介于 1 至 100 范围的整数 | 读/写 | JPEG 压缩的质量（仅适用于使用了 JPEG 压缩的格式）。
ShouldOverwrite | 布尔 | 读/写 | 此标志表明在保存时是否覆盖现有文件。 如将此标志设置为假，则调用 SaveAs method 将导致出现错误（如果存在同样名称的文件）。

操作结果

包含有关导出操作结果的信息

属性：

名称 | 类型 | 访问 | 描述
Succeeded | 布尔 | 读/写 | 如果导出成功，则包含 true，否则将包含 fasle。
ErrorMessage | 字符串 | 读/写 | 有关在导出期间出现的错误的错误消息。
Result 字符串 读/写 结果的正式描述。

对于导出至文件，包含文件的名称及其完整路径。
对于导出至数据库，包含主要导出表格的名称。
对于导出至 SharePoint，包含已导出文档的 URL。

Name | 字符串 | 只读 | 导出配置文件名称。
Type 整数 只读 导出设置的类型（用于导出后脚本）。可能的值包括：
  • ET_File=1，导出至文件
  • ET_DataBase=2，导出至数据库
  • ET_Script，基于脚本的导出
  • ET_SharePoint，导出至 SharePoint；
  • ET_Unknown，未指定类型（如果存在与特定导出配置文件无关的错误）。

导出结果

属性：

名称 | 类型 | 访问 | 描述
Documents | [已导出文档的集合] | 只读 | 已导出至一个导出会话的文档的集合。对于文档，有关文档的一般信息已足够，无需有关其元素（字段和页面）的数据。但是，也可提供有关关键字段的数据。

已导出文档的集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中文档数量
Item(index) | [导出的文档] | 只读 | 带索引的文档。索引假定从 0 到计数 -1 的值

注册参数集合

属性：

名称 | 类型 | 访问 | 描述
Count | 整数 | 只读 | 集合中的参数个数
Item(index) | [注册参数] | 只读 | 带索引 index 的参数 index 采用从 0 到 Count -1 的值

注册参数

属性：

名称 | 类型 | 访问 | 描述
Name | 字符串 | 只读 | 注册参数的名称
Value | 字符串 | 只读 | 注册参数的值

描述了导出的样本脚本


描述了导出的样本脚本

导出期间获取字段值
此样本代码显示如何在导出期间获取字段值。可使用此值为要将图像或日期导出到的文件命名。如果文档中没有该等字段，则将出现错误。

要导出的文档的结构：

Section 1

Field1

…

Group1

Field2

…

…

FieldN

Section 2

Field1

…

FieldK

[VBScript]

Dim field1Value, field2Value

' Gets the value of Field1 in Section 1

if Not IsNull( me.Field( "Section 1\Field1" ).Value ) then

field1Value = me.Field( "Section 1\Field1" ).Value

end if

' Gets the value of Field2 in Group1 in Section 1

if Not IsNull( me.FIELD( "Section 1\Group1\Field2" ).Value ) then

field2Value = me.Field( "Section 1\Group1\Field2" ).Value

end if

' Gets the value of Field1 in Section 1 if the section has multiple instances

if Not me.Field( "Section 1" ).Items Is Nothing then

dim curPage

for each curPage in me.Field( "Section 1" ).Items

if Not curPage.Children Is Nothing then

dim curField

for each curField in curPage.Children

if curField.Name = "Field1" And Not IsNull( curField.Value ) then

field1Value = curField.Value

exit for

end if

next

end if

next

end if

[JScript]

// Gets the value of Field1 in Section 1

if( Field("Section 1\\Field1").Value != null ) {

var field1Value = Field("Section 1\\Field1").Value;

}

// Gets the value of Field2 in Group1 in Section 1

if( Field("Section 1\\Group1\\Field2").Value != null ) {

var field2Value = Field("Section 1\\Group1\\Field2").Value;

}

// Gets the value of Field1 in Section 1 if the section has multiple instances

if( Field( "Section 1" ).Items != null ) {

var i, j;

for( i = 0; i < Field( "Section 1" ).Items.Count; i++ ) {

var curPage = Field( "Section 1" ).Items.Item( i );

if( curPage.Children != null ) {

for( j = 0; j < curPage.Children.Count; j++ ) {

var curField = curPage.Children.Item( j );

if( curField.Name == "Field1" && curField.Value != null ) {

var field1Value = curField.Value;

break;

}

}

}

}

}

导出页面图像

此示例中代码显示了如何使用必要的文件格式、颜色方案和分辨率导出所有文档页面的图像。图像按页面保存，即独立文件中的每个页面。

此标例中的文件分别命名为“page1.tif”、“page2.tif”等。如有必要，您可更改文件命名机制。例如，您可根据字段值创建文件名。

[VBScript]

dim fso, folderName

set fso = CreateObject("Scripting.FileSystemObject")

folderName = "d:\ExportImages"

if Not fso.FolderExists( folderName ) then

fso.CreateFolder folderName

end if

dim imageOptions

set imageOptions = ExportTools.NewImageSavingOptions

imageOptions.Format = "tif"

imageOptions.ColorType = "BlackAndWhite"

imageOptions.Resolution = 600

dim i

for i = 0 to me.Pages.Count - 1

dim fileName

    ' Sets the desired name and extension for the file depending on the selected format

fileName = fso.BuildPath( folderName, "page" & (i+1) & ".tif" )

me.Pages.Item(i).SaveAs fileName, imageOptions

next

[JScript]

var fso = new ActiveXObject("Scripting.FileSystemObject");

var folderName = "d:\\ExportImages";

if( !fso.FolderExists( folderName ) ) {

fso.CreateFolder( folderName );

}

var imageOptions = ExportTools.NewImageSavingOptions();

imageOptions.Format = "tif";

imageOptions.ColorType = "BlackAndWhite";

imageOptions.Resolution = 600;

var i;

for( i = 0; i < Pages.Count; i++ ) {

    // Sets the desired name and extension for the file depending on the selected format

var fileName = fso.BuildPath( folderName, "page" + (i+1) + ".tif" );

Pages.Item(i).SaveAs( fileName, imageOptions );

}

导出表格

此示例显示了如何将表格导出至 *.txt 文件。

[VBScript]

dim fso, txtFile, fileName

set fso = CreateObject("Scripting.FileSystemObject")

fileName = "d:\TestExportTable.txt"

set txtFile = fso.CreateTextFile( fileName, true )

txtFile.WriteLine "Table"

dim table, row, cell, rowNumber

set table = me.Field("Page 1\Table")

rowNumber = 1

for each row in table.Items

txtFile.WriteLine "RowNumber = " & rowNumber

for each cell in row.Children

txtFile.Write cell.Value & " "

next

txtFile.WriteBlankLines 1

rowNumber = rowNumber + 1

next

txtFile.Close

set txtFile = nothing

set fso = nothing

[JScript]

var fso, txtFile, fileName;

fso = new ActiveXObject("Scripting.FileSystemObject");

fileName = "d:\\TestExportTable1.txt";

txtFile = fso.CreateTextFile( fileName, true );

txtFile.WriteLine( "Table" );

var table, i, j;

table = Field("Page 1\\Table");

var rows = table.Items;

for( i = 0; i < rows.Count; i++ ) {

txtFile.WriteLine( "RowNumber = " + ( i+1 ) );

var cells = rows.Item(i).Children;

for( j = 0; j < cells.Count; j++ ) {

txtFile.Write( cells.Item(j).Value + " " );

}

txtFile.WriteBlankLines(1);

}

txtFile.Close();

导出任何嵌套级别的文档

此示例显示了如何使用定制功能从全局导出模块导出任何嵌套级别文档的字段。如果您需要导出可变嵌套的文档字段，则建议使用外部 COM 组件（参见下一个示例）

内核导出代码

[VBScript]

Export.ExportDocument me, ExportTools

[JScript]

Export.ExportDocument( this, ExportTools );

全局导出模块功能的代码

[VBScript]

' The procedure carries out the export: creates an export folder and

' saves in it page image files, the text file with the document fields,

' and information about the document

Sub ExportDocument(ByRef docObj, ByRef exportTools)

    Dim folderName

    Dim txtFile, fileName

    Dim fso

    On Error Resume Next

    set fso = CreateObject("Scripting.FileSystemObject")

    ' creating the export folder

    folderName = CreateExportFolder(docObj.TemplateName, fso)

    if Err.Number <> 0 then

        docObj.Action.Succeeded = false

        docObj.Action.ErrorMessage = "Error during create export folder: " + Err.Description

        Err.Clear

        Exit Sub

    End if

    ' exporting images

    ExportImages docObj, exportTools, folderName, fso

    if Err.Number <> 0 then

        docObj.Action.Succeeded = false

        docObj.Action.ErrorMessage = "Error during export images: " + Err.Description

        Err.Clear

        Exit Sub

    End if

    ' creating the text file

    fileName = fso.BuildPath(folderName, "doc.txt")

    Set txtFile = fso.CreateTextFile(fileName, True)

    ' exporting info about the document

    ExportDocInfo docObj, txtFile

    ' exporting fields

    txtFile.WriteLine "Fields:"

    ExportFields docObj.Children, txtFile, ""

    txtFile.Close

    if Err.Number <> 0 then

        docObj.Action.Succeeded = false

        docObj.Action.ErrorMessage = "Error during export data: " + Err.Description

        Err.Clear

        Exit Sub

    End if

    Set txtFile = Nothing

    Set fso = Nothing

End Sub

' Image export function.

Function ExportImages( ByRef docObj, ByRef exportTools, ByVal exportFolder, ByRef fso )

    Dim pages, page, imageOptions

    Dim fileName, pageNum

    ' specifying export settings

    Set imageOptions = exportTools.NewImageSavingOptions

    imageOptions.Format = "bmp"

    imageOptions.ColorType = "FullColor"

    imageOptions.Resolution = 100

    ' ' page-by-page export

    Set pages = docObj.Pages

    pageNum = 1

    For Each page In pages

        fileName = fso.BuildPath(exportFolder, "page" & pageNum & ".bmp")

        page.SaveAs fileName, imageOptions

        pageNum = pageNum + 1

    Next

End Function

' The procedure that exports info about the document

Sub ExportDocInfo(ByRef docObj, ByRef txtFile)

    txtFile.WriteLine "Doc info:"

    txtFile.WriteLine ("DocumentId " & docObj.Id)

    txtFile.WriteLine ("IsAssembled " & docObj.IsAssembled)

    txtFile.WriteLine ("IsVerified " & docObj.IsVerified)

    txtFile.WriteLine ("IsExported " & docObj.IsExported)

    txtFile.WriteLine ("ProcessingErrors " & docObj.ProcessingErrors)

    txtFile.WriteLine ("ProcessingWarnings " & docObj.ProcessingWarnings)

    txtFile.WriteLine ("TotalSymbolsCount " & docObj.TotalSymbolsCount)

    txtFile.WriteLine ("RecognizedSymbolsCount " & docObj.RecognizedSymbolsCount)

    txtFile.WriteLine ("UncertainSymbolsCount " & docObj.UncertainSymbolsCount)

    txtFile.WriteLine

End Sub

' The procedure that exports fields from the fields collection

Sub ExportFields(ByRef fields, ByRef txtFile, ByVal indent)

    Dim curField

    For Each curField In fields

        ExportField curField, txtFile, indent

    Next

End Sub

' Checks if the value of the field is null

' If the field value is invalid, any attempt to access this field (even

' to check if it is null) may cause an exception

Function IsNullFieldValue( ByRef field )

    on error resume next

    IsNullFieldValue = IsNull( field.Value )

    if Err.Number <> 0 then

        IsNullFieldValue = True

        Err.Clear

    End if

End Function

' Field export procedure

Sub ExportField(ByRef field, ByRef txtFile, ByVal indent)

    ' saving field name

    txtFile.Write (indent & field.Name)

    ' saving field value if it can be accessed

    If IsNullFieldValue(field) Then

        txtFile.WriteLine

    Else

        txtFile.WriteLine ("    " & field.Text)

    End If

    If Not field.Children Is Nothing Then

        ' exporting child fields

        ExportFields field.Children, txtFile, indent & "    "

    ElseIf Not field.Items Is Nothing Then

        ' exporting field instances

        ExportFields field.Items, txtFile, indent & "    "

    End If

End Sub

' The function creates an export folder and returns a full path to this folder

Function CreateExportFolder(ByVal templateName, ByRef fso)

    Dim docFolder, folderName

    ' main folder

    exportFolder = "d:\ScriptExport"

    If fso.FolderExists(exportFolder) = False Then

        fso.CreateFolder (exportFolder)

    End If

    ' the folder of the specified Document Definition

    docFolder = fso.BuildPath(exportFolder, templateName)

    If fso.FolderExists(docFolder) = False Then

        fso.CreateFolder (docFolder)

    End If

    ' the folder of the exported document

    Dim i

    i = 1

    folderName = fso.BuildPath(docFolder, i)

    While fso.FolderExists(folderName)

        i = i + 1

        folderName = fso.BuildPath(docFolder, i)

    Wend

    fso.CreateFolder (folderName)

    CreateExportFolder = folderName

End Function

[JScript]

// The function carries out the export: creates an export folder and

// saves in it page image files, the text file with the document fields,

// and information about the document

function ExportDocument(docObj, exportImageTools)

{

    var folderName

    var txtFile, fileName

    var fso

    fso = new ActiveXObject("Scripting.FileSystemObject");

    // creating export folders

    try {

        folderName = CreateExportFolder(docObj.TemplateName, fso);

    } catch( e ) {

        docObj.Action.Succeeded = false;

        docObj.Action.ErrorMessage = "Error during create export folder: " + e.description;

        return;

    }

    // exporting images

    try {

        ExportImages(docObj, exportImageTools, folderName, fso);

    } catch( e ) {

        docObj.Action.Succeeded = false;

        docObj.Action.ErrorMessage = "Error during export images: " + e.description;

        return;

    }

    // creating the text file

    fileName = fso.BuildPath(folderName, "doc.txt");

    txtFile = fso.CreateTextFile(fileName, true);

    // exporting info about the document

    ExportDocInfo( docObj, txtFile );

    // exporting fields

    txtFile.WriteLine( "Fields:" );

    try {

        ExportFields( docObj.Children, txtFile, "" );

    } catch( e ) {

        docObj.Action.Succeeded = false;

        docObj.Action.ErrorMessage = "Error during export data: " + e.description;

        txtFile.Close();

        return;

    }

    txtFile.Close();

    txtFile = 0;

    fso = 0;

}

// Image export function.

function ExportImages( docObj, exportImageTools, exportFolder, fso )

{

    // specifying export settings

    var imageOptions = exportImageTools.NewImageSavingOptions();

    imageOptions.Format = "bmp";

    imageOptions.ColorType = "FullColor";

    imageOptions.Resolution = 100;

    // page-by-page export

    var pages = docObj.Pages;

    var i

    for( i = 0; i < pages.Count; i++ ) {

        var fileName = fso.BuildPath( exportFolder, "page" + (i+1) + ".bmp" );

        pages.Item(i).SaveAs( fileName, imageOptions );

    }

}

// The procedure that exports info about the document

function ExportDocInfo(docObj, txtFile)

{

    txtFile.WriteLine( "Doc info:" );

    txtFile.WriteLine("IsAssembled " + docObj.IsAssembled);

    txtFile.WriteLine("IsVerified " + docObj.IsVerified);

    txtFile.WriteLine("IsExported " + docObj.IsExported);

    txtFile.WriteLine("ProcessingErrors " + docObj.ProcessingErrors);

    txtFile.WriteLine("ProcessingWarnings " + docObj.ProcessingWarnings);

    txtFile.WriteLine("TotalSymbolsCount " + docObj.TotalSymbolsCount);

    txtFile.WriteLine("RecognizedSymbolsCount " + docObj.RecognizedSymbolsCount);

    txtFile.WriteLine("UncertainSymbolsCount " + docObj.UncertainSymbolsCount);

    txtFile.WriteLine();

}

// The procedure that exports fields from the fields collection

function ExportFields(fields, txtFile, indent)

{

    var i

    for( i = 0; i < fields.Count; i++ ) {

        ExportField( fields.Item(i), txtFile, indent );

    }

}

// Checks if the field value is null

// If the field value is invalid, any attempt to access this field (even

// to check if it is null) may cause an exception

function IsNullFieldValue( field )

{

    try {

        return ( field.Value == null );

    } catch( e ) {

        return true;

    }

}

// Field export procedure

function ExportField(field, txtFile, indent)

{

    // saving field name

    txtFile.Write(indent + field.Name);

    // saving field value, if it can be accessed

    if( IsNullFieldValue( field ) ) {

        txtFile.WriteLine();

    } else {

        txtFile.WriteLine("    " + field.Text);

    }

    if( field.Children != null ) {

        // exporting child fields

        ExportFields( field.Children, txtFile, indent + "    " );

    } else if( field.Items != null ) {

        // exporting field instances

        ExportFields( field.Items, txtFile, indent + "    " );

    }

}

// The function creates an export folder and returns a full path to this folder

function CreateExportFolder(templateName, fso)

{

    var docFolder, folderName

    // main folder

    var exportFolder = "d:\\ScriptExport";

    if( !fso.FolderExists(exportFolder) ) {

        fso.CreateFolder (exportFolder);

    }

    // the folder of the specified Document Definition

    docFolder = fso.BuildPath(exportFolder, templateName);

    if( !fso.FolderExists(docFolder) ) {

        fso.CreateFolder(docFolder);

    }

    // the folder of the exported document

    var i = 1;

    folderName = fso.BuildPath(docFolder, i);

    while( fso.FolderExists(folderName) ) {

        i++;

        folderName = fso.BuildPath(docFolder, i);

    }

    fso.CreateFolder(folderName);

    return folderName;

}

使用外部 COM 组件

[VBScript]

dim autoExport

set autoExport = CreateObject( "AutomationExport.Exporter" )

autoExport.Export me, ExportTools

[JScript]

var autoExport = new ActiveXObject("AutomationExport.Exporter");

autoExport.Export( this, ExportTools );

VisualBasic 中 ActiveX 组件的代码

以下提供了源自 AutomationExport 项目的导出程序类代码，用于上述脚本。

Option Explicit

Dim mFso As New Scripting.FileSystemObject

' The procedure carries out document export: creates an export folder and

' saves in it page image files, the text file with document fields,

' and information about the document

Public Sub Export(ByRef docObj As Object, ByRef exportTools As Object)

On Error GoTo err_h

    Dim folderName As String

    Dim txtFile As TextStream, fileName As String

    Dim imageExportResult As String, errMessage As String

    ' creating export folder

    folderName = createExportFolder(docObj.templateName)

    If folderName = "" Then

        docObj.Action.Succeeded = False

        docObj.Action.ErrorMessage = "Cannot create export folder"

        Exit Sub

    End If

    ' exporting images

    imageExportResult = exportImages(docObj, exportTools, folderName)

    ' creating the text file

    fileName = mFso.BuildPath(folderName, "doc.txt")

    Set txtFile = mFso.CreateTextFile(fileName, True)

    ' saving info about image export problems

    If imageExportResult <> "" Then

        txtFile.WriteLine imageExportResult

        errMessage = errMessage & imageExportResult

    End If

    ' exporting info about document

    exportDocInfo docObj, txtFile

    ' exporting fields

    txtFile.WriteLine "Fields:"

    If Not exportFields(docObj.Children, txtFile, "") Then

       errMessage = errMessage & " Error during export data"

    End If

    txtFile.Close

    ' if errors occur during export, reset the

    ' export success flag to False

    If errMessage <> "" Then

        docObj.Action.Succeeded = False

        docObj.Action.ErrorMessage = errMessage

    End If

    Set txtFile = Nothing

    Set mFso = Nothing

Exit Sub

err_h:

    docObj.Action.Succeeded = False

    docObj.Action.ErrorMessage = Err.Description

    txtFile.Close

    Set mFso = Nothing

End Sub

' Image export function. If an error occurs when exporting images,

' it returns a message about the error, otherwise it returns an empty string

Private Function exportImages(ByRef docObj As Object, ByRef exportTools As Object, _

    ByVal exportFolder As String) As String

On Error GoTo err_h

    Dim pages As Object, page As Object, imageOptions As Object

    Dim fileName As String, pageNum As Long

    exportImages = ""

    ' specifying export settings

    Set imageOptions = exportTools.NewImageSavingOptions

    imageOptions.Format = "png"

    imageOptions.ColorType = "GrayScale"

    imageOptions.Resolution = 300

    ' page-by-page export

    Set pages = docObj.pages

    pageNum = 1

    For Each page In pages

        fileName = mFso.BuildPath(exportFolder, page.templateName + "_page" & pageNum & "." & imageOptions.Format)

        page.SaveAs fileName, imageOptions

        pageNum = pageNum + 1

    Next page

Exit Function

err_h:

    exportImages = Err.Description

End Function

' The procedure that exports info about the document

Private Sub exportDocInfo(ByRef docObj As Object, ByRef txtFile As TextStream)

On Error GoTo err_h

    txtFile.WriteLine "Doc info:"

    txtFile.WriteLine ("DocumentId " & docObj.Id)

    txtFile.WriteLine ("IsAssembled " & docObj.IsAssembled)

    txtFile.WriteLine ("IsVerified " & docObj.IsVerified)

    txtFile.WriteLine ("IsExported " & docObj.IsExported)

    txtFile.WriteLine ("ProcessingErrors " & docObj.ProcessingErrors)

    txtFile.WriteLine ("ProcessingWarnings " & docObj.ProcessingWarnings)

    txtFile.WriteLine ("TotalSymbolsCount " & docObj.TotalSymbolsCount)

    txtFile.WriteLine ("RecognizedSymbolsCount " & docObj.RecognizedSymbolsCount)

    txtFile.WriteLine ("UncertainSymbolsCount " & docObj.UncertainSymbolsCount)

    txtFile.WriteLine

Exit Sub

err_h:

    txtFile.WriteLine Err.Description

End Sub

' The procedure that exports fields from the fields collection

Private Function exportFields(ByRef fields As Object, ByRef txtFile As TextStream, ByVal indent As String) As Boolean

On Error GoTo err_h

    Dim curField As Object

    exportFields = True

    For Each curField In fields

        If Not exportField(curField, txtFile, indent) Then

            exportFields = False

        End If

    Next curField

Exit Function

err_h:

    txtFile.WriteLine Err.Description

    exportFields = False

End Function

' Checks if the field value is null

' If the value is invalid, any attempt to access this field (even

' to check if it is null) may cause an exception

Function IsNullFieldValue(ByRef field As Object) As Boolean

On Error GoTo err_h

    IsNullFieldValue = IsNull(field.Value)

Exit Function

err_h:

    IsNullFieldValue = True

End Function

' Field export function

Private Function exportField(ByRef field As Object, ByRef txtFile As TextStream, _

    ByVal indent As String) As Boolean

On Error GoTo err_h

    Dim result As Boolean

    result = True

    ' saving field name

    txtFile.Write (indent & field.Name)

    ' saving field value if it can be accessed

    If Not IsNullFieldValue(field) Then

        txtFile.WriteLine ("    " & field.Value)

    Else

        txtFile.WriteLine

    End If

    If Not field.Children Is Nothing Then

        ' exporting child fields

        result = result And exportFields(field.Children, txtFile, indent & "    ")

    ElseIf Not field.Items Is Nothing Then

        ' exporting field instances

        result = result And exportFields(field.Items, txtFile, indent & "    ")

    End If

    exportField = result

Exit Function

err_h:

    txtFile.WriteLine Err.Description

    exportField = False

End Function

' The function creates an export folder and returns a full path to this folder

Private Function createExportFolder(ByVal templateName As String) As String

On Error GoTo err_h

    Dim docFolder As String, folderName As String

    ' main folder

    Const exportFolder = "d:\AutomationExport"

    If mFso.FolderExists(exportFolder) = False Then

        mFso.CreateFolder (exportFolder)

    End If

    ' the folder of the specified Document Definition

    docFolder = mFso.BuildPath(exportFolder, templateName)

    If mFso.FolderExists(docFolder) = False Then

        mFso.CreateFolder (docFolder)

    End If

    ' the folder of the exported document

    Dim i As Long

    i = 1

    folderName = mFso.BuildPath(docFolder, i)

    While mFso.FolderExists(folderName)

        i = i + 1

        folderName = mFso.BuildPath(docFolder, i)

    Wend

    mFso.CreateFolder (folderName)

    createExportFolder = folderName

Exit Function

err_h:

    createExportFolder = ""

End Function

使用在 .Net( C# ) 中编写的外部组件

要使用在 .Net 中编写的外部组件，请执行以下操作：

  1. 为类型 ClassLibrary 创建项目
  2. 将 Controller.dll 添加至项目引用 - 引用列表中将出现 FlexiCaptureScriptingObjects，脚本对象的所有接口均将可用于项目中。
  3. 定义 disp 接口及实现此接口的类，以及 ProgId（这样，就可如同使用源自于脚本代码的 ActiveX 一样使用 .Net 组件）。
  4. 构建项目后，注册所生成的类型库（通过在项目属性中启用相应的选项即可自动完成此操作）。
  5. 从导出代码中，用常规方式调用组件的方法：

[VBScript]

dim autoExport

set autoExport = CreateObject( "ExportLibrary1.Export" )

autoExport.ExportDocument me, ExportTools

[JScript]

var autoExport = new ActiveXObject("ExportLibrary1.Export");

autoExport.ExportDocument( this, ExportTools );

以下是该等组件的代码：

using System;

using System.Runtime.InteropServices;

using System.IO;

using FlexiCaptureScriptingObjects;

namespace ExportLibrary1

{

// The interface of the export component which can be accessed from the script

// When creating a new component, generate a new GUID

[Guid("32B10C3B-EEA3-4194-B0A0-E358C310225A")]

[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]

public interface _cExport

{

[DispId(1)]

void ExportDocument(ref IExportDocument DocRef, ref IExportTools Tools);

}

// The class that implements export component functionality

// When creating a new component, generate a new GUID

// and set your ProgId

[Guid("3BA19BD7-C6DC-4f63-BC08-0D95254DADC3")]

[ClassInterface(ClassInterfaceType.None)]

[ProgId("ExportLibrary1.Export")]

[ComVisible(true)]

public class Export : _cExport

{

public Export()

{

}

// The function carries out document export: creates an export folder and

// saves in it page image files,

// the text file with document fields, and information about the document

public void ExportDocument( ref IExportDocument docRef, ref IExportTools exportTools )

{

try

{

string exportFolder = createExportFolder( docRef.TemplateName );

exportImages( docRef, exportTools, exportFolder );

// creating the text file

string fileName = exportFolder + "//" + "doc.txt";

StreamWriter sw = File.CreateText( fileName );

// exporting info about document

exportDocInfo( docRef, sw );

// exporting fields

sw.WriteLine( "Fields:" );

exportFields( docRef.Children, sw, "" );

sw.Close();

}

catch( Exception e )

{

docRef.Action.Succeeded = false;

docRef.Action.ErrorMessage = e.ToString();

}

}

// The function creates an export folder and returns a full path to this folder

private string createExportFolder( string templateName )

{

string docFolder, folderName;

// main folder

string exportFolder = "d:\\DotNetExport";

if( !Directory.Exists(exportFolder) )

{

Directory.CreateDirectory(exportFolder);

}

// the folder of the specified Document Definition

docFolder = exportFolder + "\\" + templateName;

if( !Directory.Exists(docFolder) )

{

Directory.CreateDirectory( docFolder );

}

// the folder of the exported document

int i = 1;

folderName = docFolder + "\\" + i;

while( Directory.Exists(folderName) )

{

i++;

folderName = docFolder + "\\" + i;

}

Directory.CreateDirectory(folderName);

return folderName;

}

// Image export function.

private void exportImages( IExportDocument docRef, IExportTools exportTools, string exportFolder )

{

string baseFileName = exportFolder + "\\page_";

IExportImageSavingOptions imageOptions = exportTools.NewImageSavingOptions(); ;

imageOptions.Format = "bmp";

imageOptions.ColorType = "FullColor";

imageOptions.Resolution = 100;

int i = 1;

foreach( IExportPage curPage in docRef.Pages )

{

string fileName = baseFileName + i + ".bmp";

curPage.SaveAs( fileName, imageOptions );

i++;

}

}

// Exporting info about document

private void exportDocInfo( IExportDocument docRef, StreamWriter sw )

{

sw.WriteLine( "Doc info:" );

sw.WriteLine("DocumentId " + docRef.Id );

sw.WriteLine("IsAssembled " + docRef.IsAssembled);

sw.WriteLine("IsVerified " + docRef.IsVerified);

sw.WriteLine("IsExported " + docRef.IsExported);

sw.WriteLine("ProcessingErrors " + docRef.ProcessingErrors);

sw.WriteLine("ProcessingWarnings " + docRef.ProcessingWarnings);

sw.WriteLine("TotalSymbolsCount " + docRef.TotalSymbolsCount);

sw.WriteLine("RecognizedSymbolsCount " + docRef.RecognizedSymbolsCount);

sw.WriteLine("UncertainSymbolsCount " + docRef.UncertainSymbolsCount);

sw.WriteLine();

}

// Exporting field collection

private void exportFields( IExportFields fields, StreamWriter sw, string indent )

{

foreach( IExportField curField in fields )

{

exportField( curField, sw, indent );

}

}

// Checks if the field value is null

// If the field value is invalid, any attempt to access this field (even

// to check if it is null) may cause an exception

private bool IsNullFieldValue( IExportField field )

{

try

{

return ( field.Value == null );

}

catch( Exception e )

{

return true;

}

}

// Exporting the specified field

private void exportField( IExportField field, StreamWriter sw, string indent )

{

// saving the field name

sw.Write( indent + field.Name );

// saving the field value it can be accessed

if( IsNullFieldValue( field ) )

{

sw.WriteLine();

}

else

{

sw.WriteLine( " " + field.Text );

}

if( field.Children != null )

{

// exporting child fields

exportFields( field.Children, sw, indent + " " );

}

else if( field.Items != null )

{

// exporting field instances

exportFields( field.Items, sw, indent + " " );

}

}

}

}
导出处理程序
此样本代码演示了一种简单的导出处理程序，该程序保存有关已导出文档的信息，并将结果导出至文本文件。此实例使用了两种文本文件：一个包含成功导出文档的列表，另一个包含在导出期间返回错误的文档的列表。

[VBScript]

dim curDoc

dim fso, fileErrorName, txtErrorFile, fileSucceedName, txtSucceedFile

set fso = CreateObject("Scripting.FileSystemObject")

' creating the file with failed documents

fileErrorName = "d:\ExportResults\ErrorsDocuments.txt"

set txtErrorFile = fso.CreateTextFile( fileErrorName, true )

' creating the file with successfully exported documents

fileSucceedName = "d:\ExportResults\SucceedDocuments.txt"

set txtSucceedFile = fso.CreateTextFile( fileSucceedName, true )

Dim docInfo

' iterating the collection of exported documents

for each curDoc in me.Documents

    docInfo = "DocumentId:" & curDoc.Id

    if curDoc.Action.Succeeded then

        docInfo = docInfo & ". Exported successfully.  Result:" & curDoc.Action.Result

        txtSucceedFile.WriteLine docInfo

    else

        docInfo = docInfo & ". Export error: " & curDoc.Action.ErrorMessage & "  Result:" & curDoc.Action.Result

        txtErrorFile.WriteLine docInfo

    end if

next

txtErrorFile.Close

txtSucceedFile.Close

[JScript]

var fso = new ActiveXObject("Scripting.FileSystemObject");

// creating the files with failed documents

var fileErrorName = "d:\\ExportResults\\ErrorsDocuments.txt";

var txtErrorFile = fso.CreateTextFile( fileErrorName, true );

// creating the file with successfully exported documents

var fileSucceedName = "d:\\ExportResults\\SucceedDocuments.txt"

var txtSucceedFile = fso.CreateTextFile( fileSucceedName, true );

var i

// iterating the collection of exported documents

for( i = 0; i < Documents.Count; i++ ) {

    var curDoc = Documents.Item( i );

    var docInfo = "DocumentId: " + curDoc.Id;

   if( curDoc.Action.Succeeded ) {

        docInfo = docInfo + ". Exported successfully.  Result:" + curDoc.Action.Result;

        txtSucceedFile.WriteLine( docInfo );

    } else {

        docInfo = docInfo + ". Export error: " + curDoc.Action.ErrorMessage + "  Result:" + curDoc.Action.Result;

        txtErrorFile.WriteLine( docInfo );

    }

}

txtErrorFile.Close();

txtSucceedFile.Close();


从 FormReader 6.5 规则迁移并导出至 FlexiCapture 9.0 脚本

从 FormReader 规则迁移至 FlexiCapture 脚本规则

假设规则

函数和方法的变更：

  1. 错误（字段，消息）。使用以下要检查单元属性的组合替代此函数：CheckSucceeded、ErrorMessage 和 FocusedField。

    例如，此 FormReader 6.5 代码

    对于 [City].IsEmpty() then Error( [City]，“应填写城市名称”）

    应更改为

    [VBScript]

    if me.Field("City").Text = "" then

    me.CheckSucceeded = false

    me.ErrorMessage = "the city name should be filled"

    me.FocusedField = me.Field("City")

    else

    me.CheckSucceeded = true

    end if

    [JScript]

    if( Field("City").Text == "" ) {

    CheckSucceeded = false;

    ErrorMessage = "the city name should be filled";

    FocusedField = Field("City");

    } else {

    CheckSucceeded = true;

    }

  2. 字符串运算。以下列出了如何在 FlexiCapture 9.0 中实现可用于“假设”规则的字符串运算的说明。

    [VBScript]

    .Length() – 使用类似函数 Len（字符串）

    .CmpNoCase(str) – 对于不区分大小写的字符串对比，请使用 LCase（字符串）或 UCase（字符串）函数。

    .Mid(position, count) – 使用类似函数（字符串、位置、计数）

    [JScript]

    .Length() – 使用字符串变量的类似长度属性

    .CmpNoCase(str) – 对于不区分大小写的字符串对比，请使用字符串变量的 toLowerCase() 或 toUpperCase() 方法

    .Mid(position, count) – 使用字符串变量的类拟子字符串（开始，[length]）方法

  3. 实时数字运算。

    [VBScript]

    Floor(d), Ceil(d) – VBScript 中没有现成的等量，您可创建自己的实现（如有必要）

    Round(d),Round(d, i) – 使用类拟的函数 Round(d, [i])

    [JScript]

    Floor(d), Ceil(d) – 使用 Math 对象的 floor(d) 和 ceil(d) 方法

    Round(d) – 使用 Math 对象的 round(d) 方法

    Round(d, i) – JScript 中没有现成的等量，您可创建自己的实现（如有必要）。

  4. 文本字段运算

    IsEmpty() – 将 Field("fieldName").Text 字段的文本值与空字符串对比。

    Text() – 使用 Field("fieldName").Text

    Length() – 获取字段的文本值，然后按以上 2 中所述确定所生成字符串值的长度。

    SetText(text) – 使用 Field("fieldName").Text = text

  5. 复选标记运算

    IsValid() – 您可使用 IsVerified 属性

    Value() – Field("fieldName").Value 在 FormReader 6.5 中现返回一个布尔值但不是 0 或 1。

    SetValue(newValue) – 使用 Field("fieldName").Value = newValue

  6. 复选标记组运算

    IsValid() – 您可使用 IsVerified 属性确定组中字段的不确定性。要弄清已选定的复选框数，按示例“复选标记组检查”中所示迭代组中的复选标记。（参见 用于创建自定义规则的样本脚本规则）。

    Value() – 要获取选定复选标记的数量，可使用以下两种方法之一：

    1. 将数字名称分配给组中的复选标记：0、1 等。Then Field("groupName").Value 将包含选定复选标记的数量或数字列表（已选定多个）或空字符串（未选择）。
    2. 向规则中仅添加指定组中的复选标记（按其在组中的依次出现顺序）。然后，按示例“复选标记组检查”中所示，迭代组中的复选标记。

    Text() - 使用 Field("groupName").Value

    SetValue(newValue) – 要更改复选标记组的值，则需要设置/重置此组中的必要复选标记。必须将复选标记纳入规则中，且必须为其启用 ReadOnly 标志。

自动化规则

要在 FlexiCapture 9.0 Automation 中使用在 FormReader 6.5 中创建的组件，您需要对自动化组件作出以下更改。

  1. 应从示例中所示脚本规则调用实现规则逻辑的外部组件的方法。对于此方法的签名，没有特定要求。但是，请注意，从脚本规则传递至外部组件方法的参数必须与选定的方法签名相对应，其可能类似如下：

    Public Sub Check(ByRef docObj As Object)

    2. docObj – 这是要检查的文档单元的引用。

  2. 应用受 FlexiCapture 9.0 支持的方法替代用于 FormReader 6.5 的 fieldsObj 对象的方法。以下表格列出了 fieldsObj 对象的新旧方法的对应。
fieldsObj 方法 | 可替代旧方法的 VisualBasic 中的样本代码
GetFieldsCount As Integer Dim count as Long

count = docObj.Fields.Count()
GetFieldsNames(Names As Variant) Dim i As Long, count As Long

Dim Names() As String

count = docObj.Fields.count

ReDim Names(count - 1)

For i = 0 To count - 1

Names(i) = docObj.Fields.Item(i).Name

Next
GetFieldsTypes(FieldTypes As Variant) | 不受支持
GetFieldByIndex(Index As Integer, FieldValue As Variant) Dim fieldValue

fieldValue = docObj.Fields.Item(index).Value
GetFieldByName(Name As String, FieldValue As Variant) Dim fieldValue

fieldValue = docObj.Field(Name).Value
GetTableColumnsList(FieldIndex As Integer, TableColumns As Variant) 要处理表格列，请将列字段添加至规则中。对于任何其他字段，检查是否已成功匹配列的方法均相同：

Dim isMatched isMatched = docObj.Field("ColumnName").IsMatched

SetFieldByIndex(Index As Integer, FieldValue As Variant) | docObj.Fields.Item(index).Value = newValue
SetFieldByName(Name As String, FieldValue As Variant) | docObj.Field(Name).Value = newValue
SetTableCellValue(Index As Integer, Row As Integer, Column As Integer, FieldValue As String) 要处理表格单元格，请将列字段添加至规则中。

这些字段的操作取决于规则的级别。如果已为列级别或表格级别创建规则，则其将适用于每行并使用正被检查的行中各列的值（即，单元格操作）：

Dim cell As Object
Set cell = docObj.Field("ColumnName")
Dim cellValue as String
cellValue = cell.Value

因此，您可创建使用表格中前两列中数据的规则，以完成第三列：

Dim cellResult As Object
Set cellResult = docObj.Field("ColumnResult")
cellResult.Value = docObj.Field("Column1").Value + docObj.Field("Column2").Value

如果已为包含表格的单元级别创建规则（组、节段和文档），则您需要按示例“自动化规则”中所述迭代列以访问其单元格。

SetSuggestByIndex(Index As Integer, Suggests As String)

Dim suggests() As Variant

' suggestions for the field

' ...

Dim field As Object

Set field = docObj.Fields.Item(index)

For i = LBound(suggests) To UBound(suggests)

field.Suggest suggests(i)

Next
SetSuggestByName(FieldName As String, Suggests As String)

Dim suggests() As Variant

' suggestions for the field

' ...

Dim field As Object

Set field = docObj.Field(Name)

For i = LBound(suggests) To UBound(suggests)

field.Suggest suggests(i)

Next
SetTableCellSuggest(Index As Integer, Row As Integer, Column As Integer, Suggests As String) 可用访问 SetTableCellValue 方法的相同方式访问单元格字段。

然后，您将可如同处理任何其他字段一样处理已访问的单元格。设置建议将类似如下：

cell.Suggest cellSuggest

  3. 应用受 FlexiCapture 9.0 支持的方法替代用于 FormReader 6.5 的 errorsObj 对象的方法。以下表格列出了 errorsObj 对象的新旧方法的对应。
errorsObj 方法 | 可替代旧方法的 VisualBasic 中的样本代码
SendFieldError( ErrMsg As String, Index As Integer) | docObj.ErrorMessage = ErrMsg docObj.CheckSucceeded = false docObj.FocusedField = docObj.Fields.Item(index)
SendTableError( ErrMsg As String, FieldIndex As Integer, ErrorCells As Variant ) | docObj.ErrorMessage = ErrMsg docObj.CheckSucceeded = false 如果为表格或列级别创建了规则，程序则将已添加至规则中的字段（列）所属的已检查行中的所有单元格标记为错误。要将焦点移至特定单元格，请写入以下代码： docObj.FocusedField = docObj.Field("ColumnName") 如果为较高级别创建了规则，程序将不标记任何单元格，也不将焦点移至任何单元格上。

从 FormReader Automation 导出迁移至 FlexiCapture 脚本导出

应从示例中所示脚本规则调用实现规则逻辑的外部组件的方法。对于此方法的签名，没有特定要求。但是，请注意，从脚本规则传递至外部组件方法的参数必须与选定的方法签名相对应，其可能类似如下：

Public Sub Check(ByRef docObj As Object, ByRef exportTools As Object)

docObj – 这是要导出的文档的引用。

exportTools – 这是 ExportTools 对象的引用

应用受 当前版本应用程序支持的方法替代用于 FormReader 6.5 的 f ieldsObj 对象的方法。以下表格列出了 fieldsObj 对象方法与处理要导出文档的新方式之间的对应：

fieldsObj 对象的方法 | 新对象模型中的可能实现
GetFieldsCount As
Integer 		要获取正被导出的文档中字数的数量，请按示例“使用外部 COM 组件”中所示迭代字段树状图，并进行计算。
GetFieldsNames(Names As Variant) | 要获取正被导出的文档中字数的名称，请按示例“使用外部 COM 组件”中所示迭代字段树状图，并用字段的名称填充数组。
GetFieldsTypes(FieldTypes As Variant) | 不受支持。
GetFieldByIndex(Index As Integer, FieldValue As Variant) 通过索引进行访问没有任何意义，因为新文档模型的结构是分层的。
按示例“使用外部 COM 组件”中所示，可轻易地迭代字段树状图，并用字段的名称填充数组。
GetFieldByName(Name As String, FieldValue As Variant) Dim fieldValue
fieldValue = docObj.Field(Name).Value


应用程序服务器 API

http://appServer/FlexiCapture/Server/WebServices.dll?Handler=Version2WSDL，其中 appServer 是已安装的应用程序服务器的名称。

// Methods from the first version of the interface

// Methods added in the second version

// Get the list of batches in the project

Batch[] GetBatches( int projectId );

// Get the batch using the identifier

Batch GetBatch( int batchId );

// Get the batch type using the identifier

BatchType GetBatchType( int batchTypeId );

// Open the batch (lock deletion)

bool OpenBatch( int sessionId, int batchId );

// Close the batch (unlock deletion)

void CloseBatch( int sessionId, int batchId );

// Get detailed information about the document

DocumentEx GetDocument( int batchId, int documentId );

// Add a document with registration parameters

int AddNewDocumentEx( int sessionId, int batchId, DocumentEx document, File file, bool omAutomaticAssembling );

// Delete the document

bool DeleteDocument( int sessionId, int batchId, int documentId );

// Specify the document's registration parameters

void SetDocumentProperties( int sessionId, int batchId, int documentId, RegistrationProperty[] properties );

// Add a page with additional information to the document

int AddNewPageEx( int sessionId, int batchId, int documentId, PageEx page, File file );

// Delete the page from the document

bool DeletePage( int sessionId, int batchId, int documentId, int pageId );

// Working with rescanning tasks

// Get the list of available tasks

TaskList GetAvailableTasks( int sessionId, int projectId, int processingStage );

// Get the list of postponed tasks

TaskList GetPostponedTasks( int sessionId, int projectId, int processingStage );

// Open the task. Before doing anything else, it must be opened to prevent other users from opening it.

bool OpenTask( int sessionId, int taskId );

// Return the task for further processing

void CloseTask( int sessionId, int taskId );

// Reject the task

void CancelTask( int sessionId, int taskId );

// Postpone the task

void PostponeTask( int sessionId, int taskId, string comment);

// Send the task to Exceptions

void SendTaskToException( int sessionId, int taskId, string comment );

// Get the list of documents in the task

TaskDocumentList GetTaskDocuments( int taskId );

// Get information about the task

Task GetTaskInfo( int taskId );

// Working with custom files

// Save the custom file on the server

void SaveCustomFile( int sessionId, File file );

// Load the custom file from the server

File LoadCustomFile( string fileName );

// Delete the custom file from the server

void RemoveCustomFile( int sessionId,  string filename );

// Get the list of custom files

string[] GetCustomFileNames();

// Working with protection

// Get a new ticket

bool GetNewTicket( int sessionId, int stationType, out TicketInfo ticketInfo );

// Update the existing ticket

bool UpdateTicket( int sessionId, int ticketId, out TicketInfo ticketInfo );

// Check out the existing ticket

void ReleaseTicket( int sessionId, int ticketId );

// Write to the message server log

void WriteToLog( long clientTime, LogRecord[] records );

应用程序服务器 API：使用样本
应用程序服务器 API Web 服务的描述


应用程序服务器 API：使用样本

此样本创建于 Microsoft Visual Studio。以下样本代码假定已添加 Web 服务的引用 (WebReference)，且为此引用选择名称 FlexiCapture（生成的名称空间与此名称相对应）。该样本亦假定已定义 Trace 函数（例如使用 Debug.Print）。它用于向日志文件添加数据。

样本仅供演示。在实际项目中，务必围绕打开的对象创建可靠的包类别，并使用与 C# 中所用相似的装置。需要用于清除已抛弃会话和批处理文件的装置，该装置可自动防故障并不受断电和通信线路故障影响（即，必须在恢复过程中保存标识符并关闭会话）。已抛弃会话不会构成危险，但可能堆积起来，妨碍管理员的操作。而且，已抛弃的批处理文件可能占据相当多的服务器资源，主要是占用了为图像和文档预留的存储空间。

要运行此样本，只需将您的项目上传至刚安装的应用程序服务器即可，并在工作流选项卡中选择无人照看的处理模式。

public void RunSample(string serverUrl)

{

       try

       {

             // Initialize service

             FlexiCapture.FlexiCaptureWebService service = new FlexiCaptureWebService();

// To reference version 1 of the service, the URL should be constructed as follows.
// Please notice that the resulting URL is different from that used to
// reference WSDL (which was previously used to add the web-reference)

service.Url = serverUrl + "/FlexiCapture/Server/WebServices.dll?Handler=Version1";

// Enable transparent log-on using credentiols of the current thread

service.Credentials = System.Net.CredentialCache.DefaultCredentials;

             // Open session

             int sessionId = service.OpenSession();

             try

             { {

// List available projects (this can be omitted if you work with
// a fixed project, in which case the preferred method is to open
// a project by GUID)

                    FlexiCapture.Project[] projects = service.GetProjects();

                    if( projects != null )

                    {

                          foreach( FlexiCapture.Project project in projects )

                          {

                                 Trace( project.Name + " : " + project.Guid );

                          }

                    }

                    // Open the first project in the list

                    int projectId = service.OpenProject( sessionId, projects[0].Guid );

                    // List available batch types

                    FlexiCapture.BatchType[] batchTypes = service.GetBatchTypes( projectId );

                    if( batchTypes != null )

                    {

                          foreach( FlexiCapture.BatchType batchType in batchTypes )

                          { {

                                 Trace( batchType.Name + " : " + batchType.Description );

                          }

                    }

                    // Create a new batch

                    FlexiCapture.Batch batch = new FlexiCapture.Batch();

                    batch.Name = "Sample API Batch";

                    int batchId = service.AddNewBatch( sessionId, projectId, batch );

                    // Load sample images (see below for definition of LoadFile)

                    FlexiCapture.File file1 = LoadFile( "Banking 1.png" );

                    FlexiCapture.File file2 = LoadFile( "Banking 2.png" );

                    FlexiCapture.File file3 = LoadFile( "Banking 3.png" );

                    // Add sample images

                    for(
int i = 0; i <
3;
i++ )

                    {

                          service.AddNewImage( sessionId, batchId, file1 );

                          service.AddNewImage ( sessionId, batchId, file2 );

                          service.AddNewImage ( sessionId, batchId, file3 );

                    }

                    // Start processing the batch

                    service.ProcessBatch( sessionId, batchId );

                    // Wait for the processing to complete

                    int percentCompleted = 0;

                    while( percentCompleted < 100 )

                    {

                          percentCompleted = service.GetBatchPercentCompleted( batchId );

                          System.Threading.Thread.Sleep( 500 );

                    } }

                    // Analyze results

                    FlexiCapture.Document[] documents = service.GetDocuments( batchId );

                    if( documents != null )

                    {

                          foreach( FlexiCapture.Document document in documents )

                          {

                                 FlexiCapture.File attachedFile =

service.GetDocumentResult( document.Id, "MyResult.xml" );

                          } }

                    }

                    // Clean up

                    service.DeleteBatch( sessionId, batchId );

                    service.CloseProject( sessionId, projectId );

             }

             finally

             {

                    service.CloseSession( sessionId );

             }

       }

       catch ( Exception ex )

       {

             Trace( ex.Message );

       }

}

public FlexiCapture.File LoadFile( string fileName )

{

       FlexiCapture.File file = new FlexiCapture.File();

       using( FileStream stream = File.Open( fileName, FileMode.Open ) )

       {

             file.Name = fileName;

             file.Bytes = new byte[stream.Length];

             stream.Read( file.Bytes, 0, file.Bytes.Length );

       }

       return file;

}


应用程序服务器 Web 服务的描述

以下网站提供了此服务界面 (WSDL) 的最新描述：

http://appServer/FlexiCapture/Server/WebServices.dll?Handler=Version1WSDL，其中 appServer 是已安装的应用程序服务器的名称。

<?xml version="1.0" ?>
- <definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s0="urn:http://www.abbyy.com/FlexiCapture" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:atls="http://tempuri.org/vc/atl/server/" targetNamespace="urn:http://www.abbyy.com/FlexiCapture" xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
-
<s:schema
targetNamespace="urn:http://www.abbyy.com/FlexiCapture"
attributeFormDefault="qualified"
elementFormDefault="qualified">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <s:element name="OpenSession">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="OpenSessionResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetProjects">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="GetProjectsResponse">
- <s:complexType>
- <s:sequence>
- <s:element name="projects" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element name="Project" type="s0:Project" minOccurs="0" maxOccurs="unbounded" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="CloseSession">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="CloseSessionResponse">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="OpenProject">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="projectNameOrGuid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="OpenProjectResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="CloseProject">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="projectId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="CloseProjectResponse">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="GetBatchTypes">
- <s:complexType>
- <s:sequence>
<s:element name="projectId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetBatchTypesResponse">
- <s:complexType>
- <s:sequence>
- <s:element name="batchTypes" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element name="BatchType" type="s0:BatchType" minOccurs="0" maxOccurs="unbounded" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewBatch">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="projectId" type="s:int" />
<s:element name="batch" type="s0:Batch" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewBatchResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="DeleteBatch">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="batchId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="DeleteBatchResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewImage">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="batchId" type="s:int" />
<s:element name="file" type="s0:File" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewImageResponse">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="AddNewDocument">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="batchId" type="s:int" />
<s:element name="file" type="s0:File" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewDocumentResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewEmptyDocument">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="batchId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewEmptyDocumentResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewPage">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="documentId" type="s:int" />
<s:element name="file" type="s0:File" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="AddNewPageResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ProcessBatch">
- <s:complexType>
- <s:sequence>
<s:element name="sessionId" type="s:int" />
<s:element name="batchId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ProcessBatchResponse">
- <s:complexType>
<s:sequence />
</s:complexType>
</s:element>
- <s:element name="GetBatchPercentCompleted">
- <s:complexType>
- <s:sequence>
<s:element name="batchId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetBatchPercentCompletedResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetDocuments">
- <s:complexType>
- <s:sequence>
<s:element name="batchId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetDocumentsResponse">
- <s:complexType>
- <s:sequence>
- <s:element name="documents" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element name="Document" type="s0:Document" minOccurs="0" maxOccurs="unbounded" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetDocumentResultsList">
- <s:complexType>
- <s:sequence>
<s:element name="documentId" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetDocumentResultsListResponse">
- <s:complexType>
- <s:sequence>
- <s:element name="fileNames" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element name="string" type="s:string" minOccurs="0" maxOccurs="unbounded" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="LoadDocumentResult">
- <s:complexType>
- <s:sequence>
<s:element name="documentId" type="s:int" />
<s:element name="fileName" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="LoadDocumentResultResponse">
- <s:complexType>
- <s:sequence>
<s:element name="return" type="s0:File" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="Batch">
- <s:sequence>
<s:element name="Id" type="s:int" />
<s:element name="Name" type="s:string" />
<s:element name="BatchTypeId" type="s:int" />
<s:element name="Priority" type="s:int" />
<s:element name="Description" type="s:string" />
- <s:element name="Properties" atls:SizeIs="PropertiesCount" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element

name="RegistrationProperty"
type="s0:RegistrationProperty"
minOccurs="0"
maxOccurs="unbounded"
/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="PropertiesCount" type="s:int" />
</s:sequence>
</s:complexType>
- <s:complexType name="File">
- <s:sequence>
<s:element name="Name" type="s:string" />
<s:element name="Bytes" type="s:base64Binary" />
</s:sequence>
</s:complexType>
- <s:complexType name="Document">
- <s:sequence>
<s:element name="Id" type="s:int" />
- <s:element name="Pages" atls:SizeIs="PageCount" nillable="true">
- <s:complexType>
- <s:sequence>
<s:element

name="Page"
type="s0:Page"
minOccurs="0"
maxOccurs="unbounded"
/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="PageCount" type="s:int" />
<s:element name="IsProcessed" type="s:boolean" />
<s:element name="HasProcessingErrors" type="s:boolean" />
<s:element name="HasDocumentErrors" type="s:boolean" />
<s:element name="ErrorText" type="s:string" />
</s:sequence>
</s:complexType>
- <s:complexType name="Project">
- <s:sequence>
<s:element name="Name" type="s:string" />
<s:element name="Guid" type="s:string" />
</s:sequence>
</s:complexType>
- <s:complexType name="RegistrationProperty">
- <s:sequence>
<s:element name="Name" type="s:string" />
<s:element name="Value" type="s:string" />
</s:sequence>
</s:complexType>
- <s:complexType name="BatchType">
- <s:sequence>
<s:element name="Id" type="s:int" />
<s:element name="Name" type="s:string" />
<s:element name="Description" type="s:string" />
</s:sequence>
</s:complexType>
- <s:complexType name="Page">
- <s:sequence>
<s:element name="Id" type="s:int" />
<s:element name="SourceFileName" type="s:string" />
<s:element name="SourcePageNumber" type="s:int" />
<s:element name="ErrorText" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</types>
- <message name="OpenSessionIn">
<part name="parameters" element="s0:OpenSession" />
</message>
- <message name="OpenSessionOut">
<part name="parameters" element="s0:OpenSessionResponse" />
</message>
- <message name="GetProjectsIn">
<part name="parameters" element="s0:GetProjects" />
</message>
- <message name="GetProjectsOut">
<part name="parameters" element="s0:GetProjectsResponse" />
</message>
- <message name="CloseSessionIn">
<part name="parameters" element="s0:CloseSession" />
</message>
- <message name="CloseSessionOut">
<part name="parameters" element="s0:CloseSessionResponse" />
</message>
- <message name="OpenProjectIn">
<part name="parameters" element="s0:OpenProject" />
</message>
- <message name="OpenProjectOut">
<part name="parameters" element="s0:OpenProjectResponse" />
</message>
- <message name="CloseProjectIn">
<part name="parameters" element="s0:CloseProject" />
</message>
- <message name="CloseProjectOut">
<part name="parameters" element="s0:CloseProjectResponse" />
</message>
- <message name="GetBatchTypesIn">
<part name="parameters" element="s0:GetBatchTypes" />
</message>
- <message name="GetBatchTypesOut">
<part name="parameters" element="s0:GetBatchTypesResponse" />
</message>
- <message name="AddNewBatchIn">
<part name="parameters" element="s0:AddNewBatch" />
</message>
- <message name="AddNewBatchOut">
<part name="parameters" element="s0:AddNewBatchResponse" />
</message>
- <message name="DeleteBatchIn">
<part name="parameters" element="s0:DeleteBatch" />
</message>
- <message name="DeleteBatchOut">
<part name="parameters" element="s0:DeleteBatchResponse" />
</message>
- <message name="AddNewImageIn">
<part name="parameters" element="s0:AddNewImage" />
</message>
- <message name="AddNewImageOut">
<part name="parameters" element="s0:AddNewImageResponse" />
</message>
- <message name="AddNewDocumentIn">
<part name="parameters" element="s0:AddNewDocument" />
</message>
- <message name="AddNewDocumentOut">
<part name="parameters" element="s0:AddNewDocumentResponse" />
</message>
- <message name="AddNewEmptyDocumentIn">
<part name="parameters" element="s0:AddNewEmptyDocument" />
</message>
- <message name="AddNewEmptyDocumentOut">
<part name="parameters" element="s0:AddNewEmptyDocumentResponse" />
</message>
- <message name="AddNewPageIn">
<part name="parameters" element="s0:AddNewPage" />
</message>
- <message name="AddNewPageOut">
<part name="parameters" element="s0:AddNewPageResponse" />
</message>
- <message name="ProcessBatchIn">
<part name="parameters" element="s0:ProcessBatch" />
</message>
- <message name="ProcessBatchOut">
<part name="parameters" element="s0:ProcessBatchResponse" />
</message>
- <message name="GetBatchPercentCompletedIn">
<part name="parameters" element="s0:GetBatchPercentCompleted" />
</message>
- <message name="GetBatchPercentCompletedOut">
<part name="parameters" element="s0:GetBatchPercentCompletedResponse" />
</message>
- <message name="GetDocumentsIn">
<part name="parameters" element="s0:GetDocuments" />
</message>
- <message name="GetDocumentsOut">
<part name="parameters" element="s0:GetDocumentsResponse" />
</message>
- <message name="GetDocumentResultsListIn">
<part name="parameters" element="s0:GetDocumentResultsList" />
</message>
- <message name="GetDocumentResultsListOut">
<part name="parameters" element="s0:GetDocumentResultsListResponse" />
</message>
- <message name="LoadDocumentResultIn">
<part name="parameters" element="s0:LoadDocumentResult" />
</message>
- <message name="LoadDocumentResultOut">
<part name="parameters" element="s0:LoadDocumentResultResponse" />
</message>
- <portType name="FlexiCaptureWebServiceSoap">
- <operation name="OpenSession">
<input message="s0:OpenSessionIn" />
<output message="s0:OpenSessionOut" />
</operation>
- <operation name="GetProjects">
<input message="s0:GetProjectsIn" />
<output message="s0:GetProjectsOut" />
</operation>
- <operation name="CloseSession">
<input message="s0:CloseSessionIn" />
<output message="s0:CloseSessionOut" />
</operation>
- <operation name="OpenProject">
<input message="s0:OpenProjectIn" />
<output message="s0:OpenProjectOut" />
</operation>
- <operation name="CloseProject">
<input message="s0:CloseProjectIn" />
<output message="s0:CloseProjectOut" />
</operation>
- <operation name="GetBatchTypes">
<input message="s0:GetBatchTypesIn" />
<output message="s0:GetBatchTypesOut" />
</operation>
- <operation name="AddNewBatch">
<input message="s0:AddNewBatchIn" />
<output message="s0:AddNewBatchOut" />
</operation>
- <operation name="DeleteBatch">
<input message="s0:DeleteBatchIn" />
<output message="s0:DeleteBatchOut" />
</operation>
- <operation name="AddNewImage">
<input message="s0:AddNewImageIn" />
<output message="s0:AddNewImageOut" />
</operation>
- <operation name="AddNewDocument">
<input message="s0:AddNewDocumentIn" />
<output message="s0:AddNewDocumentOut" />
</operation>
- <operation name="AddNewEmptyDocument">
<input message="s0:AddNewEmptyDocumentIn" />
<output message="s0:AddNewEmptyDocumentOut" />
</operation>
- <operation name="AddNewPage">
<input message="s0:AddNewPageIn" />
<output message="s0:AddNewPageOut" />
</operation>
- <operation name="ProcessBatch">
<input message="s0:ProcessBatchIn" />
<output message="s0:ProcessBatchOut" />
</operation>
- <operation name="GetBatchPercentCompleted">
<input message="s0:GetBatchPercentCompletedIn" />
<output message="s0:GetBatchPercentCompletedOut" />
</operation>
- <operation name="GetDocuments">
<input message="s0:GetDocumentsIn" />
<output message="s0:GetDocumentsOut" />
</operation>
- <operation name="GetDocumentResultsList">
<input message="s0:GetDocumentResultsListIn" />
<output message="s0:GetDocumentResultsListOut" />
</operation>
- <operation name="LoadDocumentResult">
<input message="s0:LoadDocumentResultIn" />
<output message="s0:LoadDocumentResultOut" />
</operation>
</portType>
- <binding name="FlexiCaptureWebServiceSoap" type="s0:FlexiCaptureWebServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <operation name="OpenSession">
<soap:operation soapAction="#OpenSession" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="GetProjects">
<soap:operation soapAction="#GetProjects" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="CloseSession">
<soap:operation soapAction="#CloseSession" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="OpenProject">
<soap:operation soapAction="#OpenProject" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="CloseProject">
<soap:operation soapAction="#CloseProject" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="GetBatchTypes">
<soap:operation soapAction="#GetBatchTypes" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="AddNewBatch">
<soap:operation soapAction="#AddNewBatch" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="DeleteBatch">
<soap:operation soapAction="#DeleteBatch" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="AddNewImage">
<soap:operation soapAction="#AddNewImage" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="AddNewDocument">
<soap:operation soapAction="#AddNewDocument" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="AddNewEmptyDocument">
<soap:operation soapAction="#AddNewEmptyDocument" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="AddNewPage">
<soap:operation soapAction="#AddNewPage" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="ProcessBatch">
<soap:operation soapAction="#ProcessBatch" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="GetBatchPercentCompleted">
<soap:operation soapAction="#GetBatchPercentCompleted" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="GetDocuments">
<soap:operation soapAction="#GetDocuments" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="GetDocumentResultsList">
<soap:operation soapAction="#GetDocumentResultsList" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="LoadDocumentResult">
<soap:operation soapAction="#LoadDocumentResult" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <service name="FlexiCaptureWebService">
- <port name="FlexiCaptureWebServiceSoap" binding="s0:FlexiCaptureWebServiceSoap">
<soap:address location="http://appserver:80/FlexiCapture/Server/WebServices.dll?Handler=Version1" />
</port>
</service>
</definitions>


FormReader 6.5 和 FlexiCapture 9.0 规则对比

FormReader 6.5 | FlexiCapture 9.0 中的等价功能 | 自动转换
根据数据库检查 | 数据库检查规则 | 否
检查总和 | 新建总和规则 | 否
合并区域 | 合并字段规则 | 是
VBScript 规则 | 脚本规则 | 否
在建议列表中搜索 | 字段属性，数据类型选项卡在限制字段中列出变量。除开日期和编号的所有类型工作。参阅文本输入字段数据类型。 | 是
匹配区域 | 可通过脚本规则实现 | 否
假设规则 | 脚本规则 | 否
替换列表中的值 | 字段属性，数据类型选项卡文本类型，处理字段。参阅文本输入字段数据类型。 | 是
替换列表中的字符 | 字段属性，数据类型选项卡文本类型，处理字段。参阅文本输入字段数据类型。 | 是
标准化和检查日期 | 字段属性，数据类型选项卡在类别列表中，选择日期在“格式”列表中，选择必要的格式；在限制字段中，输入必要的限制。参阅文本输入字段数据类型。 | 否
正则表达式 | 字段属性，数据类型选项卡在限制字段中输入必要的正则表达式。除开日期和编号的所有类型工作。参阅文本输入字段数据类型。 | 是
自动化检查 | 在上一版本的应用程序中，使用了在目标计算机上注册组件所需的自动化对象，这样就难以在计算机之间传输批处理文件。在新版本中，可通过脚本最佳地实现大多数该等规则的逻辑。 如果规则逻辑太复杂且需要使用外部组件，则应从脚本规则的代码中调用组件。然后，应将已检查文档上的对象的引用传递至组件。 | 否
标准化价格 | 可通过从脚本规则调用的外部 COM 组件实现 | 否
校验护照系列和编号 | 可通过从脚本规则调用的外部 COM 组件实现 | 否
用数字表示的总和 - 书写中的总和 | 图数中的总和 - 单词规则中的总和 | 否
用数字表示的价格 - 书写中的价格 | 可通过从脚本规则调用的外部 COM 组件实现 | 否


其他选项

您可根据自己的需求设置文档处理和程序界面。在项目安装工作站的主窗口中，选择工具>选项… 打开的对话框包含四个选项卡：

  • 任务进度

    在后台模式中执行任务时，您可在任务进度窗口中监控进度，只需读取日志文件和弹出提示。在此选项卡上，您可选择应输入日志文件的信息及应显示汽球状消息的情况。

  • 颜色

    对于界面元素（例如，文档定义编辑器中围绕选定字段的框或带有错误和警告的框和字段填充颜色），您可更改颜色。选择所需元素，然后单击彩色按钮。

  • 文档处理

    如果您选择了自动识别添加的图像选项，则添加至批处理文件后的图像将立即自动得以识别。

    识别可在后台模式中运行（选择在后台模式中运行识别进程）。

    如果选择导出时跳过有错误的文档则将导出成功处理的文档和有错误的文档。

    如果检测到脚本错误，则会启动 Visual Studio 调试程序。如果您不想启动调试程序，请选择禁用外部脚本调试对话框。仅将显示错误消息。

  • 对话框对话框

    默认情况下，当您启动程序时，将显示打开项目对话框，在其中您可选择任一个现有项目。您可禁用此对话框，只需清除显示启动对话框选项，该选项位于对话框选项卡上（或者，清除对话框本身的同一选项也可禁用此对话框）。

    当您关闭文档定义列表时，如存在任何未发布的文档定义，程序将警告您。如果您不想显示此警告消息，请清除选项当存在未发布文档定义时显示警告（或者，清除对话框本身的同一选项也可禁用此对话框）。

    如果您想要在导出有错误的文档时显示通知，选择在导出错误文档时显示警告。

    选择在文档之间切换时提示进行保存和更改不会在文档之间切换时丢失任何更改。


ABBYY FlexiCapture 样本项目

为了弄清 ABBYY FlexiCapture 9.0 的运行原理及更好地了解其功能，您可使用程序中包括的样本项目。这此现成的项目包含设置文档定义和要处理的文档图像。

您可在<磁盘名称>中查找样本项目：\\Documents and Settings\All Users\Application Data\ABBYY\FlexiCapture\9.0\Samples。

注：在 Microsoft Windows Vista 中，可在<磁盘名称>中找到样本项目：\\Users\Public\ABBYY\FlexiCapture\9.0\Samples。

样本文件夹包含以下文件夹

  1. FlexiCapture - 此文件夹包含 FlexiCapture 样本项目。
  2. FlexiLayoutStudio - 此文件夹包含 FlexiLayout Studio 样本项目。这些样本项目说明了如何半结构化文档，应在 ABBYY FlexiLayout Studio 9.0 中将其打开。FlexiLayout Studio 帮助文件提供了部分这些项目的详细描述（参见“教程、提示和决窍”部分）。
  3. FormDesigner - 此文件夹包含在 ABBYY FormDesigner 中开发的固定表单。应在 ABBYY FormDesigner 9.0 中打开 *.fdd。这些表单用于以下 FlexiCapture 样本项目：银行卡应用程序，调查问卷。
  4. 图像 - 此文件夹包含 FlexiCapture 样本项目的已扫描文档图像。

以下是 FlexiCapture 样本项目及其简要描述的列表。

不为类型文档的样本项目

项目文件夹包含 FlexiCapture 样本项目。

  1. 单一入口点

    此项目显示了如何处理不同类型的文档。无需执行初步文档排序，固定表单和弹性文档可一起处理。此项目中所用的文档定义也用于以下所述项目。

    项目包含所有类型的文档：银行卡应用程序、发票、合同、信件和价格。

带固定表单的样本项目

项目文件夹包含在 ABBYY FormDesigner 和 FlexiCapture 项目中创建的表单。

  2. 银行卡应用程序

    此样本项目说明了以下功能：

    • 自动检查固定表单上的字段（要查看自动检测功能的运行原理，请从文档定义中删除所有字段，并选择工具>自动检测对象…）
    • 支持带复杂结构的文档：
      1. 多页文档（三页应用程序用于样本项目）
      2. 处理文档会话（在样本项目中，每页均是独立的节段）
      3. 文档组装规则
      4. 附录处理
    • 支持复杂字段：
      1. 处理固定表单上的表格（“开立的帐户”表格）
      2. 重得字段组（“地址和申请的帐户”组）
    • 数据格式检查（所有数字字段和日期字段的格式均已指定）
    • 自定义数据表单。
    • 导出至多个目标。
    • 删除机密信息（编辑）。

  3. 调查问卷

    此样本项目的详细描述可在用户指南中找到。项目显示了如何逐步设置文档定义。可使用多个较简单的表单说明 ABBYY FlexiCapture 的基本功能。可在此样本项目中完成调查问卷，在 ABBYY FlexiCapture 中对其进行处理并将导出的数据发送至 ABBYY。

带弹性表单的样本项目

项目文件夹包含 FlexiLayout Studio 项目和 FlexiCapture 项目。

  4. 发票

    此样本项目说明如何处理半结构化文档及以下功能：

    • 文档中可变数量的页面（从 1 至 3）
    • 跨越多页的表格
    • 外部关键字词典的使用（文本文件）
    • JScript 规则用于将“总计”字段中的总和与通过将所有表格行中的“总计”值加在一起所得出的总和进行对比。

  5. 价格

    此样本项目说明如何处理半结构化文档及以下功能：

    • 支持重复组。此样本项目显示了如何使用重复组描述嵌套式表格（带副标题的表格）

  6. 信件和合同

    此样本项目说明了如何处理从其中捕获 2 或 3 字段的非结构化文档。项目说明了以下功能：

    • 文档中可变数量的页面（从 1 至 4）
    • 设置导出至可搜索 PDF。


受支持的识别语言

ABBYY FlexiCapture 9.0 支持以下带有词典支持的识别语言：

语言 | OCR* | ICR**
亚美尼亚语（东部、西部、格拉巴） | ü |
巴什基尔语 | ü |
保加利亚语 | ü | ü
加泰隆语 | ü |
克罗地亚语 | ü | ü
捷克语 | ü | ü
丹麦语 | ü |
荷兰语（荷兰和比利时） | ü | ü
英语 | ü | ü
爱沙尼亚语 | ü | ü
芬兰语 | ü | ü
法语 | ü | ü
德语（旧式和新式拼写） | ü | ü
希腊语 | ü | ü
希伯来语 | ü |
匈牙利语 | ü | ü
印度尼西亚语 | ü | ü
意大利语 | ü | ü
拉脱维亚语 | ü | ü
立陶宛语 | ü | ü
挪威语（尼诺斯克和博克马尔） | ü |
古代英语 | ü |
古代法语 | ü | ü
古代德语 | ü | ü
古代意大利语 | ü | ü
古代西班牙语 | ü | ü
波兰语 | ü | ü
葡萄牙语（葡萄牙和巴西） | ü |
罗马尼亚语 | ü | ü
俄语 | ü | ü
斯洛伐克语 | ü | ü
斯洛文尼亚语 | ü | ü
西班牙语 | ü | ü
瑞典语 | ü |
鞑靼语 | ü |
泰国语 | ü |
土耳其语 | ü | ü
乌克兰语 | ü | ü

要了解受支持语言字体的详细信息，请参见"在 ABBYY FlexiCapture 编辑器中正确渲染受支持数据类型字符所需的字体"部分。

受支持数据类型的完整更新列表及其详细信息查以 http://www.abbyy.com 中找到。

* - OCR - 光学字符识别。打印文本的光学识别。

** - ICR - 智能字符识别。手印文本的识别。


在 FormReader 编辑器中正确宣染受支持数据类型字符所需的字体

在 ABBYY FlexiCapture 编辑器中正确宣染受支持语言字符所需的字体

语言 | 字体
通过词典支持 |
亚美尼亚语（东部、西部、格拉巴） | Arial Unicode MS(2)
鞑靼语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
不通过词典支持 |
阿布哈西亚语 | Arial Unicode MS(2)
阿迪格语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
阿古尔语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
阿尔泰语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
阿瓦尔语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
阿塞拜疆语（西里尔文），阿塞拜疆语（拉丁文） | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
巴什基尔语 | Arial Unicode MS(2)，Palatino Linotype(2)
布里亚特语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
车臣语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
楚克其语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
楚瓦什语 | Arial Unicode MS(2)
达尔金语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
东干语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
加告兹语 | Arial Unicode MS(2)
豪萨语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
印古什语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
卡巴尔达语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
卡尔梅克语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
卡拉卡尔帕克语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
哈萨克语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
哈卡斯语 | Arial Unicode MS(2)
汉特语 | Arial Unicode MS(2)
科尔雅克语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
吉尔吉斯语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
拉克语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
莱兹金语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
曼西语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
马里语 | Arial Unicode MS(2)
蒙古语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
勒勒茨语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
奥塞特语 | Arial Unicode MS(2)
俄语（旧式拼写） | Arial Unicode MS(2)，Palatino Linotype(2)
塔巴萨兰语 | Arial Unicode MS(2), Lucida Sans Unicode(3)
塔吉克语 | Arial Unicode MS(2)，Palatino Linotype(2)
土库曼语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
塔巴萨兰语 | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
乌德穆尔特语 | Arial Unicode MS(2)
乌兹别克语（西里尔） | MS Core Fonts 2.82(1)（Arial、Courier New 和 Times New Roman）
雅库特语 | Arial Unicode MS(2)
祖鲁语 | Arial Unicode MS,(2)，Lucida Sans Unicode(3)

(1) http://www.microsoft.com/

(2) MS Office 2000

(3) Windows NT 4.0


受支持的文本类型

ABBYY FlexiCapture 9.0 支持以下文本类型：

文本类型 | 描述
点阵、激光或喷墨打印机 | 在打印店、激光打印机或喷墨打印机上打印的文本。
打字机 | 打印的文本。
点矩阵打印机 | 在点矩阵打印机上打印的文本。
索引（Index） | 一组只包括以 ZIP 代码样式书写的数字的字符。其类似如下：
OCR-A | 用于光学字符识别的等宽字体。主要供银行、信用卡公司和相似公司使用。其可能类似：
OCR-B | 用于光学字符识别的字体。其可能类似：
MICR E-138 | 一组通过磁性墨水的打印的特殊数字字符。可在各种位置找到 MICR（磁性墨水字符识别）字符，包括个人支票。其可能类似：
MICR CMC-7 | 一种特殊的 MICR 条形码字体 (CMC-7)。其可能类似：


受支持的条形码类型

ABBYY FlexiCapture 9.0 支持以下条形码格式：

  • EAN 13
  • EAN 8
  • Code 39
  • 检查 Code 39
  • 交叉 25 码
  • 检查交叉 25 码
  • Code 128
  • Codabar
  • UPC-A
  • UPC-E
  • Code 93
  • UCC-128
  • PDF-417
  • IATA 25
  • Matrix 25
  • Industrial 25
  • PostNet
  • Patch code
  • 检查 CodaBar
  • Aztec
  • Datamatrix

注：ABBYY FlexiCapture 9.0 可读取 Aztec 和 Datamatrix 条形码，但其无法将这些条形码检测到图像中。因此，您可在文档定义中使用这些条形码类型，但不能将其用于 FlexiLayout 或用作文档分隔符。


受支持的图形格式

类型 | 彩色
BMP | 黑白，灰色，彩色
PCX，DCX | 黑白，灰色
PNG | 黑白，灰色，彩色
JPEG | 灰色，彩色
JPEG-2000 | 灰色，彩色
TIFF | 黑色 – 未压缩，CCITT3，CCITT4，Packbits，ZIP； 灰色 – 未压缩，Packbits，JPEG，ZIP； 彩色 – 未压缩，JPEG，ZIP。
JBIG2 | 黑白
GIF | 彩色
PDF，PDF/A |
PDF,可搜索的 PDF/A |
DjVu | 黑白，灰色，彩色


导出文件格式

ABBYY FlexiCapture 9.0 将文档数据导出到的文件格式

  • Microsoft Office Excel Workbook (*.XLS)
  • DBase 文件 (*.DBF)
  • 逗号分隔值文件 (*.csv) ABBYY FlexiCapture 支持各种代码页 (Windows, DOS)
  • Unicode 格式 (UTF-8, UTF-16) 的逗号分隔值文件 (*.CSV)
  • 简单文本（*.TXT） ABBYY FlexiCapture 支持各种代码页 (Windows, DOS)
  • Unicode 格式 (UTF-8, UTF-16) 的简单文本 (*.TXT)
  • XML 文档 (*.XML)


用于正则表达式的符号集

名称 | 惯用标识 | 使用示例
任何字符 | * | "c"*"t" – 允许使用 cat 和 cot 等之类的单词。
字母 | C | C"ot" – 允许使用 Rot、pot、cot、Dot、和 mot 之类的单词。
大写字母 | A | A"ot" – 允许使用 Rot、Cot、Mot 和 Dot 之类的单词。
小写字母 | a | a"ot" – 允许使用 rot、cot、mot 和 dot, 之类的单词。
字母或数字 | X | X – 允许使用任何独立数字或字母。
编号 | N | N"th" 允许使用 5th、4th 和 6th 之类的单词。
字符串 | " " | "cot"
或 | | | "pl"("o"|"a")"t" – 允许使用单词“plot”和“plat”。
源自组的字符 | [] | [tm]"ot" – 允许使用“tot”和“mot”。
非源自组的字符 | [^] | [^t]"ot" – 允许使用单词“cot”、“lot” 等，但不允许使用单词“tot”。
空格（组中） | \s | [A\s] 仅允许使用字线 A 或空格。
任意重复次数 （适用于左边的表达式或子表达式） | {-} | [AB74]{-} – 允许字符 A、B、7 和 4 的任意长度的任何组合。
任意重复次数 n | {n} | N{2}"th" 允许使用 25th、84th 和 11th 之类的单词。
从 n 至 m 重复 | {n-m} | N{1-3}"th" 允许使用 5th、84th 和 111th 之类的单词
从 0 至 n 重复 | {-n} | N{-2}"th" 允许使用 84th 和 5th 之类的单词。
从 n 重复和更多 | {n-} | N{2-}"th" 允许使用诸如 25th、834th、311th 和 34576th 之类的单词。
子表达式 | () |
连字符 | [\-] |
斜线 | [\\] |


专利

美国专利号 5,258,855、5,369,508、5,625,465、5,768,416 和 6,094,505


第三方技术

JasPer License Version 2.0

版权所有 (c) 2001-2006 Michael David Adams
版权所有 (c) 1999-2000 Image Power, Inc.
版权所有 (c) 1999-2000 The University of British Columbia

保留所有权利。

更多

特此无偿授予获取该软件及相关文档的任何人（“用户”）无限制使用本软件的权利，包括使用、复制、修改、合并、发布、分发和/或出售本软件和相关文档文件（“软件”）副本的无限制权利，并允许本软件所提供给的任何人进行上述操作，前提是满足以下许可条件。

  1. 上述版权声明和该许可声明（包括下面的免责声明）将包括在本软件的所有副本或重要部分中。

  2. 未经事先书面同意，版权所有者的名称不得用于支持或促销从该软件衍生的产品。

该保证的免责声明是本许可证的关键部分。

只有在认可该免责声明的前提下对本软件的使用才能得到授权。本软件由版权所有者按“现状”提供，不做出任何明示或暗示的保证，包括但不限于表明本软件适销性和适合特定用途以及不侵犯第三方权利的保证。在任何情况下，对于因使用本软件或本软件性能导致的或与此有关的任何权利主张，任何直接、间接的或特殊性的损害，或任何因使用、数据或利润的损失而导致的损害，无论是否涉及合同、疏忽或其他侵权行为，版权所有者概不负责。版权所有者不作任何有关本软件不侵犯任何其他实体的专利或其他知识产权的保证。每个版权所有者不对用户承担其他实体基于侵犯知识产权或其他权利而提出的权利主张承担责任。作为行使下面授予的权利的一个条件，每个用户要承担遵守其他任何知识产权的全部责任。本软件不具有容错性，并且其并非旨在用于关键任务系统（如核设施、飞机导航或通讯系统、空中交通管制、直接生命维持系统或武器系统），在此类环境中本软件或系统如果出现故障，将直接导致死亡、人身伤害或严重的物理或环境损害（“高风险活动”）。版权所有者不对适合高风险活动做出任何明示或暗示的保证，并对此做出免责声明。

商标

QuickScan 是商标，Captiva 是 Captiva Software Corporation 的注册商标。

KODAK 是 Eastman Kodak Company 的商标。

TWAIN Toolkit

TWAIN Toolkit 按原样分销。TWAIN Toolkit 的开发者和分销商明确拒绝作出所有默示的、明示的或法定保证，包括但不限于针对适销性、不侵犯第三方权利和适用于某特定目的作出的默示保证。对于因复制、修改、发布或以其他方式使用 TWAIN Toolkit 而造成的任何损害，无论是直接的、间接的、特殊的、附带的还是后果性的，开发者和分销商均不负责。


技术支持

如有任何关于使用 ABBYY FlexiCapture 9.0 疑问，请查阅其随附的帮助主题和用户指南中的详细功能描述。也可浏览我们网站 www.abbyy.com 上的技术支持部分，在其中您可找到相应的答案。

为了为您提供专业建议，我们的技术支持服务中心要求您提供以下信息：

  • 姓、名和父名
  • 组织名称
  • 电话（传真、电子邮件地址）
  • 安装包的序列号
  • Build 号（请参阅帮助>关于 ABBYY FlexiCapture…）
  • 带有完整错误消息文本的常见问题描述（如有）
  • PC 和处理器类型
  • Windows 操作系统版本
  • 您认为重要的其他信息。
ABBYY 办公室地址和联系详细信息


如何购买 ABBYY FlexiCapture 9.0

要提交 ABBYY FlexiCapture 订购单或询问任何相关的问题，请联系 ABBYY 区域办公室。


ABBYY 办事处

ABBYY Russia | 电话： +7 495 783 3700 传真：+7 495 783 2663 邮寄地址：Russia, 127273, Moscow, P.O.box 32, ABBYY 营业地址：Moscow, ul.Otradnaya 2B, str.6, Otradny Business Centre 电子邮件：sales@abbyy.ru 技术支持：support@abbyy.ru 网站：http://www.abbyy.ru 地图
ABBYY USA | 电话：+1 408-457-9777 传真：+1 408-457-9778 地址：880 North McCarthy Blvd., Suite #220 Milpitas, CA 95035, USA 电子邮件：sales@abbyyusa.com 技术支持：support@abbyyusa.com 网站：http://www.abbyy.com
ABBYY Ukraine | 电话：+380 44 490 9999 传真：+380 44 490 9461 地址：P.O.Box 23, 02002 Kiev, Ukraine 电子邮件： forms@abbyy.ua 支持电话：+380 44 490 9463 支持电子邮件： formsupport@abbyy.ua 网站： http://www.abbyy.ua
ABBYY Europe GmbH | 电话：+49 (0)89 511 159 0 传真：+49 89 (0)511 159 59 地址：Elsenheimerstraße 49, 80687 Munich, Germany 电子邮件： sales_eu@abbyy.com 支持电子邮件： support_eu@abbyy.com 网站： http://www.abbyy.com http://www.abbyy.de http://www.france.abbyy.com
ABBYY UK Ltd. | 电话：+0870 600 0231 传真：+01344 392 611 地址：Abbey House, Grenville Place, Bracknell RG12 1BP, United Kingdom 电子邮件： sales_UK@abbyy.com 支持电子邮件： support_eu@abbyy.com 网站： http://www.abbyy.co.uk
ABBYY Japan | 电话：+81-42-795-1901 传真：+81-42-795-1901 地址：658-1 Tsuruma, Machida-shi, Tokyo 194-8510 电子邮件： sales@abbyyusa.com 支持电子邮件： support@abbyyusa.com 网站： http://www.abbyy.com
ABBYY Taiwan | 电话：+886-2-2655-0556 传真：+886-2-2655-2339 地址：Room #524, 5Fl, Building E, No.19-11, Sanchong road, Nangang District, Taipei 115, Taiwan, R.O.C. 电子邮件： sales@abbyyusa.com 支持电子邮件： support@abbyyusa.com 网站： http://www.abbyy.com


最终用户许可协议

ABBYY FlexiCapture 9.0

重要事项！在安装、复制和/或使用本产品之前请仔细阅读以下条款。安装、复制或使用本产品，即表明您接受这些条款。

本 ABBYY 最终用户许可协议（“EULA”）是您（附有本 EULA 的上述确定的 ABBYY 软件产品[包括任何和所有相关介质、打印材料和“在线”或电子文档（统称为“软件”）的最终用户）与 ABBYY 之间签订的一份法律协议。

通过安装、复制或以其他方式使用本软件，即表明您确认您已阅读并理解本 EULA，并同意受其条款约束。

该软件受版权法和国际公约条款保护。您同意本 EULA 与您签署的任何书面协议一样均可执行。

本 EULA 在您选择“我接受许可协议条款”选项并单击“软件安装程序中的“下一步”以接受本协议所有条款的日期生效。此事件日期即为生效日期。

如果该软件随附了许可协议的硬拷贝，那么在本 EULA 的文本与许可协议中的文本出现内容不一致的情况时，以许可协议中的文本为准。

如果您不同意本 EULA 的条款，不要安装和使用该软件，请选择“我不接受该许可协议的条款”选项并单击软件安装程序中的“取消”。

定义：

“软件”应指 ABBYY FlexiCapture 9.0 软件，它包括一组计算机程序、数据库和文档（可能是书面或电子形式提供），受版权法保护。

“软件组件”应指软件的任何组成部分，包括但不限于软件所含的任何计算机程序。

“计算机”应指带有一个或多个 CPU 内核的电子设备，可接受数字或相似形式的信息，并根据一系列指令操纵该等信息以获取特定结果。

“许可证”应指 ABBYY 授予您的非专属权利，以允许您根据本 EULA 条款安装和使用该软件。

“软件激活”应指根据该软件文档和您的许可范围使所安装的软件完全可正常运行的程序。

“ABBYY”应指

本 EULA 第 16.1 条适用时，指 ABBYY USA Software House Inc.（其注册地址为：880 North McCarthy Boulevard, Suite 220, Milpitas, California 95035, USA）；

本 EULA 的第 16.2 条适用时，指 ABBYY Europe GmbH（注册地址为：Elsenheimerstr.49 80687 Munich）；

本 EULA 的第 16.3 条适用时，指 ABBYY UK Ltd.（注册地址为：Heathrow Business Centre, 65 High Street, Egham, Surrey TW20 9EY, United Kingdom）；

本 EULA 的第 16.4 条适用时，指 ABBYY LLC（注册地址为：ul.Perovskaya dom 22, korpus 1, 111398, Moscow, Russia）；

本 EULA 的第 16.5 条适用时，指 ABBYY Software House Ukraine（注册地址为：31, Degtyarevskaya st., Kiev, Ukraine 03680）；

在其他所有情况下，则指 ABBYY Solutions Ltd.（注册地址为：Michail Karaoli 2, Egkomi, CY 2404, Nicosia, Cyprus）。

“ABBYY Group”应指 ABBYY 及其所有关联公司。

“ ABBYY 关联公司”应指通过一个或多个中介人直接或间接控制、受控于或共同受控于 ABBYY 的某个实体。

“您”、“您的”和“最终用户”意指并包括获取并以自身名义使用该软件的任何个人和/或任何法人实体。

“ABBYY 合作伙伴”应指根据与 ABBYY 的协议提供该软件及其使用权的法人实体，该协议授予该等法人实体执行该等活动所需的权利。

1. 许可证授权

1.1. 在您遵守本 EULA 条款的前提下，ABBYY 授予您非专属的有限权利（“许可”）以安装和使用该软件的功能，包括该软件中所含全部图像、照片、动画、音频/视频组件、音乐、文本和 applet，以及如下所述随附的打印材料和该软件的所有副本。下述所有条款同时适用于该软件整体及其所有组件。

1.2. 如果第 15.4 条适用且您是法人实体，则您只能在您所注册的国家/地区使用该软件，除非您与 ABBYY 之间另行签订的协议中有其他规定。

2. 许可证

2.1. ABBYY 作出以下陈述、保证和担保：ABBYY 有充分的权利、职权、法定资格、能力和权限许可并分发该软件，包括该软件中所含全部图像、照片、动画、音频/视频组件、音乐、文本和小程序，以及随附的印刷材料和该软件的所有副本。

2.2. 该软件中未包含但可能通过使用该软件而访问的内容所有所有权和知识产权，均是各内容所有者的财产，可能受适用的版权法或其他知识产权法和国际公约保护。本 EULA 并非意欲转让该等知识产权的所有权。

2.3. 该软件包含属于 ABBYY 和第三方的有价值的商业秘密和机密信息，这些信息受版权保护，包括但不限于美国版权法、俄罗斯联邦法律、国际公约条款以及使用该软件所在国家或地区适用的法律。超出或违反本 EULA 的条款对该软件作出的任何使用，均应构成违反 ABBYY 和/或第三方知识产权，应将因此可撤销根据本 EULA 授予您的使用该软件的所有权利。

2.4. 您确定，该软件经过保护可防止未授权的复制和无限制的使用，其可能包括提供了该等保护的软件或硬件保护密钥（以下称为“许可密钥”）。您所接受的该软件受到所有该等保护。

2.5. 许可范围可能取决于在订购该软件期间指定的多种因素：可用功能的设置、允许在网络中运行软件组件的数量和类型、该软件所用的 CPU 数量、可处理的最多页数及到期日期等。所有此信息和其他信息均编码在许可密钥中。许可密钥技术限制了对该软件的使用，反映了您所订购的许可的范围。

2.6. 您可以永久转让该软件，但仅限一次，并且只能直接转让给另一最终用户。该转让必须包含该软件所有部分（包括所有软件组件、介质和打印材料、任何升级和本 EULA）。这种转让不能通过托人代售的方式或任何其他间接的转让方式进行。该等一次性转让的受让人必须同意遵守本 EULA 的条款，包括不得进一步转让该软件的义务。如果转让了该软件，则必须从所有安装了该软件的计算机卸载该软件。

2.7. 除了第 2.6 条中的规定，您不得向任何他人转让或发布该软件，包括根据本协议向您授予的任何权利和/或与该软件有关的任何其他权利。在出现该等转让或发布时，ABBYY 有权终本 EULA。

2.8. 本 EULA 并未向您授予与 ABBYY 的任何商标有关的任何权利。

2.9. 权利的保留。ABBYY 保留未明确授予的所有权利。

3. 对该软件的使用

3.1. 您可根据您的许可范围使用该软件。

3.2. 您可在任意数量的计算机上安装该软件。

3.3. 在您的许可所允许的范围内，您可同时运行尽量多的该软件的副本。

3.4. 如果您通过使用终端服务（可使您通过网络访问远程计算机上的该软件）访问该软件，则在您的许可所允许的及本 EULA 所规定的范围内，可同时运行尽量多的该软件的副本。

3.5. 只有您的许可密钥已启用“BPO 服务”参数时，您才能使用该软件向任何第三方提供识别和转换服务且/或提供通过使用该软件所获取的结果。

3.6. 如果该软件标有“试用”或“不供转售”，则尽管本 EULA 其他小节中有其他规定，您只能将该软件用于评估或演示。您确认该软件的功能有限，且/或使用期限有限。如果该软件为超时版本，则在过了您的许可范围所允许的指定期限后，将禁用其功能。

3.7. 您不得执行或为他人提供机会执行以下列表中列出的任何活动：

3.7.1. 对程序、数据库和该软件的其他软件组件作出倒序制作、反向汇编和/或反向编译（获取目标代表的源代表），除非适用法律明确允许作出该等活动（尽管有此限制）。如果适用的法律允许这类活动，由此发现的任何信息不得向第三方公开（除非法律规定需要进行公开，且这类信息必须立即报告给 ABBYY）。所有这类信息应视为 ABBYY 的机密和专属信息。

3.7.2. 修改、改编（更改软件以使其适用于最终用户硬件）或转换该软件，包括更改该软件中包含的应用程序和数据库目标代码，但该软件提供并在文档中描述的更改之外。

3.7.3. 向任何他人租赁、出租、再许可、分配或转让本协议授予您的任何权利和与该软件相关的其他权利，或者授权将该软件的全部或任何部分复制到其他计算机上，除非与 ABBYY 的单独协议中另有规定。

3.7.4. 使无权使用该软件且与您共用多用户系统的任何人能够使用该软件。

3.7.5. 删除、更改或掩盖该软件上按交付给您时的原样显示的任何版权、商标或专公告。

4. 双介质软件

4.1. 您可以通过多种介质接收该软件，包括通过因特网下载。不管您收到的介质数量如何，均会根据本 FULA 许可您使用该软件。

5. 限制

5.1. 您确认该软件受到保护，禁止对其进行未授权的复制和/或使用。您只有激活该软件才能行使本 EULA 授予您的对该软件的使用权。

5.2. 本 EULA 规定了管辖该软件使用的所有使用期限和限制，除非在与 ABBYY 的单独协议中另有规定。

6. 最终用户数据库

6.1. 您可为该软件中包含的程序创建您自己的数据库，前提是该软件提供了该等功能且其文档也描述了该功能。

7. 该软件的重新发布

7.1. 除第 2.6 条中规定的之外，严禁对该软件作出任何重新发布。重新发布包括但不限于，向第三方授予访问权、出租、租赁或出借该软件。

8. 维护和技术支持

8.1. ABBYY 或其合作伙伴可根据本 EULA 附录 A 中条款的规定为您提供维护和技术支持服务，除非您与 ABBYY 之间或您与 ABBYY 合作伙伴之间另有其他协定。

9. 有限保证

9.1. ABBYY 保证在您购买该软件所在国家或地区的法定最短保证期内（从购买日起），在正常使用下，承载该软件的介质（如有）无材质和工艺方面的缺陷。如果该软件是根据第 15.4 条购买的，该期限为从购买日起的三十（30）天。

9.2. 该软件及其任何更新或升级按“原样”交付给您，ABBYY 不作出任何类型的保证。ABBYY 并不且无法保证您使用该软件可能获得的性能或结果。除您所在司法区域对您适用的法律要求不能免除或限制的任何保证、条件、陈述或条款之外，ABBYY 及其合作伙伴不针对任何事项（包括但不限于不侵权第三方权利、适销性、完整性、质量满意度或符合某特定用途，或该软件无错误、符合您的要求或该软件兼容于其他任何软件或硬件）作出任何保证、条件、陈述或条款（无论是根据成文法、普通法、惯例、习俗或其他法规作出的明示或默示保证）。有关该软件质量和性能的所有风险应由您承担。

9.3. ABBYY 不针对该软件可能嵌有的任何第三方软件产品作出任何保证。

10. 责任限制

10.1. 在任何情况下，对于因使用该软件引起的和/或与之相关的任何损害、业务中断，任何类型（商业或其他性质）的数据或信息丢失、索赔或任何开支或任何后果性的、间接的或附带的损害或任何利润损失或可节省费用的损失，或由该软件中可能存在的错误或排版错误所引起的损害，ABBYY 概不负责，即使 ABBYY 代表已被告知有可能遭受该等损失、损害、索赔或开销或任何第三方提出的任何权利主张。在您所在管辖区适用法律允许的范围内，前述限制和免除事项仍适用。ABBYY 在本 EULA 项下或与之相关的唯一全部赔偿责任不得超过已支付的该软件初始购买价（如有）。有关进一步的信息，请查看本 EULA 第15条管辖区特定信息。

10.2. 对居住在德国或奥地利的用户的责任限制
如果您在德国或奥地利获得该软件的副本，并且您在该等国家长期居住，则：

10.2.1.在受第 10.2.2 条规定约束的前提下，ABBYY 针对损害所负有的法定责任应限制如下：(i) ABBYY 所负有的赔偿责任不得超过在签订购买协议之时通常可预测的针对因轻微过失而违反实质性合同义务所造成的损害赔偿金，并且 (ii) ABBYY 不对因轻微过失而违反非实质性合同义务所造成的损害负责。

10.2.2.第 10.2. 条中规定的责任限制不得适用于任何强制性法定责任，特别是德国产品责任法规定的责任、承担特定担保的责任或对刑事犯罪所导致的人身伤害所负有的责任。

10.2.3.您应采取一切合理措施来避免和减少损害，特别是您应根据本 EULA 规定备份该软件的副本和您的计算机数据。

11. 嵌入式字体

11.1. 字体程序受版权保护，版权所有者可能会规定限制字体程序使用的条件。其中一个条件可能是，您需要字体程序的许可副本才能将字体嵌入到 PDF 文件中。在任何情况下，ABBYY 均不对您使用嵌入式字体所引起或与之相关的任何损害负有责任。

12. Adobe® PDF Library

12.1. “Adobe 软件”应指 Adobe® PDF Library for Windows 2000, XP 和相关文档及其任何升级、修改版本、更新、补充和副本。该软件使用 Adobe 软件将 PDF 文件转换为图像文件。

12.2.许可授予和限制。ABBYY 授予您非专属的权利根据本 EULA 条款使用该软件中所含 Adobe 软件。您可以制作该软件中所含 Adobe 软件的一个备份副本，前提是该备份副本不在任何计算机上安装或使用。

12.3.知识产权。该软件中含有的 Adobe 软件归 Adobe 及其供应商所有，其结构、组织和代码是 Adobe 及其供应商的有价值的商业秘密。Adobe 软件 还受美国版权法和国际公约条款的保护。您不得复制该软件中所含的 Adobe 软件，除非本 EULA 中另有规定。本 EULA 允许您制作的任何副本都必须包含该软件外部或内部显示的相同版权和其他所有权公告。您同意不对该软件中所含 Adobe 软件进行修改、改编、转换、倒序制作、反向编译、反向汇解或以其他方式尝试发现其源代码。除了上述规定，本 EULA 不授予您对 Adobe 软件的任何知识产权。

12.4.字体许可。如果该软件或其中嵌有的 Adobe 软件包括字体软件，则您可以将字体软件或其轮廓嵌入到电子文档中，前提是字体供应商版权所有者允许这类嵌入操作。该软件包中所含字体可以包括 Adobe 和非 Adobe 拥有的字体。您可以完全对 Adobe 拥有的任何字体执行嵌入操作。

12.5.保证。ABBYY 并不且无法保证您通过使用该软件中嵌有的 ADOBE 软件所能获取的性能和结果。

12.6.出口规定。您同意不将该软件中嵌有的 Adobe 软件运输、传输或出口到美国出口管理法或任何其他出口法律、限制或法规（统称为“出口法律”）所禁止的任何国家或地区，也不以该等出口法律所禁止的任何方式对其进行使用。此外，如果该软件中嵌有的 Adobe 软件根据出口法律被确定为出口受控项，您陈述并保证您不是禁止通商国的公民，也不在禁止通商国境内，并且出口法律未禁止您接收该软件中嵌有的 Adobe 软件。授予使用该软件中嵌有的 Adobe 软件的所有权利时基于以下条件：如果您未能遵守本 EULA 条款，您将丧失该等权利。

12.7.商标。Adobe 和 Adobe PDF Library 是 Adobe Systems Incorporated 在美国和/或其他国家或地区的注册商标或商标。

13. PixTools® Scan 运行时库。

13.1. “EMC 软件”应指定 PixTools Scan 运行时库、第 1 级 ISIS 驱动程序、第 2 级 ISIS 驱动程序和第 3 级 ISIS 驱动程序。该软件可能使用 EMC 软件通过 ISIS 接口在扫描仪进行通信。

13.2. 许可授予和限制。ABBYY 授予您非专属的权利根据本 EULA 条款使用该软件中嵌有的 EMC 软件。

13.3. 知识产权。该软件中嵌有的 EMCe 软件归 EMC Corporation 及其供应商所有，其结构、组织和代码均是 EMC Corporation 及其供应商的有价值的商业秘密。EMC 软件 还受美国版权法和国际公约条款的保护。您不得复制该软件中嵌有的 EMC 软件。您同意不对该软件中所含 EMC 软件进行修改、改编、转换、倒序制作、反向编译、反向汇解或以其他方式尝试发现其源代码。除了上述规定，本 EULA 不授予您对 EMC 软件的任何知识产权。

13.4. 保证。
ABBYY 并不且无法保证您通过使用该软件中嵌有的 EMC 软件所能获取的性能和结果。
在任何情况下，对于任何后果性、间接的、或特殊性的损害，包括任何利润损失或可节省的开支损失或第三方提出的任何权利主张，EMC CORPORATION 或其供应商概不负责。
某些州或管辖区不允许排除或限制附带的、后果性的或特殊的损害，因此上述限制可能不适用您。您可拥有其他权利，该等其他权利可能因州或管辖区而异。

13.5. 商标。
ISIS 和 PixTools 是 EMC Corporation 在美国和/或其他国家或地区的注册商标或商标。

14. 出口规定

14.1. 不得违反购买该软件或以其他方式获得该软件所在国家或地区的法律中任何出口条款而出口或再出口该软件。此外，您陈述并保证适用的法律未禁止您接收该软件。

15. 适用法律

15.1. 如果在美国、加拿大、墨西哥、中美洲、日本或台湾获得该软件，则本 EULA 应受美国加里福尼亚州的法律管辖并依其解释。对于因本 EULA 和/或该软件可能引起的任何纠纷，您同意将其提交在加里福尼亚州圣塔克拉拉郡的联邦和/或州法庭进行审判。

15.2. 如果在奥地利、比利时、丹麦、芬兰、法国、德国、希腊、希腊、意大利、卢森堡、荷兰、葡萄牙、西班牙、瑞典或本 EULA 第 15.3 或 15.4 条中未提到的其他任何欧盟成员国，或在英吉利海峡、冰岛、列支敦士登、挪威或瑞士获得该软件，则本 EULA 应受在慕尼黑生效的德意志联邦共和国的实体法管辖并依其解释，并且德意志联邦共和国慕尼黑的具有相关司法权的法庭应对与本 EULA 相关的所有纠纷具备裁判权。

15.3. 如果在大不列颠及北爱尔兰联合王国、爱尔兰共和国获得该软件，则本 EULA 应受英格兰和威尔士的法律管辖并依其解释，并且各相关方接受英格兰和威尔士法庭的审判。

15.4. 如果在俄罗斯、白俄罗斯、哈萨克斯坦或其他任何独联体国家（乌克兰和摩尔多瓦除外）获得该软件，或在拉脱维亚、立陶宛或爱沙尼亚购买该软件，则本 EULA 应受在俄罗斯联邦生效的实体法管辖并依其解释。

15.5. 如果在阿尔巴尼亚、波斯尼亚、黑塞哥维那、保加利亚、克罗地亚、捷克共和国、匈牙利、以色列、马其顿、波兰、罗马尼亚、斯洛伐克、斯洛文尼亚、土耳其、塞尔维亚、黑山、乌克兰或摩尔多瓦获得该软件，由本 EULA 应受乌克兰法律管辖并依其解释。

15.6. 如果第 15.4 条适用，并且您是法人实体或个体经营户，与本 EULA 相关的所有纠纷应由俄罗斯联邦莫斯科仲裁法庭进行审判。如果第 15.4 条适用，并且您是个人，与本 EULA 相关的所有纠纷应由俄罗斯联邦莫斯科彼得罗夫斯基区域法庭进行审判。

15.7. 如果第 15.5 条适用，并且您是法人实体或个体经营户，所有一切因该协议引起或与之相关的纠纷、争议或意见分歧均应根据乌克兰工商会的国际商业仲裁的仲裁规则和程序进行仲裁而加以最终解决。该法院的裁决是终局的，对双方均有约束力。如果第 15.5 条适用，并且您是个人，与本 EULA 相关的所有纠纷应提交乌克兰基辅市的舍甫琴科夫斯基区域法庭进行审判。

15.8. 本 EULA 不受任何管辖区的法律冲突规则或《联合国国际货物销售合同公约》管辖（明确排除适用上述公约）。

15.9. 如果在第 15.1 － 15.5 条中未指定的国家或地区购得该软件，本 EULA 应受您购买该软件所在国家或地区的实体法管辖并依其解释。

16. 条款

16.1. 本 EULA 在生效日期生效。除非您与 ABBYY 之间另有协定或本 EULA 另有规定，本 EULA 将在该软件整个版权期限内有效。

16.2.您可以通过销毁该软件及随附的文档和所有相关副本来终止本 EULA。

16.3.如果您未能遵守本 EULA 的条款，在不损害您的任何其他权利的前提下，ABBYY 可以终止本 EULA。如果出现该等事件，您必须销毁该软件的所有副本及其所有组件。该等终止并不免除您为该软件和/或维护付款的义务。

16.4.无仍因任何原因终止了本 EULA，条款 2.3、2.8、2.9、3.7、7、9.2、9.3、10、15、18.2 和 18.3 仍然有效，但这并不暗示或造成在终止本 EULA 之后继续使用该软件的任何权利。

17. 政府使用

17.1. 如果该软件由美国政府或美国政府的任何部门使用，以下额外条款适用：(1) 美国联邦采购法的“数据权利－常规”条文 52.227-14 中定义的受限计算机软件；以及 (2) 政府的任何使用、复制或披露行为受到 DFARS 252.227-7013 “技术数据和计算机软件权利”条文第 (c)(1)(ii) 节中规定的限制。

18. 一般规定

18.1. 如果本 EULA 的任何部分被视为无效且不可执行，则其并不影响本 EULA 其余部分的有效性，其余部分根据其条款仍然有效完全有效。本 EULA 不应影响作为消费者进行交易的任何一方的法定权利。

18.2. 您同意向 ABBYY 提供您在激活、注册和操作该软件的过程中的个人详细信息。您同意 ABBYY 可以根据适用法律收集、处理和使用您的个人详细信息，前提是保持这些数据的机密性。您提供给 ABBYY 的任何个人详细信息将完全限于 ABBYY Group 内部存储和使用，不会向任何第三方公开（除适用法律要求公开的情况之外）。

18.3.ABBYY 可能向您发送包含产品和公司新闻、特价信息、产品用法建议以及其他产品和公司相关信息的电子邮件（如果您明确同意从 ABBYY 接收这类信息）。您可以随时从 ABBYY 邮件列表中删除您的地址。

18.4.ABBYY 可向您提供打印的材料，包括用户指南。

18.5.本 EULA 项下的酬金是 ABBYY 或 ABBYY 合作伙伴拟定的该软件价格（应根据 ABBYY 或 ABBYY 合作伙伴拟定的付款程序进行付款），或纳入您的硬件购买价格中，或是您因使用完整版本的该软件而应支付的酬金的一部分。对于自然人，本 EULA 可能是免费的。

18.6.如果您因使用该软件而遭受任何索赔或法律诉讼，则应在获悉该等情况后的 3 天通知 ABBYY。您应在收到 ABBYY 的查询后的 七天内采取所有必要的措施为 ABBYY 提供机会参与上述索赔或法律诉讼的听证，并为解决相关的索赔或法律诉令提供所需的信息。

附录 A

维护协议

本附录 A 应是 EULA 的完整组成部分，除非您与 ABBYY 另行签订的协议中另有规定。

1. 定义

1.1. “更新”应指该软件当前版本的增强功能，通常包括错误修正。

1.2. “升级”应指用于替代 EULA 中目前许可给您的主要或次要版本的该软件的下一版本（例如，1.5 将替代 1.0，2.0 将替代 1.x）。

1.3. “错误”应指根据文档列出的规格使用该软件时出现的性能故障。应识别以下三种类型的错误：

1.3.1. 优先级 1 错误应指没有解决方案的问题，您所在场地的生产将停止，包括显示“内部程序错误”、“内存不够”、“违反访问权”、“常见保护故障”、 “常见保护错误”的错误及“除以零”消息；

1.3.2. 优先级 2 错误应指可为其提供解决方案的故障；

1.3.3.优先级 3 错误应指不妨碍您所在场地的生产的小问题。

1.4. “支持服务”应指 ABBYY 或其合作伙伴针对您所报告的错误向您提供的服务。

1.5. “升级保证”应指向您授予接收升级权的维护部分。

2. 维护

2.1. 维护可能包括发送更新、升级保证和支持服务或其任何组合。

2.2. 维护期限是十二 (12) 个月的初始期限，从发运或交付该软件的日期起。

2.3. 如需延长维修期限，则需要从 ABBYY 或其合作伙伴获服该等延期。如果第 15.2 条或第 15.3 条适用，当您在维护期限终止之前的 45 天内未取消维护时，无需作出进一步声明，维护期限将会延长 12 个月的期限。必须针对该等取消作出书面声明。

2.4. ABBYY 或其合作伙伴可能另行向您提供特定维护条款。

2.5. ABBYY 保留不时自行决定更改维护的格式和内容的权利。

2.6. 作为维护的一部分向您提供的该软件的任何补充代码应视为该软件的一部分，并受该 EULA 条款约束。

3. 更亲和升级保证

3.1. 升级和更新就通过光盘和/或电子方式（通过 FTP）交付。运输费用（如有）应由您支付。

3.2. 如果您购买了维护的“更新”部分，则您有权从 ABBYY 或其合作伙伴收到更新。ABBYY 或其合作伙伴将尽快向您提供该软件的更新。

3.3. 如果您购买了维护的“升级保证”部分，则您有权从 ABBYY 或其合作伙伴收到升级。ABBYY 或其合作伙伴将尽快向您提供该软件的升级。

3.4. 如果您开发了包含该软件或其一部分或与该软件相集成的任何应用程序，则此应用程序的任何新的大型发行应包括在该等发行之前的三 (3) 个月内 ABBYY 向您提供的该软件的最新更新（或最亲更新，如果该等更新是在该等发行的三 (3) 个月以后发行的）。

4. 支持服务

4.1. ABBYY 或其合作伙伴应提供支持服务以解决优先级 1 错误。

4.2. 如果您购买了维护的“支持服务”部分，则 ABBYY 或其合作伙伴应在十二 (12) 个月的期限内针对多达八 (8) 次涉及优先级 2 和优先级 3 错误的请求提供支持服务。在此期限内，对于涉及优先级 2 和优先级 3 错误的任何附加请求所提供的支持服务应另行收取费用。

4.3. ABBYY 或其合作伙伴将在正常工作时间内通过电话或电子邮件提供与该软件相关的支持服务。

4.4. ABBYY 或其合作伙伴同意作出商业上合理的努力在正常发行时间表之外发行该软件的紧急更新，以解决向其报告的任何优先级 1 错误。在事件的正常过程中，可能在后续的发行中修复优先级 2 和 3 错误。紧急更新将仅针对该软件的当前版本发行，以解决优先级 1 错误。

4.5. 报告错误时，您同意向 ABBYY 或其合作伙伴提供查找错误并提供其修复和解决方案所需的支持数据。支持数据应包括问题描述、出现问题的平台和操作系统的标识、引起待发现错误的输入的副本、发现错误时所使用的格式文件的副本及错误所造成的任何机器转储。ABBYY 或其合作伙伴可以将上述信息用于商业用途，包括但不限于产品支持和开发，前提是 ABBYY 或其合作伙伴不以可表明您的个人身份的任何形式利用这类信息。


基本字段属性

可在常规选项卡配置基本字段属性。

在此选项卡上，字段类型显示为名称右侧的图标。

  • 名称： – 字段名称。名称在创建字段时自动分配，并与最接近字段的说明性文本相对应。编辑属性时，可更改默认分配的名称。另请参见如何更改字段名称。
  • 标题： – 将显示在数据表单中的字段的名称。
  • 导出字段值 – 如果想要导出字段值，必须启用此选项（默认启用）。您可能需要禁用此选项，例如，如果此字段的值用于获取已计算字段的值（参见规则校验），且只需导出最终结果。
  • 显示在数据表单中 – 如果必须在数据表单中显示字段，则必须启用此选项（默认启用）。
  • 不得为空 – 如果想要使其成为必填字段，请启用此选项。
  • 只读 – 如果字段仅供查看时访问，请启用此选项，即，操作员无法修改其值。对于必须使用规则自动计算其值的字段，您可启用此选项，例如，对于您计划在其中保存总和或组合其他字段的字段（参见规则校验）。
  • 索引字段 – 如果您期望使用此字段建立文档索引，请启用此选项。处理文档时，您将可为每个文档显示此字段的值，并根据字段值排序和搜索文档。
  • 注释： – 您可输入任何注释。

项目符号 字段属性


术语表

A

ABBYY FlexiCapture

各种文档类型单流数据输入的软件解决方案 - 结构化（固定表单）、半结构化（弹性表单和文档）和非结构化（自由格式文档）。

ABBYY FlexiLayout Studio

可用于为文档结构创建弹性描述并进而用于自动文档识别的一种程序。

ABBYY FormDesigner

ABBYY FormDesigner 用于设计机器可读表单的布局。复制并填好这些表单后，就可通过 ABBYY FlexiCapture 自动表单输入系统对其进行处理。表单布局设计是一个重要的阶段，因为所设计的布局的质量（其机器可读性）决定了所有后续处理阶段的效率：扫描、识别、校验和导出。

ADF

自动文档送纸机。一种自动文档送纸设备，可用于扫描任何数量的文档，无需执行附加的手动操作。

B

半结构化文档

包含一组信息字段的文档，这些字段的设计、编号和布局可能因不同的文档实例而相差很大。参见通过 ABBYY FlexiCapture 9.0 处理的文档类型。

标识符

用于从具备相同定位点位置的多个文档定义中选择某种文档定义的静态元素。用于文档定义标识必须在该等静态元素的属性中启用此选项。

表单

由一页或多页组成的文档，需要用手或通过任何其他打印技巧填充。

表单输入

从表单中信息字段进行的数据捕获。

表格

用不一定可见的二维网格排列的数据。此程序处理由带有同类型数据的各列和重复行组成的表格。

表格字段

包含表格的文档定义字段。它是一种复杂字段，每一表格列均表示同一类型的一组字段：文本、复选标记、条形码或图片。

不可识别区域

从识别中排除的图像区域。排除带有说明性文本或使字段识别变得复杂的图片的区域时，需要不可识别的区域。参见从识别中排除区域。

C

彩色背景表单

一种以彩色背景显示所有白色矩形信息字段的表单，在扫描期间该彩色背景将消失。

操作员

肩负有文档输入任务的 ABBYY FlexiCapture 用户：添加图像、执行识别和校验并导出识别的数据。

操作员角色

ABBYY FlexiCapture 9.0 中用户帐户的属性，可确定该用户可访问的数据及可对这些数据执行的操作。参见操作已配置项目。

测试批处理文件

用于文档定义测试和配置的文档批处理文件。文档批处理文件的本地副本用于处理测试批处理文件。参见文档批处理文件。

处理阶段

一种对文档或批处理文件执行某些操作（无论是自动还是由操作员执行）的工作流阶段。 参见处理阶段和队列

词典

用于确定特定数据类型的单词列表。详细信息...

词典在创建数据类型时指定。因此，某字段所附数据类型可确定在识别和校验期间所用的词典。除了通过现成的词典预定义的现有数据类型，程序还允许您附加根据自定义词典创建的数据类型。您可手动键入词典数据，也可从文件中加载。

错误识别的字符

在识别进程中自动分配给字符的状态（如果识别的字符具有相当大的不确定性）

D

dpi

每英寸点数。每英寸点数，一种图像分辨率测量单位。

打字机

一种可识别的文本，表示通过打字机打印的文本。

带下划线的文本

用下划线分隔文本的一种文本标记。显示...

单流数据输入

从类似（打印的）和数字（扫描图像）文档中自动执行的数据提取。

单流文档输入

将硬拷贝文档自动转换为电子表单。

单一文本

不使用任何分隔符将文本插入区域中的一种文本标记。

弹性描述

文档结构的正式描述，用于帮助检测字段。通过 ABBYY FlexiLayout Studio 创建的。文件格式 – *.afl。参见 FlexiLayout。

弹性文档定义

用于处理弹性文档的文档或其节段的定义。通过附加弹性描述而创建。该等文档定义中的字段没有固定位置。其借肋于弹性描述而得以检测。参见创建用于处理弹性文档的文档定义。

导出

一种将已处理数据传输至外部信息系统或文件的过程。

导入配置文件

用于将图像添加至批处理文件的设置组合：导入源、图像处理选项、热文件夹清理选项等。参见图像导入配置文件。

等宽文本

用同一高度和宽度的框框住每个字母的一种文本标记，但框边界在在扫描时将消失。

点矩阵打印机

一种可识别的文本，表示通过点矩阵打印机打印的文本。

定位点

用于文档定义匹配的静态元素，其形式包括：黑方块形、矩形、十字形或直角形。详细信息...

定位点是表单设计的特殊元素，可供系统用于在扫描后执行匹配（消除歪斜、补偿线性和非线性扫描缺陷并计算区域位置）。最可靠的定位点是黑方块形，其通常位于表单的角落。如果图像上没有特殊定位点，则可使用其他静态元素匹配文档定义：分隔符，即垂直或水平线条，例如，表格线条和框等，或清除静态文本，即表单标题、字段签名和说明性信息等。用于文档定义匹配 必须为用于文档定义匹配的静态元素启用此选项。

定位点条形码

表示不用于数据提取的条形码的静态元素。定位点条形码可用于文档定义匹配或标识。

定位点文本

表示出现在空白表单上且不用于数据提取的文本的静态元素。这可能是任何说明性文本或标题。定位点文本可用于文档定义匹配或标识。

队列

组合进任务和/或批处理文件中等待在某一处理阶段中得以处理的文档。参见处理阶段和队列。

对比度

图像上最亮区域与最暗区域的比率。

多页文档

由多页组成的文档。

F

FlexiLayout

对 flexible document 结构的描述。此描述是通过 ABBYY FlexiLayout Studio 设计的，可导出至 ABBYY FlexiCapture。FlexiLayout 是一种可用于检测和识别弹性表单中字段的结构。

反转的图像

带有深色背景和浅色文本的图像。

非结构化文档

包含自由表单中显示的信息的文档。该等文档的示例包括：合同、信函、订单和图形。参见处理非结构化文档。

分辨率

图像参数。分辨率单位是每英寸点数 (dpi)。

规则

对程序自动检查的字段数据作出的某些限制条件。参见规则校验

分隔符

呈垂直或水平线条形状的一种机器可读表单元素

分类器

在 FlexiLayout Studio 中创建的一种项目，用于在应用文档定义之前初步标识页面，且用于选择匹配的 FlexiLayout 或布局备选项。

符号集

所描述语言中使用的一组字符。

附录

文档程序集中不包含字段的页面。不从这些页面提取数据，但可将其另存为图像或 PDF 可搜索文件。参见为带附录的文档创建文档定义

复选标记

一种带有填表人所填标记（勾号、十字线、点或涂有墨水等）的机器可读表单元素。

复选标记字段

包含复选标记的文档定义字段。

复选标记组

将多个相互邻近的复选标记组合在一起的机器可读表单元素。可在复选标记组中选择一个或多个复选标记。

复选标记组字段

包含复选标记组的文档定义字段。

G

工作批处理文件

用于数据输入的文档批处理文件。只有发布的文档定义才用于处理工作批处理文件。参见文档批处理文件。

固定表单

带有固定信息字段的文档，这些字段的格式、编号和布局已严格定义，不因文档实例而异。

固定文档定义

用于处理固定表单的文档或其节段的定义。固定文档定义中的字段有固定的位置。

关键字段

可用于自动将页面程序集导入文档的字段。同一文档中所有页面上的关键字段值必须相同。

管理员

被授权配置文档输入程序的 ABBYY FlexiCapture 用户：创建和编辑文档定义并导入配置文件。

光学标记识别 (OMR)。

一种确定表单的标记字段中是否存在标记的过程。

光栅表单

信息字段显示为灰色背景中白色矩形的表单，由光栅线条或由光栅线条分隔的矩形组成。

光栅线条

由均匀隔开的点组成的线条。

规则校验

根据预设规则自动检查识别的数据。参见规则校验。

H

黑白线表条单

一种表单，其信息字段边界由扫描时不显示的普通线条形成。

黑方块形

呈黑方块形的定位点。

忽略的字符

出现在单词中间的字段（例如，项目符号）或软连接字符（制表符等），其存在不会妨碍程序将该单词归类为可识别的数据类型。详细信息...

这些字符从单词中排除，即，没有这些字符的单词归类为特殊数据类型。

灰色背景表单

一种以灰色背景显示所有白色矩形信息字段的表单，在扫描期间该灰色背景将消失。

I

ICR

智能字符识别。用于批量处理填充有手印字母和数字的文档的技术或系统，即，识别手印字符。

J

机器打印的文本

一种使用分辨率至少为 300 dpi 的印制设备或激光或喷墨打印机打印的可识别文本。

机器可读表单

专用于自动输入的表单。它包含成功处理其本身所需的工作元素（定位点、条形码和线条等）。

角度

呈角形的定位点。

校验

一种由操作员检查已识别数据的过程。将识别结果与任何文档部分的原始图像进行对比，即可执行校验。在 ABBYY 产品中，鉴于人类的以下基本身心特性，已实施了校验技术：习惯的形成、技能发挥、正直性和感知目的。参见校验识别的数据。

禁用字符

您确定将不出现于正在识别的数据中的字符。详细信息...

指定该等字符可大大提升识别速度和质量。例如，当识别纯大写字母文本，可将所有小写字母指定为禁用字符。

静态元素

用于文档定义匹配和标识的不可识别元素。该等元素包括：定位点、定位点文本、分隔符和定位点条形码。

纠正的复选标记

误选中后用墨水涂去的复选标记。 允许纠正 如果为复选标记字段启用了此选项，程序则将用墨水涂掉的复选标记识别为未选定。

K

框式文本

用框分隔文本的一种文本标记。显示...

L

亮度

一种光敏感性阈值，超过该阈值时扫描仪就会将灰度中间色检测为白色。

M

没有区域的字段

在文档定义中检测到的但没有图像中区域的字段。参见没有区域的字段。

描述文件

一种辅助文件，可定义在从热文件夹添加图像时形式批处理文件的方式。有关详细信息，请参见描述文件。

O

OCR

光学字符识别。打印文本的光学识别。

OMR

光学标记识别。标记的光学识别。借助于此技术，ABBYY FlexiCapture 可识别高确定性表单上的普通标记（勾号和十字线等），并可正确地标识错误作出但用墨水涂掉的标记。

P

批处理文件类型

批处理文件属性，用于定义如何处理相应批处理文件中的文档。参见批处理文件类型

R

热文件夹

本地或远程计算机硬盘上的文件夹，用于导入图像。它通常用于定期执行的、无需用户干预的图像上传。参见图像导入配置文件。

任务

待一起处理的属于同一批处理文件的一组文档。取决于项目设置和处理阶段，任务可能包含不同数量的文档。如果某处理阶段需要完整地处理批处理文件，则该整个批处理文件包括在任务中。自动形成的每个校验任务均包含 10 个文档（如果批处理文件包含的非校验文档小于 10 个，则将其全部作为一个任务处理）。

S

扫描

一种使用扫描仪获取纸张表单电子图像的过程。

十字形

呈十字形的定位点。

识别

一种将图像元素与特定字符匹配的过程。

手动输入字段

包含必须从键盘输入的不可识别文本的文档定义字段（例如，由混淆性字母组成的文本）。

手印文本

表示用手书写的特定类型文本的一种可识别文本。

书写风格

因特定组而异的一种书写方式。例如，美国的数字书写方式。详细信息...

此选项用于配置表单中手印字母的书写风格。书写风格的选择取决于执行表单处理的位置（俄国、德国、捷克共和国和美国等）。

梳形上的框式文本

用带有梳形底部边界的框分隔文本的一种文本标记。显示...

数据类型

一种描述可能字段值的已知限制的字段属性。在字段识别期间它用于减少可能出现的识别变量的数量。详细信息...

字段的特性之一是数据类型：数字、日期、文本、姓、名和地址等。数据类型定义一组可在指定字段中出现的单词。

数据类型是一种影响识别质量的重要识别参数。如果正确指定数据类型，则可大大减少错误识别的字符的数量。

说明性文本

一种机器可读表单元素，表示扫描性文本（表单名称、字段名称和字段说明等）。

索引字段

用于在排序和搜索时为文档建立索引的值所属的字段。参见建立字段索引。

T

条形码

一种机器可读表单元素，由一定长度的多个黑白交替和条形组成，可编码数字信息。文档条形码可用于提取信息（条形码字段）或匹配和标识文档定义（定位点条形码）。

条形码识别

将图形条形码图像转换为数字或文本。

条形码字段

包含识别条形码的文档定义字段。

图片

机器可读表单的一种元素，将不对其进行识别，用于以图形对象形式进行的导出（例如，文件）。

图片字段

包含图片的文档定义字段。

图像

硬拷贝文档扫描页的电子图像。

图像导入

一种将图像添加至批处理文件以供处理的过程。从文件和扫描仪添加图像或使用导入配置文件即可执行导入。参见添加页面图像。

图像去斑

移除图像噪声。噪声可能出现在扫描期间，建议移除噪声以更好地识别数据。去斑期间，程序也将移除光栅表单的背景点或边界线。

图像替换

编辑文档定义时用一幅图像替换另一幅图像。

图像旋转

转绕图像中心旋转图像。

W

文本标志

用于文本输入的页面区域的设计。参见输入字段主题中的文本格式化样本。

文本方向

字段中相对于页面的文本方向。

文本识别（OCR，ICR）

将图形图像转换为文本。

文本样本

包含符号集中所有字符样本的文件。

文本字段

用于在填写表单进行文本输入的一种机器可读表单元素。

文本字段标记

分隔文本字段的图形元素：框、梳形和线条。

文档

一个或多个页面图像及从其中提取的数据的组合。

文档错误

如果在文档处理期间发现文档数据与文档结构和指定的字段值限制或控制规则不完全匹配，则所有误匹均将记录在该文档的错误和警告列表中。

文档定义

文档定义定义了标识和处理此类型文档的原则，包括：

  • 文档结构，即对组成此类型文档的各页面的允许顺序的描述。文档结构定义了文档程序集的规则。
  • 文档节段的定义。
  • 字段数据必须符合的规则的列表。
  • 各字段及其签名在数据窗口（数据表单视图）中的位置。
  • 此类型文档的导出设置。
  • 此类型文档的处理设置。

文档定义标识

一种借助于标识符选择必要文档定义的过程。

文档定义发布

允许访问已编辑的新文档定义版本。发布的版本参与从工作批处理文件处理文档，而未发布的本地版本只能参与从测试批处理文件处理文档定义。参见编辑和发布文档定义。

文档定义节段

一种文档定义组件。与包含一组逻辑上完整的字段的一个或多个页面相对应。节段中的字段可跨越相邻的两页（例如，多页表格），而各个节段中的字段集则不跨页。
节段定义可能是弹性或固定的。

文档定义匹配

一种选择文档定义并根据图像匹配其字段的过程。

文档批处理文件

用户组合在一起的一组文档。批处理文件通常包含在单程中扫描的或从特殊文件夹中导入的一堆文档。参阅文档批处理文件。

文档数据

处理（识别、校验和编辑识别结果）文档页面图像后捕获的数据。

X

XFD

XML 表单定义 (*.xfd) – 通过 ABBYY FormDesigner 设计的一种表单特定文件格式。XML 表单定义表单文件用于在 ABBYY FlexiCapture 中创建文档定义。

项目

项目是将文档批处理文件及处理这些文档批处理文件所需的设置组合在一起的单一环境，例如，文档定义、导入配置文件等。参见创建项目。

选择文档节段

一组页面（或单一页面）及其字段，与文档的逻辑完整部分相对应。可使用固定或弹性文档定义描述文档节段。参见为多页文档创建文档定义。

Y

页面

纸张文档页面的图像及其处理结果。

页面布局

一种显示图像上各字段位置的方案。

页面方位

相对于标准对齐的页面位置：从上至下，从左到右。可在页面图像识别期间自动确定页面方向；在此方面，ABBYY FlexiCapture 9.0 允许您指定可能的方向。

有多个区域的字段

图像上由多个区域组成的字段。该等区域可能互相相隔一定的距离，甚至处于不同的页面上。同一字段中所有区域的值可组合一起，并可作为一个字段一起导出。通常用于跨页的对象，例如，较大的表格。参见有多个区域的字段。

有多个实例的字段

用于描述同一类型的多个对象的字段（循环性对象）。基本而言，这些对象处于同一字段，拥有相同的属性。带有多个实例的字段用于避免创建多个相同字段。带有多个实例的字段可导出至独立文件或数据库表格。参见有多个实例的字段。

语言（本地）

确定书写语言及相关的各组区域参数（例如日期或地址书写风格）的字段属性。

允许字符集

正在识别的数据中出现的一组字符。详细信息...

此集由数据类型确定。即，某字段附加的数据类型确定在识别期间所用的字符集。

除了选择此集中包括的字符，您还可配置此集的附加限制参数。例如，您可指定：

  • 您知道将在识别指定字段时不出现的字符 - 禁用字符（例如，您可为可能只出现大写字符的字段将所有小写字母指定为禁用字符）。
  • 可出现在单词中但不影响单词校验的字符 - 忽略的字符（例如，连字符和重音符号等）。

Z

正则表达式

使用一种特殊语言对单词或任何输入的值的结构作出的描述。借助于此程序，您不但可指定一组允许的字符，而且可指定字段内容的结构。在设置文本字段限制或创建自定义数据类型时，您可使用正则表达式描述此结构。参见用于正则表达式的符号集。

字段

一种用于数据提取的文档元素。字段可能是简单的（没有内部结构），也可能是复杂的，例如，每个单元格可视为表格的独立附属字段的表格字段。参见为文档定义创建字段。

字段区域

文档定义中用于数据提取的突出显示的图像区域。

字段校验

一种可用于在字段上下文范围内将识别的字符提交供样验的校验模式。详细信息...

在字段校验模式中，将勾选整个字段上下文范围内的不确定字符。

发送到字段校验 将提交启用了此选项的字段以对其执行字段校验。我们建议将值范围已知或可轻易确定的字段提交供校验。国家/地区或城市名称即是该等字段的示例：我们知道此字段可能拥有的值。

字母位于独立框中

由互为独立的多个框分隔每个字符的文本标记类型。显示...

字母位于框中

由互为相连的多个框分隔每个字符的文本标记类型。显示...

字母位于梳形中

用“梳形”分隔文本的一种文本标记。显示...

自定义数据类型

用户定义的数据类型。参见创建自定义数据类型。

组校验

一种用于将组中标识相同的字符提交供校验的校验模式。详细信息...

发送字符至组校验 将提交启用了此选项的字段以对其进行组校验。

我们建议将数字字段及复选标记中的字符提交以对其进行组校验。


术语表

A B C D F G H I J K L M O P R S T W X Y Z


描述文件

描述文件是一种辅助文件，可定义在从热文件夹添加图像时形成批处理文件的方式。将使用不同的文件集形成批处理文件，具体取决于描述文件的格式。

程序使用以下类型的描述文件：

  1. Captiva QuickScan
    列在描述文件中的所有图像文件均添加至批处理文件中。图像文件在批处理文件中的顺序与在描述文件中相同。
  2. Capture Software for Kodak
    位于 Kodak 批处理文件文件夹中的图像文件将按文件名的升序添加至批处理文件中。
  3. 空文件
    此文件用作显示必须创建新批处理文件的标记。文件内容无关紧要，只有文件名重要。将按字母表顺序从热文件夹添加图像。当找到其名称符合 文件名： 字段中所指定掩码的文件时，系统将创建新批处理文件。因此，如果指定 *.dat 掩码，热文件夹将包含以下文件：
    Contract.dat
    Contract1.jpg
    Contract2.jpg
    Letter.dat
    Letter1.jpg
    Letter2.jpg
    （在找到 Contract.dat 时）将为 Contract*.jpg 文件创建一个批处理文件，（在找到 Letter.dat 时）将为 Letter*.jpg 文件创建另外一个批处理文件。
  4. XML 文件
    这是带有文档化结构的 XML 文件。当不能使用其他三种类型的文件但可生成自定义描述文件时，将使用 XML 文件。列在描述文件中的图像文件均添加至批处理文件中。

    XML 文件必须包含带有子元素 Images 的根元素 Batch。

    反过来，Images 元素必须包括 Images 元素，基编号与被创建的批处理文件中的页数相对应。每个 Images 元素必须包含相应图像文件的 UNC 路径。对于所有 Images 元素，包含图像的文件夹的路径必须相同。

    <Batch>

    ...

    <Images>
    <Image>\\HotFolder\Page1.tif</Image>
    <Image>\\HotFolder\Page2.tif</Image>
    <Image>\\HotFolder\Page3.tif</Image>

    </Images>

    </Batch>

    在此情况下，我们建议对扫描程序进行设置，以便将已扫描的图像放在热文件夹本身当中或放入其第一层子文件夹当中。创建批处理文件时，程序将向其添加列在相应描述文件的 Images 元素中的所有图像。图像将按照其在描述文件中的排列顺序进行添加。

    图像文件在批处理文件中的顺序与在描述文件中相同。


文档定义节段的属性

您可在属性对话框中查看和更改文档定义节段的属性，当您从快捷方式菜单中选择属性…时将打开该对话框。

此对话框包含三个选项卡。

常规选项卡

在此选项卡，您可更改文档节段的名称、输入或编辑描述、在文档中输入或修改节段的最小和最大重复次数。已启用：选项包括文档定义节段及将其从文档处理中排除。有关多面文档及处理节段的详细信息，请参见为多页文档创建文档定义。

FlexiLayout选项卡

如果已将弹性描述附加至节段中，此选项卡将显示其名称：、版本：和注释：。您可附加弹性描述，只需单击加载…按钮，并通过单击断开按钮将其断开。

有关详细信息，请参见创建用于处理弹性文档的文档定义。

图像选项卡
此选项卡列出了节段页面图像的显示参数。以下参数可用：大小、分辨率、打印尺寸和颜色模式。

规则选项卡

此选项卡用于执行带有文档定义规则的操作。您可删除、编辑或创建新规则。

有关详细信息，请参见规则校验。