About ABBYY FlexiCapture

ABBYY FlexiCapture is a software solution for the automatic input of data from hardcopy documents into information systems and databases.

Employing advanced technologies of typed and handprinted character recognition, image processing and document analysis, ABBYY FlexiCapture offers convenient automated extraction of meaningful information from all kinds of documents that are processed in a single flow – structured (fixed) forms, semi-structured (flexible forms and documents) and free-format unstructured documents. ABBYY FlexiCapture prevents the need for labor-intensive and inefficient processing involved in having to sort and reprint information from documents manually.

The basic document processing scenario is as follows:

  1. Documents are placed in the automatic scanner feeder and scanning begins.
  2. Scanned document images are submitted for recognition, at which point the software automatically identifies documents, including multipage documents, locates meaningful fields, extracts data and loads check rules.
  3. If necessary, recognition is followed by visual verification of data and rule error checking.
  4. Recognized and verified data along with electronic copies of documents are saved to a database, an information system, or a file.


New Features of ABBYY FlexiCapture

Ready-to-use Add-on for invoice processing

ABBYY FlexiCapture for Invoices

ABBYY FlexiCapture can be extended with a ready-to-use Add-on which provides additional functionality, pre-defined settings, validation rules, advanced database look-up and UI enhancements specifically tailored for invoice processing.

Features of ABBYY FlexiCapture for Invoices

Import from e-mail

Import from POP3S server

Import from POP3 e-mail server with SSL or TLS encryption is supported.

Import Profiles

Enhancements of the Operator Station UI

Cache-based suggestions for field values

When the operator starts typing a value in a blank field, the software suggests possible values which are generated from the OCR cache for the page. The Operator simply needs to select the correct variant from the list to populate the field.
Fields grouping

Fields on the data form can be grouped together under the common name and with their total sum displayed in order to facilitate verification. Fields group can be setup to automatically collapse and expand depending on condition.

Field snapshots displayed on the data form

Fields of Text, Barcode and Checkmark Group type can be displayed on the data form supplemented with a snapshot (fragment of the original image) to facilitate visual review of data.
Database look-up dialog box

A newly introduced special database look-up dialog box is displayed when an Operator starts to correct the group of fields for which database look up rule is enabled. The dialog box suggests the best fitting records from the database table for selection. It is possible to search through the database records by typing the key word in the field. After the record is selected, all fields of the group are filled with database values. This feature enables quick and accurate filling of multiple interrelated fields by specifying the right value for one major field.

Setup

Rules search and easier-to-use rules setup

Several enhancements have been introduced to make view and setting up of validation rules more convenient and user-friendly. Newly introduced features include the possibility to apply rules depending on condition, flexible rules search and filtering, and rules grouping.
Advanced database look-up settings

Database look-up settings have been significantly extended and got more flexible. The following options have been implemented:

  • Selection of columns and setup of their display order in the advanced database look-up;
  • Selection of columns for display to the user from different database tables;
  • Selection of database fields to substitute from;
  • Generation of the list of possible field values from the database to be displayed while typing the value in the field;
  • Possibility to select a view specifically created by the user as a table.
Data Set (locally stored database version)

ABBYY FlexiCapture enables to establish a connection with the database by means of a Data Set which represents a cached version of the database for which a regular synchronization with the source database can be set up. The use of the Data Set instead of direct database connection enables to eliminate slowdowns while accessing the database and allows an Operator to enter new records in the Data Set and correct the available ones which can be further used while verification of documents.
Export on condition

An option to set up export destination depending on the rule error or value of the particular field has been implemented.
Collapsed New features of ABBYY FlexiCapture 10 not available in ABBYY FlexiCapture 9.0

Import and image processing

Import images from e-mail and via FTP

Images can be added from e-mail inbox, including attachments. Both MAPI and POP3 protocols are supported. When using the MAPI protocol processing stations should be started under the same account as e-mail box owner. Also images can be downloaded from an FTP-server.

Import profiles

Verification

Field verification for groups of checkmarks

Groups of checkmarks for which only one choice is allowed will be sent to field verification in case more than one option is checked. The data verification operator will be able to correct the choice.

Customization

Scripts

Various scripts were implemented, such as recognition script, event handlers etc.

Using scripts in ABBYY FlexiCapture
Custom hot keys

A possibility of specifying shortcuts by the user was added. A user is able to change default hot keys on stations.

Customizing hot keys
Collapsed New features of ABBYY FlexiCapture 9.0 not available in ABBYY FlexiCapture 8.0

Project management

Batch types

A type may be specified for each batch (if no type is specified, a "default" type is assigned). A project may contain any number of batch types. A batch types defines image processing and recognition options, batch integrity checks, default export settings, and how the batches that belong to this type should be processed. Project settings are used for batches of the "default" type.

Document batches
Registration parameters

It is now possible to specify the registration parameters describing batches or documents. These parameters can be later used for image and data export.

Registration Parameters
Priorities

Priorities for documents and batches can now be specified to control processing order.

Analysis and recognition

The order in which Document Definitions are matched

Now you can control the order in which Document Definitions are matched. The following methods can be used to specify the order of matching:

  • Explicitly define the order of Document Definitions in the Document Definitions dialog box
  • For FlexiLayouts: use a classifier to select the required Document Definition
  • For FlexiLayouts: in the Document Definitions dialog box, specify how the appropriate FlexiLayout should be selected
Editing and publishing a Document Definition
Classifier
Updating the version of a Document Definition without re-recognizing it

Now you can update the version of your Document Definition without re-recognizing it. This is possible if on of the followin

g conditions is met:

  • If only the export settings have been changed, in which case the document will be exported using the new settings
  • If the rules have changed, in which case rule validation will be carried out once again

Verification and validation

Verification and validation tasks can now be gotten automatically
Images can be viewed during group and field verification
Files and databases can be used as data sources for rule validation
The database check rule can be disabled for empty fields
Sum calculation rule was added
Recognition reliability level is indicated for the entire batch
Group and field verification settings were added, including the possibility of configuring certainty requirements for specific characters
The initial position of the cursor can be specified for field verification
Entire fields can be optionally highlighted during field verification (useful if the user wants to key in the entire field)
Each type of error is displayed separately. The following types of error are detected:
  • assembly errors
  • format errors
  • rule errors
Verification of recognized data

Export

Auto export

Documents with high recognition quality and without rule or format errors are now exported automatically without user intervention. The required percentage of uncertain characters is specified when setting up the project.

Workflow
Export to multiple destinations

Data and images can be exported to multiple destinations. Some destinations may be marked as critical. If export to a critical destination fails, an error message is displayed. Failure to export to a non-critical destination does not result in an overall export error.

Configuring data export
Setting up file names and locations

Naming templates for files used to store exported data and images, as well as their paths, can be configured with more possibilities. Among the additions is the possibility to recreate folder structure during export from a Hot Folder.

Export File Naming Scheme
Archiving documents with errors

Documents with format or rule errors can be saved in a dedicated storage location. Export of documents with errors is set up in the same manner as export of regular documents.

Configuring data export
Auto delete documents upon export

Exported documents can be deleted if the export has completed successfully. The option to delete the documents manually has been preserved.

Workflow

Maintaining confidentiality

Individual fields on document images can now be redacted (i.e. edited out). For each export, different redaction rules can be specified, thus managing the amount of information visible to different users.

Configuring data export

Options

Batch integrity checks

Scripts can be used to check batches for integrity. Scripts are launched automatically prior to export.

Document batches
Sample scripts for creating custom rules
Normalization scripts

Scripts can be used to correct the information extracted from fields.

Processing entered values
Sample scripts for creating custom rules
Custom scripts

A script triggered by the Verification Operator can be specified for each field.

Custom action
Service fields

A new field type was added - service field. Fields of this type are filled in automatically using the data from the selected source.

Service fields

Supported languages

New OCR languages

OCR support for the following for the following languages has been added:

  • Vietnamese
  • Chinese
  • Korean
  • Japanese


Types of document processed using ABBYY FlexiCapture

ABBYY FlexiCapture is software solution for single-flow data capture from documents of various types.

Various documents can be processed in a single flow. You can also set up the program to process documents of mixed type, e.g. documents that contain both structured and semi-structured sections. The type of documents affects system configuration only, namely the method of creating Document Definitions. The nature of the operator's work is not affected by the type of documents processed.

ABBYY FlexiCapture can be configured for automated input of the following documents, including in a single flow:

Collapsed Structured – fixed forms;

Structured forms are documents containing a set of marked information fields whose formatting, number and layout does not change from one document instance to the next. Such documents are called fixed forms. For example, most questionnaires and application forms are fixed forms. Such forms are usually distributed as blank forms and filled out by hand.

To identify a fixed form in a document flow and to extract data from it, you need to create a single fixed layout that will tell the program the location of the fields containing data to be extracted.

Fixed forms created to meet the requirements of automatic input can be processed most effectively. Such forms are called machine-readable forms. To learn more about the requirements for such forms and the methods of creating them, see the section Creating machine-readable forms.

The program includes a convenient tool for designing machine-readable forms – ABBYY FormDesigner (supplied together with ABBYY FlexiCapture). You can read about designing forms with the help of ABBYY FormDesigner in the User Guide and help topics.

The basic stages of creating a Document Definition are described specifically for structured documents.

Note: Fixed forms received by fax can be distorted: their size and the relative positions of their fields may be altered. Due to this, we recommend using a FlexiLayout to increase recognition quality when processing such forms.

Collapsed Semi-structured – flexible forms and documents

These are documents containing a set of information fields whose design, number and layout may vary significantly in different instances of the document. These documents are called flexible. For example, bills are flexible documents, since they often vary both in terms of the number of items and their formatting, due to the fact that they are received from different companies. All bills have a bill number and an amount due for payment, but are located in different places.

To identify flexible forms and to extract data from them, ABBYY FlexiCapture uses a flexible layout (FlexiLayout). A flexible layout is created with the help of a special module called ABBYY FlexiLayout Studio. Details of this module are available in the User Guide and help topics.

The processing of flexible documents differs from the processing of fixed forms only at the stage of creating and loading a layout. For details see Creating a Document Definition for processing flexible documents.

Collapsed Unstructured documents with free-style design.

ABBYY FlexiCapture can be used to process unstructured documents containing information presented in a free style, for example contracts, letters, orders, and graphs. The program can automatically identify unstructured documents as annexes to fixed or flexible forms, or it can identify them with the help of a flexible layout and then export them as PDF searchable files or as graphic files. You can extract index fields from unstructured documents both automatically with the help of a flexible layout and by way of manual input.

A typical scenario for the processing of unstructured documents is when a hardcopy archive needs to be converted into electronic form and there is a requirement to extract two or three index fields in order to organize a quick attribute-based search.

For details see Processing unstructured documents.


Brief description of document processing using ABBYY FlexiCapture

This section provides a general overview of how to process documents using ABBYY FlexiCapture.

The process of using the program is described in more detail in the sections Configuring the program and Operations with a configured project Operations with a configured project.

Overview of program configuration for document processing
Overview of operations with a configured program


Brief description of program settings for document processing

The administrator configures the program for processing certain types of document. To prepare the program for document processing, you need to create:

  1. A project

    A project is a collection of settings related to a specific business process, it includes image import profiles, Document Definitions, and document batches for processing.

  2. One or several Document Definitions

    Creating a Document Definition is the most critical stage in configuring a project. If you plan to process various types of documents in a single flow, you need to create several Document Definitions as part of a single project.

  3. Image import profiles

    Import profiles are created for convenience and to streamline the work of operators. If import profiles are not configured, each time you add images you have to select the import source and configure settings. Import profiles allow you to add images at the click of a button and to switch easily between import sources.

  4. A document batch

    Documents submitted for processing are added to batches. The principle of assigning documents to batches is user-defined: you can process all documents in a single batch or form batches from documents added on the same date or from a batch scanned in a single pass. If you add images for which there are no batches, a batch will be created automatically.

Read more about configuring the program


Creating a project

To process different documents as part of a single project, the project must have several Document Definitions. If document flows do not intersect and their processing settings differ considerably, you can create separate projects for them.

To start, you first need to create at least one project.

To create a new project, start the Project Setup station and select File>New Project…

Read more about creating a project


Overview of creating a Document Definition

Creating a Document Definition is the most critical part of configuring a project and determines the quality of data obtained after processing.

A Document Definition describes the location of document elements and indicates fields to be used in data extraction.

To create a Document Definition, run the Document Definition Wizard:

  1. In the Project Setup Station main window, select Project>Document Definitions…
  2. In the Document Definitions dialog box, click the New… button.
  3. Follow the instructions of the Document Definition Wizard.

The main stages of Document Definition creation depend on the type of documents being processed.

Collapsed The main stages of creating a Document Definition for fixed forms
  1. Create a new Document Definition with the help of the Document Definition Wizard. With the Wizard running, open the document page image that will be used to perform Document Definition marking.
  2. Mark static elements – anchors and identifiers, configuring their properties. Static elements are used for Document Definition matching and identification. Normally, static elements are detected automatically and assigned default properties.
  3. Mark fields on the image. Fields are used for data extraction.
  4. Configure field properties. Field properties both affect the quality of recognition and determine whether field values will be exported and submitted for verification by the operator. They specify the types of data and range of values of a field.
  5. Create Document Definitions for multipage documents: adding pages and repeating all stages for each page.
  6. Configure data export.
  7. If required, you can configure the way data is displayed in the document window, checked against rules, etc.
  8. Test a Document Definition using images of several documents.

Note: If you have created machine-readable forms with ABBYY FormDesigner, instead of the first three stages you only need to import a file with the *.xfd extension. A page image with ready marking will open (or images of several pages if you used ABBYY FormDesigner to create a multipage form). For details see Importing a Document Definition for forms created with ABBYY FormDesigner.

Collapsed Main stages of creating a Document Definition for flexible documents
  1. Create a flexible description (a file with the *.afl extension) using ABBYY FlexiLayout Studio. For details, see the Help Topics of ABBYY FlexiLayout Studio.
  2. Create a new Document Definition with the help of the Document Definition Wizard. With the Wizard running, open an image of a document page and attach a flexible description (the *.afl file you have created). After the Wizard has finished, the field marking will be present on the image.
  3. Configure field properties. Follow the procedure for configuring Document Definition properties for a fixed form.
  4. Configure data export.
  5. If required, you can configure the way data is displayed in the document window, checked against rules, etc.
  6. Test a Document Definition using images of several documents.

For mixed-type documents containing pages with fixed forms and semi-structured sections, you can attach a flexible description as one of the Document Definition sections. Start creating a Document Definition from any section (flexible or fixed) and then add a new section of a different type.

Documents of various types can be processed in a single flow: as part of the same project you can create Document Definitions for both fixed forms and flexible documents and Document Definitions for mixed-type documents. The program selects a Document Definition automatically.

To process documents with annexes, create a Document Definition and enable the option Enable annex pages in Document Definition properties. See Creating Document Definitions for documents with annexes.

Read more about creating Document Definitions


Creating batch types

Documents are processed in batches. Batches are created when documents are imported or scanned. At the same time, each batch is assigned a type.

Batch types predetermines the following document processing parameters:

  • image pre-processing
  • matching Document Definitions with their corresponding documents
  • batch integrity check
  • default batch export
  • batch processing
Batch types
Creating document batches


Workflow Setup

You are here: Introducing ABBYY FlexiCapture > Briefly about using the program > Overview of program settings > Workflow Setup

Processing Settings

Batch processing order is specified for each of the Batch Types. When you create a batch, a certain type will be assigned to it, and the batch processing order will form.

If no Batch Types are created, all batches will be processed using the <Default Settings> configured beforehand (Project>Project Properties…, Workflow).

The batch processing settings are configured on the Workflow tab of the Batch Type Properties dialog box.

Processing settings:

  1. Skip verification and data verification if percentage of characters need verification is equal or less than - if the percent of highlighted characters is lower than specified in the % per document field, the Data verification and Verification stages will be skipped.
  2. For documents to be exported automatically, select the Enable auto export option on the Export Destinations tab of the Document Definition properities dialog box.


Creating import profiles

The operator begins by adding new images to the project: these can be either hardcopy documents that need to be scanned, or existing electronic images.

Frequently repeated actions or adding images from the same source can be automated to enable import at the click of a button. To do so, create an image import profile. Additionally, you can configure the processing of incoming images and the periodic addition of images in background mode. Once the required settings have been configured, images will be scanned or imported from a preset source at the click of a button, and received images will be processed (for example, despeckled). If necessary, you can change the source of image import or its settings.

If import sources change frequently, you can create several import profiles and switch between them to avoid having to change import source settings all the time.

To add an import profile, select the menu item Project > Image Import Profiles… in the main program window. In the dialog box that opens you can create new import profiles and also edit, remove, and copy existing profiles.

Read more about creating import profiles


Creating document batches

Documents to be processed are put into batches. The principles of grouping documents into batches are determined by the user. For example, the user may choose to process all documents as one batch, or group together documents imported on the same day or scanned at one go.

If a project contains no batches, the program will create a batch automatically when you attempt to add images.

To create a new batch manually, right-click the batch list in the main window and select New Batch… from the shortcut menu.

When a batch is created, its type is specified, which determines the order in which the batch is to be processed.

Read more about creating document batches


Overview of the work of operators with a configured program

Operators use a program that is preconfigured for processing certain types of document. Document processing is the same for all document types and includes the following stages:

  1. Adding images

    Adding document page images is easiest after you have configured import profiles. You can also add images by scanning or loading them from files.

  2. Starting the recognition process

    Recognition is an automatic process: the program identifies the Document Definition based on the location of static elements preconfigured in Definitions, applies the Document Definition, and recognizes data in the fields specified in the Document Definition. Before starting the recognition process, you can analyze documents or their pages and apply the relevant Document Definition to the image.

  3. Verification

    Verification – the process of checking data – is the most labor-intensive part of the operator's work. It comprises:

    • Verification of document assembly – checking whether document pages have been assembled correctly;
    • Group verification – a visual check on groups of identically recognized characters;
    • Field verification – a check on uncertainly recognized characters within the context of fields with a known range of values;
    • Verification in the Document Editor – checking errors in the Document Editor window including rule validation.
  4. Data export

    Export is performed at the click of a button according to export settings configured in the Document Definition. You can also export data to a file or database without using the export settings of a Document Definition.
    Select the Delete documents after export option to automatically delete documents after export.

Note: For the documents to be processed automatically, use the following settings:

  • Create an import profile to import images automatically.
  • Select the Recognize added images automatically option on the Document Processing tab of the Tools > Options… menu
  • On the Workflow tab of the batch type properties select the option Skip verification and data verification if percentage of characters need verification is equal or less than.
  • On the Export Destinations tab in the Document Definition properties select the Enable auto export option to export document automatically.
  • Select the Delete documents after export option, to automatically delete documents after export.
Read more about how operators work with configured projects


Adding images

To add images, select the required batch or create a new one. The import button allows you to add images in different ways, and the button name changes depending on the import method chosen.

If import profiles have been configured in the project, their names will be displayed as the import button menu items. To start the import procedure, you only need to select one of them.

To load images from a file, click the arrow to the right of the import button and select Load Images…. Select files with images, configure the required options and perform import.

To add images from a scanner, click the arrow to the right of the import button and select Scan Images….

After selecting Import Images… from the menu, you can either select one of the existing image import profiles to start the import, add a new one, or edit an existing profile.

Read more about adding images


Starting the recognition process and analyzing and applying a Document Definition

To perform recognition, click Recognize.

To perform preliminary analysis of images, click the arrow to the right of the Recognize button and select Match Document Definition…. If a Document Definition can be applied, the page and the document it belongs to will be named accordingly. If none of the project Document Definitions matches the image, the page will remain unprocessed.

You can also apply a certain Document Definition to a page or to an entire document. In most cases, a Document Definition that has been correctly created in the program applies to pages automatically, but in some cases you may have to apply it to a Document Definition manually. To apply a Document Definition, highlight a document or page, click the arrow to the right of the Recognize button and click Match Document Definition….

Read more about recognition


Verification

Verification consists in checking that the data have been recognized, pages have been assembled into documents correctly, and rules returned no errors. Verification is done on the Operator Station.

To start the verification process, click Run Verification…. First comes group verification, followed by fields verification. If a Document Definition contains no fields included in group or field verification, the corresponding verification stage is skipped.

When creating a Document Definition, you need to configure the document assembly rule: sequence and number of page repetitions. You can also configure assembly verification based on the values of key fields: in this case the values of key fields must be identical on all pages of the document. Pages are assembled into documents automatically in the recognition stage. In the verification stage you need to correct possible document assembly errors for multipage documents. Documents with assembly errors are marked by the following symbol [image]. A description of the error is provided in red letters below the name of the Document Definition. In the event of a mismatch of the values of key fields, the relevant message will appear and the values will be highlighted in red. Assembly errors can be corrected most easily in page outline mode, where a good view of page images and the different documents to which they belong are realized.

During group verification, groups of identically recognized characters are submitted for verification. The task of the operator is to identify differing characters that have been recognized incorrectly. They then correct their values, after viewing the image of the field containing this character. If it is impossible to correct characters, you can mark them as questionable.

During field verification, fields with a known range of values are submitted for verification. The task of the operator is to check uncertainly recognized characters within the context of the entire field. Field verification has two modes: a single field view mode with cuttings of characters and a multiple same-type fields view mode.

Unfulfilled rules are flagged: with a yellow flag [image] (warning) or a red flag [image] (error). Format errors are flagged with [image]. The operator needs to check fields with errors and, if possible, correct their values. To run verification of rule errors, click the arrow to the right of the button and select the menu item Re-check Rules. If rules can be fulfilled after you have corrected field values, flags will be removed.

The [image] icon is also used to indicate instances when fields from FlexiLayouts could not be applied. An operator can manually specify regions for such fields on the document image.

Verification is also performed in the document window which opens when you double-click the name of a document or page. The document window does not display separate fields but only the entire document. It also shows all uncertainly recognized characters, rule errors, etc.

Read more about verification


Export

To export recognized and verified documents, click Export. The export will be performed according to the settings configured in the Document Definition.

If you need to export data to file, click the arrow to the right of the button and select Export Data to File…

If you need to export images to file, select Export Images to Files

If you need to export to a database, select Export to Database…

If necessary, change the default export settings and perform the export.

Read more about export


Installing and running the program

This section contains basic information about installing, protecting, and running ABBYY FlexiCapture. It also covers the system requirements for installation.

Software and hardware requirements
Installing ABBYY FlexiCapture
Running the program


Software and hardware requirements

Hardware requirements

  1. Intel® Pentium®/Celeron®/Core™2 Duo/Quad/Xeon®/Core™ i3/Core™ i5/Core™ i7, AMD K6/Turion™/Athlon™/Duron™/Sempron™ 2 GHz processor or faster. The use of processor which has 2 or more cores is recommended for Application Server.
  2. RAM: 512 MB RAM for each CPU core, but no less than 1.5 GB
  3. Hard disk space: 1,5 GB hard disk space, of which 1 GB is required for installation purposes
  4. TWAIN, WIA or ISIS scanner
  5. An active Internet connection to activate your serial number, USB port for hardware protection key
  6. At least 1024×768 video card and monitor
  7. Keyboard, mouse, or other pointing device

Software requirements

  1. Operating system:
    • Windows XP SP3
    • Windows Vista SP2
    • Windows 7 SP1

    • Windows 8/8.1;

    • Windows Server 2003 SP2
    • Windows Server 2008 SP2, R2 SP1, 2012 or 2012 R2 + Desktop Experience.

    64-bit operating systems are supported via 32-bit emulation mode.

    If you use a localized interface, you operating system must support the corresponding language.

    The use of the Arial Unicode MS font is recommended. Other fonts may display CJK characters incorrectly.

  2. .Net Framework 3.5 SP1


Installing ABBYY FlexiCapture

Before installing ABBYY FlexiCapture, we recommend closing down all other applications (e.g. Microsoft Outlook, Microsoft Word etc.).

Important! The setup program copies temporary files into the folder defines by the environment variable %temp%. If you encounter installation problems, make sure that this folder is accessible and there is enough space to store the temporary files.

To install ABBYY FlexiCapture:

  1. Place the ABBYY FlexiCapture CD-ROM into the CD-ROM drive.
  2. In the Autorun menu, select Local installation and follow the instructions for the setup program. (If Autorun is disabled on your computer, double-click the setup.exe file located on the CD-ROM).
  3. Select a setup language (either English or Russian). The setup program will compare the locale of your system and the selected language. If the languages are incompatible, a warning message is displayed.
  4. Next, the setup program checks the version of your operating system and the availability of the administrative permissions. If the version of the operating system is not supported by the program or you do not have the administrative permissions, a warning message is displayed and the setup program is terminated.
  5. If all the checks have been successfully passed, the end-user license agreement will be displayed. Read the license agreement carefully and if you agree with the terms of the agreement, select the corresponding option and click Next.
  6. A dialog box will open in which to enter some information about yourself. Enter the required information and continue with the installation.
  7. In the next dialog box that opens, select one of the available installation modes:
    • Administrator Station – The program will be installed in its entirety. You will be able to switch between administrator and operator modes and use FormDesigner and FlexiLayout Studio.
    • Operator Station – Only the Operator Station will be installed. (The Administrator Station, FormDesigner and FlexiLayout Studio will not be installed.)
    You can also install both the Administrator Station and the Operator Station on the same computer.
  8. Next, select a destination folder. By default, the program is installed under: <disk name>:\Program Files\ABBYY FlexiCapture. If there is not enough space on the selected hard disk, a window is displayed showing your hard disks, the available free space, and the space required by the installation. Select a disk with sufficient free space and continue with the installation.
  9. The program files will be copied onto your computer. Once the installation is finished, the setup program will display a message saying that the application has been successfully installed.
  10. FlexiCapture License Manager will be launched automatically so that you can activate your copy of the application. Enter your serial number and activate the application.


License Manager

The License Manager utility is used to manage protection keys and to gather information about the status of ABBYY FlexiCapture licenses.

To launch the License Manager utility:

  • Go to Start>Programs>ABBYY FlexiCapture 11 Servers and select ABBYY FlexiCapture License Manager.

Managing licenses

Adding a new license

In the ABBYY FlexiCapture License Manager main window, click Activate License.... In the dialog box that opens, enter a new serial number and click Next. Then select a license activation method and activate your license. The new license will appear in the License Manager main window. To start working with the activated license, select it from the Licenses list in the License manager main window, and click the Select button.

Updating a license

In the License manager main window, select a license you wish to update and click Update License... You will also need to activate your license over the Internet or be e-mail. Follow the instructions displayed on the screen.

Deactivating a license

In the License manager main window, select a license you wish to deactivate and then select Deactivate... from the License menu. Deactivate the license following the instructions of the Deactivation Wizard.

License parameters

In the License Manager, you can view the parameters of your licenses. Select a license in the list and click License Parameters... The parameters of the current license are displayed in brief view in the main application window.

License usage statistic

To view license usage statistics for a selected license, select the corresponding item in the Service menu. In the dialog box that opens, a total number of available and used pages for the license is displayed. You can specify the period for which the statistics should be formed. If the period has been changed, click the Refresh button to display actual information. To get detailed statistics for each station, click the Export... button and save the statistics file in .txt or .csv format. The resulting file contains information about the workstation name, the user name, the processing date and the number of processed pages. To turn off gathering statistics, select the corresponding item in the Service menu. Be default, gathering statistics option is enabled.


Types of protection

To use ABBYY FlexiCapture, a valid protection key is required.

ABBYY FlexiCapture can include one of the following types of protection key:

  • hardware protection key
  • software protection key

Hardware protection key

This is a dongle to be plugged into a USB port on your computer (USB dongle).

For ABBYY FlexiCapture to run with a hardware protection key, you need to install the iKey driver or CodeMeter Key. On 32-bit operating systems, both drivers are installed automatically. On 64-bit OS, you should manually run the setup file which is located in the iKey subfolder of the distribution folder. To use the program, your hardware protection key must be plugged in at all times.

The hardware protection key stores the parameters of your license.

Activation methods:

  • Remotely via the Internet
    An empty hardware protection key can be activated remotely, using only the serial number of your license. This is done in the License Manager utility, which contacts the activation server over the Internet, requests the parameters of the serial number, and saves them in the key.
  • By e-mail
    If you choose this activation method, an e-mail activation request will be generated automatically. Send this e-mail message to the address specified. To ensure a prompt reply from the mail robot, please do not alter the subject or the body of the e-mail message.

Software protection key

This is a license file.

For ABBYY FlexiCapture to run with a software protection key, the license file must be activated on the ABBYY activation server. You can activate your license file from the License Manager utility.

Information required to activate your license file is sent to ABBYY as a code (Product ID) which is generated based on the information about the computer on which ABBYY FlexiCapture is installed. No personal information is used to generate a Product ID and this code cannot be used to identify the user.

Activation methods:

  • Via the Internet
    Activation over the Internet is carried out automatically and takes seconds to complete. An active Internet connection is required for this method.
  • By e-mail
    If you choose this activation method, an e-mail activation request will be generated automatically. Send this e-mail message to the address specified. To ensure a prompt reply from the mail robot, please do not alter the subject or the body of the e-mail message.

In the case of activation over the Internet, no additional steps are required. In the case of activation via e-mail, you will receive an activated file from the activation robot. Save this file to your hard disk, run the License Manager utility and provide the path to the saved file in the Activation Wizard.

Repeat activation

You can re-install ABBYY FlexiCapture any number of times on the computer on which it was activated. However, if you make substantial upgrades, format the hard drive, re-install the operating system, or change the name of the computer (e.g., the name is changed when moving the computer from a workgroup to domain and vice versa) you may need to activate the product again.

The activation server keeps a log of how many times each serial number has been activated. Once a certain threshold for a serial number is exceeded, the serial number gets blocked and can no longer be activated.

You can de-activate an activated license in order to use it on another computer. When you de-activate a license, the activation server reduces the activation counter for this serial number by one.

Important! You will be able to use the activated program only on the computer on which the Product ID was generated. To move the program to another computer, first de-activate your license.


License parameters

Each license has its own serial number. A license includes a set of parameters which determines if the user has the right to perform certain document processing operations.

License parameters:

  • Description – serial number, licensing method, availability of a virtual machine
  • License purpose – license type (software or hardware), ability to provide document processing services
  • Workstations, Tools – restrictions on the number of stations and development tools (FlexiLayout Studio, FormDesigner).

    Note: Depending on the license type, restrictions on the number of stations can be specified either separately for rich and Web-stations or together for both types of stations.

  • Productivity – restrictions on the number of pages and CPU cores. The Page limit group displays both the total quantity of pages allowed for the license and the number of pages available at the moment.
  • Processing – additional document processing parameters: the use of FlexiLayouts and additional recognition languages
  • Custom components (including Document Definitions) – the use of components developed by the user

For using ABBYY FlexiCapture for Invoices license should contain Custom component EuropeanInvoice from vendor ABBYY HQ.

Компонент EuropeanInvoice.AddOn.LineItems позволяет включить извлечение дополнительных полей — Line items extraction.

  • Import – additional import options; specifies whether ISIS protocol and opening PDF files are allowed
  • Export – additional export options; specifies whether export to searchable PDF and advanced XML export are allowed


Changing the installation mode, repairing and removing ABBYY FlexiCapture

To change the installation mode (select either complete installation or the Operator Station):

  1. Select Start > Control Panel > Add or Remove Programs, then select ABBYY FlexiCapture 11 from the list of installed programs, and click Change.

  2. Select the Modify item and click Next.

  3. In the dialog box that opens, select the required installation mode.

To repair corrupted or deleted files:

  1. Select Start > Control Panel > Add or Remove Programs, then select ABBYY FlexiCapture 11 from the list of installed programs, and click Change.

  2. Select the Repair item and click Next.

To remove ABBYY FlexiCapture from your computer:

  1. Select Start > Control Panel > Add or Remove Programs, then select ABBYY FlexiCapture 11 from the list of installed programs, and click Remove.

  2. Confirm that you wish to remove the program.


Running the program

To launch ABBYY FlexiCapture

  • in administrator mode: go to Start>Programs>ABBYY FlexiCapture 11 and select ABBYY FlexiCaptureAdministrator Station.
  • in operator mode: go to Start>Programs>ABBYY FlexiCapture 11 and select ABBYY FlexiCaptureOperator Station.

Important! Before running the program, ensure that:

  • The scanner is connected to the PC and powered on.
    If your scanner has not been connected, refer to the scanner user guide.
    For the scanner to operate correctly, you must power on the scanner before you power on the PC.
  • A protection key has been installed on your PC. You cannot run the program without it.

Registry keys that control the launching of the application

You can use the following registry keys (in Shell\StartUp) to control how the application is launched:

  • AdminMode - defines whether the application runs in operator or administrator mode;
  • Project - sets the project that is opened automatically when the application is launched;
  • Batch - sets the batch that is opened automatically when the application is launched (the batch must be specified);
  • ProhibitChangePath - prohibits changing the batch and project that open automatically in operator mode (set the key value to True).

These keys are not created in the registry by default. If required, the administrator may add these keys into the registry of the user's operating system.

The registry keys can be overridden by the corresponding command line launch parameters.

Command line launch parameters

The following parameters can be used to launch the application via the command line:

FlexiCapture.exe [/Station:(Admin,Operator)] [/Project:"path to project"] [/Batch:"batch name"] [/ProhibitChangePath].

  • [/Station:(Admin,Operator)] - defines whether the application runs in operator or administrator mode. If no mode is specified, a dialog box is displayed upon application launch which prompts the user to select the desired mode;
  • [/Project:"path to project"] - sets the project that is opened automatically when the application is launched;
  • [/Batch:"batch name"] - sets the batch that is opened automatically when the application is launched;
  • [/ProhibitChangePath] - prohibits changing the batch and project that open automatically in operator mode.


Using templates created in earlier versions of ABBYY FormReader

Templates created in ABBYY FormReader 6.5 can be imported into ABBYY FlexiCapture.

When you import a Document Definition created in an earlier version, the page mark-up (except service fields) and data types are imported. The data types are copied to the Custom folder in the data types of the Document Definition. For more information, see Data types of the text entry fields.

Important! Export settings, some of the validation rules, and images contained in the batch are not imported.

To import a Document Definition created in ABBYY FormReader 6.5:

  1. Start ABBYY FlexiCapture in administrator mode.
  2. Create a new project or open an existing project into which you wish to import a Document Definition created in a previous version of the program.
  3. On the main menu, select Project > Document Definitions…
  4. In the Document Definitions dialog box, click Import….
  5. In the Files of type drop-down list select FormReader 6.5 Batches (*.frm) and then select the batch whose Document Definition you wish to import.

The imported Document Definition will be added to the list of Document Definitions. If there is more than one Document Definition in the batch, all the Document Definitions will be imported. If you specified a structure for multi-page documents in ABBYY FormReader 6.5, the templates described by this structure will be merged into one multi-page Document Definition (custom structure is not supported). The batch structure (the order of documents in the batch) is not preserved when importing template.

Tip.

  1. For detailed information on the differences between the rules in the old and in the new versions, see FormReader 6.5 and FlexiCapture rules compared.
  2. For recommendations on migrating from FormReader 6.5 If-Then rules, Automation rules, and Automation export to FlexiCapture scripts, see Migrating from FormReader 6.5 rules and export to FlexiCapture scripts.


Configuring the program

Prior to the mass input of documents, you need to configure the program for processing documents of the required type. All of the required settings are configured on Adminitstrator Station.

To configure document processing, create a project comprising:

  • image import profiles
  • one or several Document Definitions
  • batch types for processing.

You may include various Document Definitions in the project, in which case various documents will be processed as part of the same project, depending on the Document Definition applied. However, if document flows do not cross, you may create separate projects for them.

Creating a project
Document Definitions
Image import profiles
Default export settings
Batch types
Batches
Index fields


Administrator and operator modes

To organize single-flow data input with the help of ABBYY FlexiCapture, you need to configure the system for processing certain types of document. All settings are configured by the administrator, while document input is performed by operators. The number of workstations depends on the number and volume of documents requiring processing.

The Administrator configures the system and controls its operation. The administrator is tasked with:

  • designing new form blanks (this task may be handled by the designer)
  • configuring image import and scanning options
  • preparing Document Definitions
  • monitoring data input into a configured system and advising operators

Operators are tasked with document input. They work with a system that has been preconfigured by the administrator and which is ready to process completed documents of certain types. Operators are tasked with:

  • scanning or importing documents
  • verifying data
  • exporting data

Document recognition is an automatic process.

The program has two operation modes: administrator mode and operator mode. The administrator has access to all program functions, and the administrator mode can be password protected. The operator cannot create or edit Document Definitions, nor can they create import profiles. The operator is allowed to work only with one project or a single batch.

When you install the program you can choose between installing only the Operator Station or the complete program. If you select complete installation, you will be able to switch between administrator and operator mode. To select one of the modes, select either Start > All Programs > ABBYY FlexiCapture > ABBYY FlexiCapture Administrator Station or Start > All Programs > ABBYY FlexiCapture >ABBYY FlexiCapture Operator Station. (For details, see Running the program).

In administrator mode, the main menu has the items Test Batches, Document Definitions…, Protect with Password…, Unprotect… that are not accessible in the operator mode. You can therefore only work with test batches and Document Definitions in administrator mode. The operator cannot edit image import profiles and batch types, or view project properties and export projects. The administrator can also password-protect or unprotect a project. If you attempt to open a password-protected project in administrator mode, you will be asked to enter a password.

In the operator mode, the Project menu has the item Switch to Admin Mode…. After you select this item, the current project and batch will open (following entry of the correct password, if the batch is password-protected). If you are not authorized to modify the current project or batch in operator mode, the relevant menu items and toolbars will be absent.


Creating a project

Before you can start processing your documents, you need to create a project. A project includes:

  • image import profiles
  • one or more Document Definitions
  • batch types

After you run the program, the Open Project dialog box opens, enabling you to select one of the existing projects or to create a new one.

To create a new project:

  1. Click the Create New… button.

  2. From the Project type drop-down list, select General as the project type.

Note: ABBYY FlexiCapture for Invoices allows you to create projects geared to processing invoices. To create an invoice processing project select Invoice Processing as the project type.

For details, see See " What Is ABBYY FlexiCapture for Invoices? "

  3. Specify a folder for storing the project and a project name.
  4. Click Create.
Project properties
Document Definitions
Image import profiles
Batch types
Batches


Batch types

ABBYY FlexiCapture allows processing documents in batches: prior to processing proper, a batch is created and document images are added into this batch. Batches are created automatically or manually when importing images (i.e. when scanning in documents or when importing the images of already scanned documents). The settings to be used for document processing are specified for each batch type individually. You can create several batch types for the most commonly used sets of processing settings. In this case, all the operator needs to do is to select the appropriate batch type.

A project can include multiple batch types. Batch types for projects are created in the Create New Batch Type dialog box.

To create a new batch type, complete the following steps:

  • Open the project.
  • Click Batch Types…on the Project menu to open the Batch Types dialog box.
  • Click the New button to open the Create New Batch Type dialog box and create a new batch type.

The properties dialog box of a batch type contains the following options:

  • On the General tab you can specify the name of the batch type, provide a description, and specify the quality of images that will be displayed on processing stations, registration parameters and batch type tools.
  • The Image Preprocessing tab contains settings that determine how documents are separated and which preprocessing procedures are applied to images.
  • The Recognition tab lets you choose the order in which Document Definitions are applied, which classifier to use, and whether to delete blank pages during recognition.
  • The Event Handlers tab lets you select which event handlers will be used and edit them.
  • The Verification tab contains an option that groups fields during field verification if enabled.
  • The Export tab contains settings that determine how documents are exported. If no batch type is specified, batches will be exported using the <Default> settings specified in the project's properties.
  • On the Workflow tab you can set up workflows.
  • The .Net References tab lets you add external assemblies.


Project properties

The properties of a project can be viewed and changed in a separate dialog box that opens when you select Project>Project Properties…in the main window.

  • The General tab displays the name of the project, the path to the project files, and a description of the project. On this tab you can also configure batch type tools. Click the Edit tool… button to open the Batch Type Tool Settings dialog box.
  • The Image Preprocessing tab displays the image pre-processing options. You can change these options if required. See Image pre-processing options for details.
  • The Recognition tab contains the option Delete blank pages during recognition. Select this option if you wish blank pages to be deleted during recognition. Additionally, on this tab you can connect a FlexiLayout classifier to your project.
  • On the Verification tab, select the Group fields on Field Verification option to group fields in this stage. Fields are grouped according to the name of the field or the group specified in the field properties.
  • The Export Destinations tab displays the default export settings. To export unrecognized documents, select Export unrecognized documents and specify export settings.
  • On the Workflow tab, you can set up batch processing (for the "default" batch type).
  • The Event Handlers tab contains the list of events that can be handled with the help of a script. To create an event handler, select an event from the list and click the Edit Script… button. In the Script Editor that will open, write the script text. See Event Handlers for details.
  • On the .Net References tab, you can add external assemblies to be used in scripts and global modules. Both standard and compiled user assemblies can be used. To add an assembly, click Add…. In the dialog box that opens select the type: Standard assembly name or Attached file. Depending on the selected type either enter the standard assembly name or browse to an assembly file. See External assemblies for details.
  • On the Environment Variables tab, you can specify environment variables to be used in rules, export settings, and scripts. For details, see Environment variables.


Environment variables

Environment variable is a string that is used to store some text, such as a path to an external resource. Environment variables are specified in the properties of a project (Project>Project Properties > Environment Variables) and are used in Document Definitions and scripts.

When a project is run on another Application Server or on another computer, the paths to the external resources may change.

If the project includes several Document Definitions, multiple database check rules, and several scripts, editing all of these objects may take quite some time.

To avoid editing all the objects used by the project, you can specify the paths to the external objects in environment variables and use these variables when creating rules, setting up export or writing scripts. Now if you run your project in a different environment, you will simply need to edit the connection parameters in the Environment Variables dialog box.

Types of environment variable

There are two types of environment variable in ABBYY FlexiCapture:

  • String – This is a text variable.
  • ADO connection string – This a string used to connect to an ODBC-compatible database.

Creating and editing environment variables

To create a new environment variable:

  1. In the Project Properties dialog box, click the Environment Variables tab and then click the New… button.
  2. In the New Environment Variable dialog box, select a type and enter a name for the environment variable. You will not be able to change the type of the environment variable later.
  3. Complete the Value field depending on the type of your environment variable:
    • For an environment variable of type String, enter a value (e.g. the path to a folder or e-mail address).
    • For an environment variable of type ADO connection string, specify the path to the database, the access parameters, and any other connection parameters required by the driver that you use.
  4. Enter any necessary information in the Description field.

To edit or delete an existing environment variable, click Edit... or Delete.

Using environment variables

  • Environment variables of the String type can be used to:
    • specify a source of input images;
    • specify settings that determine how documents are exported to files and images.
      • Use the following syntax to call an environment variable: <Env:Name_of_environment_variable> or <$:Name_of_environment_variable>.
  • Environment variables of type ADO connection string can be used to connect to various databases:
    • When creating a database check rule
    • In a Document Definition when setting up data export
    • In a Document Definition when connecting a data set to an external database
    • In field properties, when specifying value constraints
  • Environment variables of any type can be used in scripts. Use the EnviromentVariables property of IProperties, which is available in the IProject interface.


Tool Settings

The Tool Settings dialog allows you to configure handling certain events for all batch types. Tool settings apply to all batches irrespective of their types. Otherwise, the batch is processed in accordance with the settings specified for a given batch type.

Tool settings apply to batches they enter a stage.

To open the Tool Settings dialog box, click the Edit tool… button on the General tab of the Project Properties dialog box. The dialog box that opens, contains the following settings:

Option | Description
Event settings group
Add Event… button | Opens the Add Event dialog box where you choose an event to be handled. To write the script processing this event, click the Edit Script… button.
Edit Script… button | Opens the Script Editor where you can edit the script processing the selected event.
Delete button | Removes the selected event from the list.
Skin settings group
Edit skin… button | Opens the Skin Settings dialog box where you can set up the appearance of the station.
Reset skin button | Resets skin settings to default.


Skin Settings

The Skin Settings dialog box allows you to customize the appearence of the operator station using batch type tools. To open the dialog box, click the Edit skin… button in the Batch Type Tool Settings dialog box.

On the Toolbars tab of this dialog box you can configure the set of toolbars for a selected tool. For each tool, the list of toolbars contains the four obligatory toolbars: Tasks, Standard, View and Navigation. To add a new toolbar, click the Add... button. In the dialog box that opens, specify the toolbar name and click OK. The toolbar will be added to the list. To change the name of a custom toolbar, click Rename…

On the Commands tab, you can rearrange the menu and toolbar commands. Select Menu or Toolbar and from the corresponding drow-down list choose a menu item or a toolbar you want to rearrange. The Commands group contains the list of commands available for the selected menu item or toolbar. For each command, the following options are available:

Option | Description
Add... button | Opens the Edit Command dialog box to add a new command.
Edit... button | Opens the Edit Command dialog box where you can change the name of the command.
Delete button | Removes the selected command from the list.
Up and Down buttons | Moves the selected command up or down in the list.
Reset button | Resets settings to default.

The Tooltip field contains the tooltip text for a command and a keyboard shortcut (if a shortcut is specified for the command).

Note: When adding a user command, you can enter the tooltip text for this command. The maximum length of the tooltip text is 80 characters. Keyboard shortcuts for user commands are configured on the Keyboard Shortcuts tab of the Tools > Options… menu.

When adding or editing toolbar commands, you can select whether to display the command as text or as an icon. If the Use icon option is selected, click Browse (bmp, 24x24)… to load an image to be used as the command icon. The image must be in .bmp format and of size 24x24px. For commands of the Tasks toolbar, the image size must be 32x32px.

It is possible to manage visibility of custom toolbars from the menu. To add a menu item that will show/hide custom toolbars, on the Commands tab select a menu item to which the list of custom toolbars will be added and click Edit... In the Edit Command dialog box that opens, select View from the Categories list and in the Commands list select Custom Toolbars. The Custom Toolbars item with the list of all custom toolbars will be added to the station menu.

Note: The Custom Toolbars command can not be added on a toolbar, but to the menu only.


Registration Parameters

Registration parameters are textual properties allowing to identify a specific batch or document. These properties can be represented by the scanning date, the name of the Scanning Operator, etc. A registration parameter may be required or optional.

Registration parameters can be assigned to the batch during creation (if the batch is created automatically using import profiles. Registration parameters can also be assigned to batches and documents on the Scanning Station and sent to ABBYY FlexiCapture together with the images.

The registration parameters can be configured on the Registration Parameters tab of the Batch Properties or Document Properties dialog box respectively (click Properties… on the shortcut menu).

Note: It is recommended to specify different names for batch and document registration parameters. In case of identical names, the document registration parameter is always used when substituting the registration parameter value. For example, when generating file names during export.

Collapsed Named registration parameters

It is also possible to specify some of document processing settings using named registration parameters.

  • fc_Predefined:DefinitionsToMatch. This registration parameter allows you to limit the number of Document Definitions used for matching. The parameter value is treated as the set of Document Definitions used for matching for a given document. The value can be a Document Definition name, the name of a specific section or a set of sections and Document Definitions where elements are separated by semicolons. For example:

    «Document Definition 1; Document Definition 2\Section 1; Document Definition 2\ Section 2».

    This registration parameter can be filled in by operator in the Scanning Station (manually or by using a script). It is also possible to to fill in this parameter in any stage prior to recognition if it becomes clear which Document Definition should be matched (e.g. as a result of classification).

  • fc_Predefined:DocumentError. If this parameter is not empty, then in the export stage, the document will be considered as a document with error and will be exported according to export profiles for erroneous documents. The description of an error contains the value of the registration parameter.
Collapsed Storing basic message header details in the registration parameters

When you import images from an e-mail folder using the MAPI or POP3 server protocols, information about the message will be automatically added to the registration parameters of the batch you are creating. The following parameters are added:

  • fc_Predefined:EmailSubject
    The message's subject.
  • fc_Predefined:EmailSender
    The message's name.
  • fc_Predefined:EmailAddressee
    The message's name.
  • fc_Predefined:EmailDate
    The date and time when the message was received.

Note: If you don't want information about the message to be added to the batch's registration parameters, set the following registry key: [HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller] "UseHotFolderSpecialParameters"="false".


Displayed images quality

The Displayed images quality option determines the quality of images which are loaded on the stations.

Displayed images quality is specified for each batch type. When a batch is created, its type is specified and the images of the batch are displayed with the specified quality.

If no batch types are created, batch images are displayed with the quality specified for the entire project (Project>Project Properties…, General tab).

Each image is stored as a set of files: the original file, its reduced copies (color and black-and-white) and its thumbnail. Original image file is used for recognition and export. For displaying the image on the stations, its reduced copy is used.

The following values for the displayed images quality can be selected: 20%, 40%, 60%, 80% or 100%.

Reducing the quality of displayed images can apply to speed up loading images if the networks capacity is low on the operators computers (for example, if they work remotedly). If a lower quality is selected, images will be loaded faster due to smaller size.


Document Definitions

Creating a Document Definition is the main and most critical stage in configuring a project and determines the quality of data obtained after processing.

Document Definitions can only be created in administrator mode.

A Document Definition describes the location of document elements and indicates fields to be used in data extraction. When creating a Document Definition, field properties are specified along with their range of values. Data export settings are also configured.

To start creating a Document Definition, run the Document Definition Wizard:

  1. In the main menu of ABBYY FlexiCapture select Project>Document Definitions…
  2. In the Document Definitions dialog box that opens click the New… button.
  3. Follow the instructions in the Document Definition Wizard.
Document Definition Wizard
Automatic detection of fields and static elements
Static elements
Creating fields of a Document Definition
Field properties
Rule validation
Configuring data export
Configuring data presentation in the document window
Document Definition properties
Importing a Document Definition for forms created with ABBYY FormDesigner
Creating Document Definitions for multipage documents
Creating a Document Definition for flexible document processing
Creating Document Definitions for documents with annexes
Processing unstructured documents
Editing and publishing a Document Definition
Testing a Document Definition

Localizing a Document Definition


Document Definition Wizard

To create a new Document Definition, select the main menu item Project>Document Definitions… and in the Document Definitions dialog box click the New… button. The new Document Definition creation wizard will open.

  1. In the Create New Document Definition dialog box specify the main Document Definition settings: name and commentary, language used (Language (locale)) and writing style (Writing style). By default, the dropdown list contains only languages that have dictionary support. To select a language without dictionary support, enable the option Show all languages. It is very important to specify the language correctly: correct document recognition depends on this. The writing style can differ significantly in various countries, which is why it is important to specify the country to enable the program to select the typical writing style.
    Collapsed Show examples of various numeral writing styles
    - Russian two
    - American two
    - "ordinary" five - can occur in any style
    - Japanese five
    - Russian one
    - German one
    - "ordinary" nine - can occur in any style
    - Czech nine with the ring on the right
    - American nine without the "hook" at the bottom
    Specify the text type:
    • ICR (hand-printed)– enable this option if most fields in documents will be completed by hand;
    • OCR (printed) – enable this option if values in most fields will be printed. Select the print type in the dropdown list.
    Note: Recognition of handprinted text is not supported for all languages. For some languages this recognition type will be unavailable. See Supported recognition languages.
    Later you can change the text type for individual fields, while the type specified at this stage will be used by default.
    Click Next to go to the next step.
  2. For the second step, load the image of your document page to create the Document Definition. You may scan the image of an uncompleted page or load it from file.
    Note: The Document Definition for fixed forms is created using an image obtained by scanning an uncompleted form. This should be a good-quality image without distortions (free from skewing, flaws, etc.). When creating Document Definitions of color background forms, you should use pages scanned without filters so that the background does not disappear during scanning. (Later on, when you scan page images for data recognition you will select a scanning mode that causes the background to disappear).
    If your document consists of several pages, load the first page and use recommendations of the section Creating Document Definitions for multipage documents for adding the remaining pages.
    If you need to use a flexible description created with ABBYY FlexiLayout Studio, enable the option Load FlexiLayout and enter the path to the file containing the flexible description. For details see Creating a Document Definition for processing flexible documents.
    Click the Next button.
  3. For the next step, select field types that have to be detected in the image automatically. You may mark checkmarks and text entry fields. The program automatically detects text fields with a region and rectangular checkmarks particularly well. If entry fields on your form do not have a region, and checkmarks are inserted against a white background, normally they have to be highlighted manually.
    Note: Automatic anchor search is always performed. If the form contains anchors, they will be detected and marked on the image.
    Click the Finish button.

When the Document Definition Wizard is finished, the Document Definition editor window opens where you can perform further actions to create a Document Definition. At the next stage of Document Definition creation you must mark fields and static elements on the page image and configure their properties.


Automatic detection of fields and static elements

Automatic detection when adding an image:

When a page image is added, the program always detects anchors. If the image has standard anchors (such as black squares), these will be detected and marked. The program searches for text fields and checkmarks if the user has enabled the Text or Checkmarks options. The program performs automatic detection of text fields with a region and rectangular checkmarks particularly well. If entry fields on your form do not have a region, and checkmarks are inserted against a white background, they will normally need to be highlighted manually.

Automatic detection in the window of the Document Definition editor:

For automatic detection in the window of the Document Definition editor, select the required mode (fields or static elements) followed by the menu item Tools>Autodetect Objects by Type…. Mark the types of fields or static elements to be detected automatically.

If you need to detect specific objects on the image automatically, select the required mode (fields or static elements) and click [image] on the toolbar. If you click on the element – it will be marked with a rectangle. The element type will be detected automatically.

Automatic detection of a region:

For a field or static element region of a specific type to be detected automatically, proceed as follows:

  1. Select the required mode (fields or static elements)
  2. Select the type of a field or static element with the help of an appropriate button on the toolbar
  3. Press Shift
  4. Left-click in the field or static element region


Static elements

Static elements are used for Document Definition matching and identification. No data is extracted from them.

To work with static elements in the Document Definition editor, switch to static elements mode by clicking the [image] button.

Static elements can be used for Document Definition matching and identification. Their method of use is determined when you configure element properties. Anchors are used to match the Document Definition with the form image. Identifiers are required for determining to which forms pages belong where various forms are processed in a single flow. For details, see Creating machine-readable forms.

Static elements have no names, only regions on the image.

When a Document Definition is applied to a document image, the program searches for static elements and selects a Document Definition based on their location. Recognition of values of static elements (text and barcode) is performed only in case when it is required for identification purposes. See Specifying identifier values.

The program works with static elements of the following types:

Static element | Toolbar button
Anchor |
Separator |
Anchor text |
Anchor barcode |

The program searches for anchors automatically when an image is added.

How to create a static element manually:

  1. Select the static elements mode
  2. Select the tool for creating an element of the required type
  3. Place the cursor in the corner of the element, left-click and drag diagonally to the opposite corner
    or
    use Shift-Click in the element region.

The static element region will be framed with a rectangle. Its color depends on the static element type. The static element is assigned default properties.

How to change the properties of a static element:

  1. Highlight the element region on the image, right-click and select Properties… from the shortcut menu.
  2. Modify static element properties in the dialog box that opens.

Read more about static elements:

  • Anchors
  • Separators
  • Anchor text
  • Anchor barcode


Anchors

Anchors - static elements are highlighted on the image automatically.

To highlight anchors manually:

  1. Switch to the static elements mode
  2. Select [image] on the toolbar

  3. Place the cursor in the corner of an anchor, left-click and drag the cursor diagonally to the opposite corner.

    or

    Use Shift-Click in the anchor region.

Anchor properties

To modify anchor properties:

  1. Highlight the anchor;
  2. Right-click in the anchor region and select the Properties… item from the shortcut menu
  3. Modify properties in the dialog box that opens:
    • Use for Document Definition matching – this option must be enabled for the program to use the anchor for Document Definition matching (recommended)
    • Use for Document Definition identification – enable this option to use the anchor for Document Definition identification
    • Anchor type – for correct Document Definition matching it is important to specify the anchor type: black square, cross, corner or timing mark


Anchor text

Anchor text - static element. This is any static text on the image – headers, explanatory signatures.

To highlight anchor text:

  1. Switch to the static elements mode
  2. Select [image] on the toolbar
  3. Position the cursor in the corner of the anchor text, left-click and drag the cursor diagonally to the opposite corner.

    or

    Shift-click in the anchor text region.

Anchor text properties

To modify anchor text properties:

  1. Highlight text
  2. Right-click in the anchor text region and select Properties… from the shortcut menu
  3. Modify properties in the dialog box that opens:

    On the General tab:

    • Use for Document Definition matching – this option must be enabled for the program to use the anchor text for Document Definition matching.
    • Use for Document Definition identification – enable this option to use the anchor text for Document Definition identification.
    • Value – if you are using anchor text as an identifier, you can set its value. To automatically insert a value, click the Hint button.
    • Max number of errors - here you can specify the maximum number of allowed errors in the anchor text string.

    On the Recognition tab you need to configure recognition options for the static text to be recognized with maximum accuracy:

    • ICR (hand-printed) – enable this option if static text is handprinted.
    • OCR (printed) – enable this option if static text is printed. Select the print style from the dropdown list (typographic, dot-matrix printer, typewriter, etc.). See also Supported text types.
    • Advanced – use this option to select several text types or specify a custom text type.
    • Data type – select the language of the text. Use the Select… button to make your selection.
    • Letter case – select the case of static text letters; if the text has both lowercase and uppercase letters, leave the Auto value.
    • Orientation – specify the text orientation.
    • Enable the One line option for one-line text.
    • If the text does not contain blanks, i.e., consists of a single word, enable the One word option.
    • Configure image processing options during recognition:
    • Invert – inverts the image.
    • Remove texture – removes texture.
    • Despeckle – enable this option to remove garbage from the image.
    • Remove garbage of specified size only – enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, garbage size will be selected automatically.


Separators

Separators are static elements. These are any horizontal or vertical lines on the image.

To highlight separators:

  1. Switch to the static elements mode
  2. Select [image] from the toolbar
  3. Place the cursor in the corner of a separator, left-click and drag the cursor diagonally to the opposite corner.

    or

    use Shift-Click in the separator region.

Separator properties

To modify separator properties:

  1. Highlight the separator
  2. Right-click in the separator region and select the Properties… item from the shortcut menu
  3. Modify properties in the dialog box that opens:
    • Use for Document Definition matching – this option must be enabled for the program to use the separator for Document Definition matching
    • Use for Document Definition identification – enable this option to use the separator for Document Definition identification.


Anchor barcode

Anchor barcode - static element.

Important! A barcode can be highlighted as a field or as a static element. This depends on the barcode value in the documents being processed: if it is for Document Definition matching or identification, you need to create it in static elements mode. If a barcode is intended for data capture, you have to create it in field marking mode. Barcode properties differ depending on whether it is a field or static element. This section describes the properties of a static element – an anchor barcode, see also barcode field.

To highlight an anchor barcode:

  1. Switch to static elements mode
  2. Select [image] from the toolbar
  3. Position the cursor in the corner of a barcode, left-click and drag the cursor diagonally to the opposite corner

    or

    use Shift-Click in the barcode region.

Properties of an anchor barcode

To modify the properties of an anchor barcode:

  1. Highlight the barcode
  2. Right-click in the barcode region and select the Properties… item from the shortcut menu
  3. Modify properties in the dialog box that opens:

    On the General tab:

    • Use for Document Definition matching – this option must be enabled for the program to use the barcode for Document Definition matching
    • Use for Document Definition identification – enable this option to use the barcode for Document Definition identification
    • Value – if you are using an anchor barcode as an identifier, you can set its value. To automatically insert a value, click the Hint button
    • Required for Document Definition matching – if this option is selected, the Document Definition will be matched only if the barcode is matched. Select this option if there are many very similar Document Definitions in the batch that can be distinguished only by the values of their barcodes or even by the values of one of their several barcodes. In this case, selecting this option will speed up Document Definition selection. Do not select this option if you wish the Document Definition to be matched even if there is no barcode or if it is too faint.

    On the Recognition tab:

    • Code type – specify the barcode type (this is normally determined automatically)
    • Orientation – specify the barcode orientation.

    You can also configure barcode image processing options:

    • Invert – inverts the image
    • Remove texture - removes texture
    • Despeckle – enable this option to remove garbage from the image
    • Clear the garbage of specified size only – enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, garbage size will be selected automatically.


Specifying identifier values

Identifiers serve to determine to which form a page belongs and are used to select a Document Definition where the batch contains several Document Definitions with the original set of anchors. In the event of simultaneous processing of several forms in a single flow, the program determines what form this page belongs to based on the location of identifiers.

If an anchor barcode or anchor text is used as an identifier, you can specify the values of such identifiers. In this case when applying a Document Definition the program will compare recognized data in the image with the value of the identifier, and the Document Definition match will be possible only if these values match.

The values of identifiers can be set in the properties dialog box of static elements on the General tab. Values of text and barcodes can be entered automatically. The Hint button is intended for this purpose.

Note: If it is possible to identify a page with absolute certainty based on the location of elements alone, you do not have to set the values. You should use this functionality only when absolutely necessary because assigning the identifier value launches the recognition module at the stage of Document Definition application, thereby slowing down the matching of Document Definitions with images.


Creating fields of a Document Definition

Fields are intended for data extraction.

To work with fields in the Document Definition editor, switch to field marking mode by clicking the [image] button.

All regions on the image intended for data capture must be marked as fields. Data in these fields are recognized and their value can be exported.

Fields have names, the lists of which are displayed in the document structure window. Normally, fields have a region on the image, but you can also create fields without a region (for example to store intermediate results).

The program recognizes the following field types:

Field | Toolbar button
Text entry field |
Checkmark |
Checkmark group |
Barcode |
Picture |
Table |
Field group |
Region for field without region |
Non-recognized region |

To create a field:

  1. Select the field marking mode.
  2. Select the tool for creating a field of the required type.
  3. Position the cursor in the corner of the field, left-click and drag the cursor diagonally to the opposite corner
    or
    Shift-Click in the field region.

The field region will be framed with a rectangle. Its color depends on the field type.

The created field is assigned a default name corresponding to the explanatory text that is nearest to the field region. This name will appear in the field list on the Fields tab in the document structure window.

The field is assigned default properties.

A field can also be created the following way:

  1. Select the Create Field command from the Edit menu or from the local menu of a page in the field list on the Fields tab.
  2. In the Field Properties dialog box, specify the field properties and click OK.
  3. The new field will be added to the list. It will be marked with a red asterisk as a field without region.
  4. To create a field region, click the [image] button on the toolbar and draw the region area on the image. You will be prompted to select an appropriate field name from the pop-up list.

To exclude an area from recognition, draw a non-recognized region on the the image. For this, use the [image] button.

  • Creating checkmark groups
  • Creating tables
  • Creating a field group
  • How to change a field name
  • Copying, moving, deleting fields
  • Fields without a region
  • Field properties

Selecting multiple fields

ABBYY FlexiCapture includes a feature that lets you select multiple fields quickly if you want to edit a group of fields by type. To do so, open the Edit menu and click Select Fields by Type…, or press Ctrl+Shift+F. In the dialog box that opens, specify the field types you want to select and click OK. To select all fields at once, click the Select All button.


Creating a checkmark group

A checkmark group combines logically linked checkmarks normally corresponding to mutually exclusive answers to the same question. In this case the program will select one checkmark from the group and export its value. However, this is not an obligatory condition. You can allow the program to mark more than one checkmark in a group (select the relevant option in the checkmark group properties).

One way to create a checkmark group:

To create a checkmark group:

  1. After selecting the [image] tool, create checkmarks belonging to the group.
  2. Select the [image] tool and frame with a rectangle all checkmarks to be included in this group.
  3. Checkmarks inside the rectangle will be highlighted. Their names in the document structure will be combined and placed under the name of the checkmark group. The properties of checkmarks belonging to the same group are identical and cannot be edited individually.

Another way to create a checkmark group:

You do not need to highlight each checkmark belonging to the group.

  1. Without highlighting checkmarks individually, select the [image] tool and highlight with a rectangle all checkmarks to be included in this group.
  2. Checkmarks inside the rectangle will be detected automatically, named and combined into a group.


Creating a field group

Fields can be combined into groups to enable clear presentation of document structures and to create recurring field groups. For example a city, street and building number can be combined into the Home Address group. You can create fields for an Office Address group simply by copying the Home Address field group.

To create a field group:

  1. Create fields to be included in the group.
  2. Select the [image] tool and frame inside a rectangle all the fields to be included in this group.
  3. Fields inside the rectangle will be highlighted. Their names in the document structure will be combined and placed under the name of the field group.

If the form has recurring field groups, after creating one group you can create several instances of the same group. All field properties as well as rules set within the group will work for each group instance. See Fields with several instances.

You can also copy a field group, but in this case the copying will result in the creation of another independent group.


Creating a table

ABBYY FlexiCapture lets you create Document Definitions for documents containing tables. Creating Table fields can considerably simplify configuration, data extraction, and data export from tables. A Table field is a set of same-type columns and recurring lines.

Table columns can be of the following type:

  • text
  • checkmarks
  • barcodes
  • pictures

To create a table:

  1. Select the [image] tool and frame the table region with a rectangle. The table header must not be included in the selected region. An additional table processing tool for deleting a separator will appear on the toolbar:
    Delete Separator
  2. Mark off table cells by drawing the required number of separators. To create separators, click where the separator should be placed. To create vertical separators, place the cursor into the table area, press the Shift key and click once. To create a horizontal separator, perform the same operation holding down the Alt key. You can also detect separators automatically: select the created table and then select the items Autodetect Vertical Separators and Autodetect Horizontal Separators from the local menu.
  3. Create table columns. To create a column, click in the column region and select a column type from the dropdown list.


How to change a field name

You are here: Program settings > Document Definitions > Creating Document Definition fields > Renaming a field

Changing a field name

To rename a field:

  • Click the field name in the document structure, right-click and select Rename from the shortcut menu, and enter a new name.

or

  • Click in the field region on the image, right-click and select Suggest Name from the shortcut menu. The field will be assigned a name corresponding to the explanatory text that is nearest to the field region.

or

  • Click in the field region on the image, right-click and select Get Name from Image… from the shortcut menu. Next, highlight with your cursor the explanatory text that can be used as the field name. The field name will change to the selected text.

or

  • Open the field properties dialog box and change the name on the General tab.


Copying, moving, deleting fields

Fields can be copied, deleted, moved, and modified. Names of copied fields have different numbers. To highlight several fields, use Ctrl-Click. The action selected will then be applied to all highlighted fields.

To delete a field, highlight it and press the Delete key or select Delete from the shortcut menu. To delete only the region and keep the field in the document structure, press Shift+Delete or select Delete Region from the shortcut menu for the field. See Fields without a region.


Fields without a region

Field may have no region on the image. Names of fields without a region are marked with a red asterisk in the list. Such fields may be used to store intermediate results of calculations performed with the values of fields being recognized. For example, you can combine the values of several fields with the help of the field values merge rule and save the result to a field without a region.

Fields without a region have all the properties of the field type they belong to. The values of such fields can also be exported.

There are two ways to create a field without a region:

  1. In the Document Definition editor window, select the menu item Edit>Create Field and create a field of the required type. The field name will appear in the list marked with an asterisk. In this case, the program creates a field in the document structure, but does not create its region on the image.
  2. Another way is to delete the region of an ordinary field. Highlight the required field on the image or in the list and select Delete Region from the shortcut menu. The region will be deleted and the field name will be marked with a red asterisk.

To create a region for fields that do not have a region on the image, select [image] on the toolbar and highlight the required region with your cursor. If the list contains fields marked with an asterisk, the program will ask you to select the name of one such field.


Exclusion of a region from recognition

Sometimes it is necessary to exclude a certain region from recognition, for example, a region with explanatory text that complicates data extraction from the field.

To exclude a region from recognition, select the [image] tool and highlight the region to be excluded with your cursor.


Creating a field with a non-rectangular region

Sometimes it is necessary to create fields with non-rectangular regions, as exemplified by the questionnaire:

To create a non-rectangular field region:

  1. Select the tool for creating a field of the required type.
  2. Select a rectangular region where you can add or remove fragments to create a region of the required shape.
  3. Select the tool [image] and make sure that the rectangular region is highlighted.
  4. To add a fragment to the region: press Shift (the cursor will appear as a "plus" sign) and highlight a fragment you want to add.
  5. To exclude a fragment from the region: press Alt (the cursor will appear as a "minus" sign) and highlight a fragment you want to exclude.


Fields with several regions

A field can comprise several regions on the image. These regions may be located a distance apart from each another or even on different pages. Values from all regions of the same field are combined and exported together as one field.

It is convenient to create several regions for fields located on several pages, for example, for large tables.

Collapsed Show example

In such fields, values are sorted vertically, that is, the value of a region which has the uppermost boundary will be the first in the field.

To create a field with several regions, proceed as follows:

  1. Create a field.
  2. Highlight it, right-click in the field region and select Continue Region… from the shortcut menu.
  3. Move the region image to the required location on the page.


Fields with several instances

Recurring elements may occur in your fields. These are fields and field groups that occur in the form a number of times and describe similar objects, such as the same details of several employees, children, accounts, etc. Fields with several instances are created for such objects.

Any field can have several instances. Their regions can be located at a distance from one another or even on different pages. Field instances have the same properties. They are exported to separate files or database tables.

You can create several instances for a field group if the form has recurring groups.

Collapsed Show example

To create a field with several instances, proceed as follows:

  1. Create a field
  2. Highlight it, right-click in the field region and from the shortcut menu select New Instance…
  3. Move the region image to the required location on the page.


Field properties

It is very important that the properties of each field are configured correctly. Field properties affect the quality of their recognition and determine whether their values will be exported and submitted to the operator for verification. Certain properties are very important for data recognition. For example, the marking method of the text entry field: if it is configured incorrectly, the marking that does not disappear during scanning will not be separated from characters, and the recognition results may be unsatisfactory.

Fields of each type have their own set of properties. When you create a field of a certain type on the image, it is assigned default properties.

How to change field properties:

  1. Highlight the field name in the document structure or the field region on the image, right-click and select Properties… from the shortcut menu.
  2. Modify field properties in the dialog box that opens.

Read more about field properties:

Text entry fields
Checkmarks
Checkmark groups
Barcodes
Pictures
Tables
Field groups
Service fields


Text entry fields

When you create a text field, it is assigned default properties. You can change properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

Basic properties
Data types
Recognition properties
Verification properties
Rule validation
User Script (Custom Action)


Basic field properties

You can specify basic properties of a field on the General tab.

  • Name
    The name of a field. The name is assigned automatically when the field is created and corresponds to the explanatory text closest to the field. When editing the properties, you can change the name assigned by default. For details, see How to change the field name.
  • Caption
    The field's caption in the data form.
  • Export field value
    Determines whether the field is exported. This option is enabled by default, but you can disable it if, for example, the field's value is only used to calculate the value of another field and does not need to be exported on its own (see Rule validation for details). This option is available for all fields.
  • Read-only
    Indicates that the field can only be read. If it is enabled, the operator cannot change the value. This property is useful for fields the value of which is calculated automatically, e.g. fields the value of which is determined by adding or concatenating the values of other fields (see Rules for details).
    This property is available for fields of the Text, Barcode, Checkmark and Checkmark Group type.
  • Show on verification
    Indicates whether the field is displayed in the data form. This property is enabled by default and available for all fields.
  • Index field
    If this property is enabled for a field, documents can be sorted and retrieved using the field's value. Fields of the Text and Barcode types have this property.
  • Show field in preview pane
    Indicates whether the value of field is displayed in the in preview pane if the group to which it belongs is collapsed.
    This property is available for fields of the Text, Barcode, Checkmark,Service Field and Checkmark Group type.
  • Can have region
    Enable this option if you want to specify a region for a field or a group.
    This property is available for all fields except Service Field.
  • Should be matched
    If this option is enabled for a field, this field will be highlighted during verification if its region could not be found. It will also be selectable in the Go to Next Unmatched Field on Matching mode.
    This option is available only if the Can have region option is enabled.
  • Comment
    The comment of a field.

Note: An icon indicating a field's type is displayed to the right of every field's name.


Data types of the text entry field

Some of the most important text field parameters, that can affect the recognition quality, preliminary check and field data modification, are data type settings.

ABBYY FlexiCapture uses data types when recognizing text in fields. Specifying the correct data type improves recognition quality and increases the confidence percentage of recognized symbols, thereby reducing the workload of the data verification operator.

ABBYY FlexiCapture's data type creation features are very flexible. You can select data types from a list of existing types or create custom types using the regular expression alphabet or a user dictionary that is suitable for the task at hand.

You can specify data types of text fields on the Data tab of a field's property dialog box. This article covers settings that are common to all fields and settings of specific field types.

General settings for text fields

  • Data type (drop-down list)
    Use this drop-down list to specify the field's data type (i.e. the type of data you expect to see in the field), such as an address, time, date, a sum of money, a name, a code, text or a number.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled.

    • The default value is also assigned to a field if the field's region is deleted. If the field was left empty by a user (this can be done, for example, on the verification stage), the default value will not be assigned to the field.
    You can change the default value. If the default value is empty, fields will remain empty until a value is specified.
    Note: This option is available for text fields and text columns of tables.

  • AutoCorrect options
    These options determine the way the program automatically corrects the values of fields. Such corrections can include the replacement or deletion of extra characters or spaces and changing lower-case characters to the upper case and vice versa.

    Automatic correction can be used to format data, decreasing the workload of operators that prepare data for export. You can use the standard AutoCorrect options available in ABBYY FlexiCapture or a custom script, which can be particularly useful for performing complex formatting operations. For details, see Processing entered values.

  • Validation
    This group of options contains settings that determine how values are checked, and set limits on values, such as limits on the number of characters, the minimum and maximum values for fields that contain numbers, or a range of permitted dates.
    The Cannot be blank option in this group determines whether this field is required.
    • Collapsed External sources of permitted values

    The range of permitted values of a field can be limited using an external database or text file. Limitation and checking parameters depend on the field's data type. If recognized data does not satisfy checking parameters, you will see formatting errors in the document window during verification.

    Using an external source of permitted values will let you:

    • Improve the recognition quality of a field by specifying permitted words in addition to permitted characters. Values from this list will be used by the program during recognition, and output values will be either identical to an item from the list or as close to a list item as possible. If the program cannot find recognized data in the dictionary, only the alphabet will be used during recognition. Use content type settings of fields to set up custom dictionaries.
    • A field that has already been recognized can be checked against a local or external list of permitted values. If the recognized value cannot be found in the list, a formatting error warning will be displayed. You can load and set up a list of permitted values using the validation options of fields.
  • Use normalization
    Use this option to specify the desired format of text fields of the Time, Date, Amount of Money and Number types. This option is disabled by default, and recognized data is displayed in the form and exported in its original format.

Setting of text fields of specific types

Collapsed Address

Text fields of the Address type have the following settings:

  • Details
    Options in this group let you change the recognition language, specify a custom dictionary and select more specific types of data, such as e-mail addresses and postal addresses. This group of options is displayed when you click the Edit... button to the right of the text field with a summary of the selected field's properties.
    • Language
      The recognition language of the field.
    • Content settings: General
      In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do so, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the replacement or deletion of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of the AutoCorrect options field. For details, see Processing entered values.
  • Validation
    Use the options in this group to place constraints on the contents of fields, such as a limit on the amount of characters it can contain.
    For details, see Value range constraints for text data type.

    The Cannot be blank option in this group determines whether this field is required.

Collapsed Amount of Money

Text fields of the Amount of Money type have the following settings:

  • Process value as text
    Enable this option if you want the value of a field to be processed as regular text. This can be useful when a sum of money cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.
  • Details
    Use the settings in this group to change the recognition language, specify additional parameters for whole numbers and fractions, and select more specific data types such as two-digit numbers and Roman numerals. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The field's recognition language.
    • Content settings: General
      This group contains additional settings for whole numbers and fractions.

      For negative numbers, you can allow the minus sign to be on the right of the number (example: - 54), and allow negative numbers to be written as numbers in parentheses, making (54) equivalent to -54.

      The following options are available for fractions: Must have fractional part, Allow more than two digits in fractional part: 54.3679 and Allow space as decimal mark: 54 36.

      If the Only integer values option is selected, separators between the whole number and the fraction will be ignored. These include decimal points, commas, hyphens, equal signs and spaces.

      Note: The Allow space as decimal mark: 54 36 option will work only if the One word option on the Recognition tab is disabled.

    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of the AutoCorrect options field. For details, see Processing entered values.
  • Validation
    Checks whether a value falls within a specified range. To specify this range, click the Edit… button to the right of the Validation field. For details, see Value range constraints for numbers.
    The Cannot be blank option determines whether this field is required.
  • Use normalization
    Use options in this group to specify a custom format for values of the Amount of Money type. Click the Edit Normalization Settings… button to open the Currency Normalization Settings dialog that contains these options. The top part of this dialog contains an example of how a positive number and a negative number will look like after the settings are applied. These settings are described below:
    • Minimum number of digits in integer part
      Possible values range from 0 to 9.
    • Digit grouping
      Separates groups of three digits in numbers with spaces.
    • Digit grouping symbol
      The symbol that will be used to separate groups of digits. Possible values are space, comma, and period.
    • Decimal symbol
      The symbol used to separate the integer part of a decimal number from the fractional part. Possible values are a period or a comma.
    • Minimum number of digits after decimal marker
      The minimum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
    • Maximum number of digits after decimal marker
      The maximum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
      If this parameter is set to 0, the decimal fraction will be rounded to the nearest integer.
    • Use brackets for negative values
      Enable this option if you want negative numbers to be enclosed in parentheses instead of preceded by a minus sign.
    • Currency format
      Select the desired currency format from this drop-down list.

    Note: Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

Important!
Number data types shouldn't be used for fields that only contain digits but are more than just a number, such as card numbers and passport numbers. Using number data types for these fields can cause problems like the removal of zeroes from the beginning of values that start with zeroes. In such cases we recommend either creating a custom data type with an alphabet that includes all digits (from 0 to 9), using a regular expression. If you still want to use a number data type, you should enable the Process value as text option.

Collapsed Code

Text fields of the Code (codes include letters and digits) type have the following settings:

  • Details
    Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a social security number. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The recognition language for the field.
    • Content settings: General
      In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do so, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of the AutoCorrect options field. For details, see Processing entered values.
  • Validation
    Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
    The Cannot be blank option determines whether this field is required.
Collapsed Date

Text fields of the Date type have the following settings:

  • Process value as text
    Enable this option if you want the value of a field to be processed as regular text. This can be useful when a date cannot be brought to the standard format, or when you do not need to process it as a date. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.
  • Details
    This group of options can be used to change the recognition language, change the order of different parts of the date, add the time or day of the week, and select a more specific data type, such as a month in roman numerals. To change these options, click the Edit... button to the right of the field with a summary of the selected field's properties.
    • Language
      The recognition language for the field.
    • Content settings: General
      Settings for standard date types include: May include month in words (permits the month to be written in letters in addition to digits), May include day of week (permits the date field to include the day of the week), and May include time (permits the time to be included in the date field).
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
    • Order of date components
      Select one or more possible date types. If several date types are selected and the Use first acceptable date format option is not enabled, the suitable date format will be selected by the program.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of the AutoCorrect options field. For details, see Processing entered values.
  • Validation
    Checks if the date falls within a specified range. To specify this range, click the Edit… button to the right of the Validation field. For details, see Values range constraints for date.
    The Cannot be blank option determines whether this field is required.
  • Use normalization
    Options in this group can be used to specify a custom output format of values of the Date type. To change these settings, click the Edit Normalization Settings… button. The top part of the Date Normalization Settings dialog contains examples of entries as they will appear after all settings are applied. These settings are described below:
    • Date format
      The output format for dates.
    • Date delimiter
      The character that will be used to separate different parts of the date.
    • Has day of week
      Indicates that the day of the week is the first part of the date. If no day of the week can be found during recognition, the program will determine the day of the week based on the date.
    • Has time
      Indicates that the date is followed by the time. If no time can be found during recognition, the value 00:00 will be added to the date. The format of the time is determined by the two following options.
    • Time format
      The output format of time values.
    • Time delimiter
      The character used to separate parts of the time value.

    Note:
    Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

    Note: The program includes an intellectual data detection mechanism.
    For example, if the program encounters an ambiguous date (say 01/02/02), it will offer a list of possible values based on the settings specified.
    If the date contains a day of the week that does not match the date, a formatting error will be issued during verification.
    Values with spelling or recognition errors will be automatically replaced with the correct ones(e.g. "Wensday " will be changed to "Wednesday" and "Septembere" will be changed to "September").

Collapsed Name

Text fields of the Name type have the following settings:

  • Details
    Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a last name or a surname. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The recognition language for the field.
    • Content settings: General
      In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do so, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of theAutoCorrect options field. For details, see Processing entered values.
  • Validation
    Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
    The Cannot be blank option determines whether this field is required.
Collapsed Number

Text fields of the Number type have the following settings:

  • Process value as text
    Enable this option if you want the value of a field to be processed as regular text. This can be useful when a number cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.
  • Details
    Use the settings in this group to change the recognition language, specify additional parameters for whole numbers and fractions, and select more specific data types such as two-digit numbers and Roman numerals. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The field's recognition language.
    • Content settings: General
      This group contains additional settings for whole numbers and fractions.

      For negative numbers, you can allow the minus sign to be on the right of the number (example: - 54), and allow negative numbers to be written as numbers in parentheses, making (54) equivalent to -54.

      The following options are available for fractions: Must have fractional part, Allow more than two digits in fractional part and Allow space as decimal marker.

      If the Only integer values is selected, separators between the whole number and the fraction will be ignored. These include decimal points, commas, hyphens, equal signs and spaces.

      Note: The Allow space as decimal marker option will work only if the One word option on the Recognition tab is disabled.

    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of the AutoCorrect options field. For details, see Processing entered values.
  • Validation
    Checks if the date falls within a specified range. To specify this range, click the Edit… button to the right of the Validation field. For details, see Value range constraints for numbers.
    The Cannot be blank option determines whether this field is required.
  • Use normalization
    Use options in this group to specify a custom format for values of the Number type. Click the Edit Normalization Settings… button to open the Number Normalization Settings dialog that contains these options. The top part of this dialog contains an example of how a positive number and a negative number will look like after the settings are applied. These settings are described below:
    • Minimum number of digits in integer part
      Possible values range from 0 to 9.
    • Digit grouping
      Separates groups of three digits in numbers with spaces.
    • Digit grouping symbol
      The symbol that will be used to separate groups of digits. Possible values are space, comma, and period.
    • Decimal symbol
      The symbol used to separate the integer part of a decimal number from the fractional part. Possible values are a period or a comma.
    • Minimum number of digits after decimal marker
      The minimum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
    • Maximum number of digits after decimal marker
      The maximum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
      If this parameter is set to 0, the decimal fraction will be rounded to the nearest integer.
    • Use brackets for negative values
      Enable this option if you want negative numbers to be enclosed in parentheses instead of preceded by a minus sign.

Note: Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

Important!
Number data types shouldn't be used for fields that only contain digits but are more than just a number, such as card numbers and passport numbers. Using number data types for these fields can cause problems like the removal of zeroes from the beginning of values that start with zeroes. In such cases we recommend either creating a custom data type with an alphabet that includes all digits (from 0 to 9), using a regular expression. If you still want to use a number data type, you should enable the Process value as text option.

Collapsed Text

Fields of the Text type have the following settings:

  • Details
    Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a last name or a surname. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The recognition language for the field.
    • Content settings: General
      In this case we recommend connecting a built-in or custom dictionary. The value of the field will be checked against this dictionary. To use a built-in dictionary, select the Use built-in dictionary option. To use a custom dictionary, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.
      Note: DIC files are basically text files containing a list of words, with one word per line. This file format originated in Microsoft Office.
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of theAutoCorrect options field. For details, see Processing entered values.
  • Validation
    Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
    The Cannot be blank option determines whether this field is required.
Collapsed Time

The following settings are available for fields of the Time type:

  • Process value as text
    Enable this option if you want the value of a field to be processed as regular text. This can be useful when a sum of money cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.
  • Details
    Use the settings in this group to change the recognition language, change the formatting of times and select more specific data types such as time in the 12-hour format. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.
    • Language
      The recognition language for the field.
    • Content settings: General
      Used for standard time notations.
    • Content settings: Special
      Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.
  • Default value
    The value automatically assigned to the text field if it turns out to be empty after the document definition is applied or the document is assembled. See above for details.
  • AutoCorrect options
    Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit… button to the right of theAutoCorrect options field. For details, see Processing entered values.
  • Validation
    The Cannot be blank option in this group determines whether the field is required.
  • Use normalization
    Use options in this group to specify a custom format for values of the Time type. Click the Edit Normalization Settings… button to open the Time Normalization Settings dialog and specify the format of times and the symbol used to separate parts of times (e.g. separate minutes from hours with a colon).


Creating custom data types

To create a new data type, select the desired item from the Data type list on the Data tab of the field's properties. You can select any item from the list that corresponds to the semantics of your custom data type: this will not affect the nature of the new data type, but it will be stored in the selected category.

Click the Edit… button to the right of the Details field.

In the dialog box that opens, select Special in the Content settings field.

Click the New…button to the right of the Data types for selected language field.

Follow the instructions of the data type creation wizard.

In the first window pf the wizard, select how your data is to be created. You can create a new data type based on a dictionary, a regular expression, an alphabet, or an existing data type (e.g. by adding desired characters to its alphabet or by expanding its dictionary).

To create a new data type based on a dictionary, a regular expression or an alphabet:

  1. Select New data type based on and then select the basis to be used for your new data type: a dictionary, a regular expression or an alphabet. Then select Language (locale) for your data type and click Next.
  2. If you choose to create a new data type based on a dictionary, in the next window the wizard will prompt you to select the type of dictionary to be used.
    Select Use built-in dictionary if you wish to use the built-in dictionary for the language selected in the previous window. To check if the dictionary contains a particular word, click View… and type the word. Clicking the View button will either display the inflected forms of the word or a warning message saying that there is no such word in the dictionary.
    Select Use custom dictionaries if you wish to use a custom dictionary and click Edit… to edit the dictionary. You can create a custom dictionary either by adding words to one by one (click the Add... button to add a word), or by loading a list of words from a file (click the Load... button and specify the path to the desired file with the extension *.txt or *.dic). Click Next.
    Note: The DIC file is a Microsoft Office custom dictionary. This is a plain text file with a list of words, one word by line.
    Note: For a custom dictionary that contains words of the following type:

    201.01.063.030
    201.01.063.031
    201.01.063.040

    a *.txt file with the following data must be created:

    DICTIONARY_PROPERTIES=USE_CONFIDENCE
    201.01.063.030 100
    201.01.063.031 100
    201.01.063.040 100

  3. If you choose to create a new data type based on a regular expression, the wizard will prompt you to enter a regular expression. Use the [image] button to the right of the regular expression field to build your regular expression. For details, see Alphabet used in regular expressions. Click Next.
  4. If you choose to create a new data type based on an alphabet, or if you used characters in the regular expression that are not included in the alphabet of the language, the wizard will prompt you to specify an alphabet for your data type. You can either type the desired characters directly on the keyboard, or click Customize… and then use your mouse to select the desired characters.

    To add punctuation marks and excluded (prohibited) characters, click Advanced Parameters…. You can either type the prohibited characters directly on the keyboard or click the button to the right and use your mouse to select the desired characters.

    Click Next.

  5. In the final window of the wizard, type in a name for your new data type and a short description. If you wish to edit the properties of the newly created data type, select the Edit properties option. Click Finish.

To create a new data type based on an existing data type:

  1. In the first window of the data type creation wizard, select Data type based on existing types. Select the desired language(s) and click Next.
  2. In the next window, select the source data type(s) based on which you are going to create your new data type. The data types that correspond to the selected languages are listed in the List1 in the left-hand side of the dialog box. The Text folder contains the natural languages selected in the first window. The Custom folder contains the data types created by users. The other folders contain the data types corresponding to the category and the special type of content.
    To select a source data type, select it in the List1field (hold down the Ctrl key to select more than one) and then click Add -> to transfer it to the right pane. Click Next.
    Note: If a new data type is based on several types, then the compliance of the whole field to at least one data type will be checked.
  3. In the final window of the wizard, type in a name for your new data type and a short description. If you wish to edit the properties of the newly created data type, select the Edit properties option. Click Finish.

The newly created data type will appear in the list of predefined data types when you select the content that was selected when creating the data type.

To specify the newly created data type for your field:

  1. On the Data tab of the field properties dialog box, select the desired item in the Data type list;
  2. Click the Edit… button to the right of the Details field;
  3. In the Content settings list, select Special;
  4. In the list that appears, select the data type you created (custom data types are marked with a special symbol) and click OK.


Value range constraints for text data type

In the Validation Settings dialog box you can specify the value range constraints for text entered into the field.

Note: The program will treat as text type not only the data types with Text content, but also data types with other content for which the Process value as text option is selected.

  • Maximum length – specify the maximum length of text in the field;
  • In the Content constraint field, select Regular expression from the list if a regular expression should be used to check field values.

    The [image] button will help you to form a regular expression correctly. For details see Alphabet used in regular expressions.

    To make error messages more readable, in theRegular expression description field, provide a description of the regular expressions that will be used in error messages.

  • In the Content constraint field, selectAllowed values from the list if you need to specify a list of allowed values. To add a value, clickAdd… and enter the value.To edit a value clickEdit…, to delete a value, click Delete. To load possible values from a file, click Load…
  • Select the Use external source of allowed values option if recognized values need checking in the list of admissible values from an external text file or a database. To specify the source of values, click the Edit… button. In this type of check the list of admissible value is not copied to the project and connection to the external source is carried out straight during the check.
  • Treat validation error as warning – Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the operator is required before sending.


Value range constraints for numbers

To specify the vale range constraints for numbers:

  1. Enable the option Use constraints.
  2. Specify the minimum and maximum number values.
  3. Treat validation error as warning – Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning.

When processing documents, the program will check whether the entered value is within the specified interval.


Values range constraints for date

In the Validation Settings dialog box you can specify the interval for the date entered in this field.

  1. Enable the option Date must be within the following interval.
  2. Select Fixed to set a fixed time interval or select Relative to verification date to set a time interval relative to the document verification date.
  3. Enter the beginning and end of the interval.
  4. Treat validation error as warning – Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning.


Processing the entered value for text data type

You are here: Program settings > Document Definitions > Field properties > Processing the entered value

Processing entered values

For any data type, you can perform automatic processing of the entered value: remove white spaces, convert letters to uppercase or lowercase, automatically replace specific characters or text. To enable automatic processing of field values, on the Data tab of the field properties dialog box, click the Edit… button to the right of the AutoCorrect options field.

Select the desired automatic processing options.

If Apply AutoCorrect only once after recognition is selected, automatic processing is performed only once after the field value is recognized. Otherwise, automatic processing is performed each time the value in the field changes.

  • To perform automatic replacement of characters in the recognized field value, click the Edit… button to the right of the Replace characters field. In the dialog box that opens you can add characters for automatic replacement. Added values are sorted in alphabetical order. If the specified characters occur in the recognized field value, they will be replaced automatically. You can specify the following replacement parameters:
    1. In the Replace field, enter one or more characters to be replaced.
    2. In the With field enter a character or a string for replacement.
      Note: The string can apply if replacement is done in the whole text. For other options (Prefix, Suffix, Prefix and Suffix), only the first character applies.
      Collapsed Show me the example

      As replacement is done in Prefix, "A" is replaced with the first character of the replacement string.

      As replacement is done in Whole text, each character of the "ENT" string is replaced with "WXY".

    3. In the Where field choose whether to replace specified characters in prefix, suffix, both prefix and suffix or in the whole text.
      If Prefix is selected, all consecutive characters specified in the Replace list will be replaced starting from the beginning of the text. For Suffix, character replacement is done starting from the end of text.
      For example, if you choose to replace " B" with "%" and "AC" with "#" in prefix, the string "ABC ENTERTAC CORP" will be converted to "#%#%ENTERTAC CORP".
      Collapsed Show me the example

  • To perform automatic replacement of the entire recognized field value or separate words in the field value, click the Edit… button to the right of the Replace text field.

    In the dialog box that opens you can add words and expressions for automatic replacement. To replace only whole fields, select Match entire field contents.

    If you enable the option Exact search, the program will search and replace the exact word or expression you have entered, or if you enable Fuzzy search, the program will search and replace a word or expression that is similar to the one you have entered. The number of allowable errors depends on the length of the word.

    Enable the option Match case for case-sensitive replacement words or expressions.

  • Choose one of the method of text letters conversion in the Change capitalization dropdown list:

    None – without conversion;

    UPPER – all letters will be changed to uppercase;

    lower – all letters will be changed to lowercase;

    First upper – the first letter will be uppercase and the remaining ones - lowercase.

  • Remove excess spaces – enable this option if you want to remove whitespaces.

You can also use an autocorrection script for auto-replace: select the Use script option, click Edit… to open the script editor, and type in the code of the script.


Text field recognition options

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties…item in the field's shortcut menu). Correctly determined field values will considerably increase recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following options:

  • ICR (hand-printed) – enable this option if static text in this field is handprinted.
  • OCR (printed) – enable this option if static text in this field is printed. Select the print style from the dropdown list (typographic, dot-matrix printer, typewriter, etc.). See also Supported text types.
  • Advanced – use this option to select several text types or to specify a custom text type. This option also allows you to load a pattern file in *.ptn format. You can create user pattern in ABBYY FineReader Professional/Corporate Edition 9.0 (or earlier) or in ABBYY FineReader Engine 9.0 (or earlier).
    Collapsed Pattern
    A pattern is a set of pairs "a character image – the character itself" created during pattern training. A user pattern is used as a source of additional information during recognition. The pattern training is used for:
    • texts set in decorative fonts;
    • texts containing unusual characters (e.g. mathematical symbols);
    • long (more than a thousand pages) documents of low print quality.
    To load a pattern, click Modify…. In the dialog box that opens, select Use pattern and specify the path to the file.
  • Marking type – select the marking type; to simplify your choice, select samples from the dropdown list. If the marking disappears during scanning, your marking type is monospaced (gray boxes). If the marking does not disappear during scanning and is divided into cells for character spaces, you must enter the total number of cells. When the program detects fields with such marking automatically, the number of cells is also determined automatically.
  • Letter case – select the case of letters in the field. If both lowercase and uppercase letters are possible, leave the Auto option enabled.
  • Orientation – specify the text orientation.
  • Enable the One line option for one-line fields.
  • For fields whose value will always consist of a single word, enable the One word option. Select this option if you want to apply a regular expression to the whole field irrespective of the number of words in it.

Specify image pre-processing settings:

  • Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).
    • Autodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.
    • Invert inverts images completely.
    • Don't invert keeps original colors (this option is enabled by default).
  • Remove texture – removes texture.
  • Despeckle – enable this option to remove garbage from the image.
  • Clear the garbage of specified size only – enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

You are here: Program settings > Document Definitions > Field properties > Verification properties

Verification settings

Verification is checking of captured data by an operator. The program will highlight unreliably recognized characters in red and ask the operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

If a field should be verified, keep the Requires verification option selected and then choose how characters should be displayed to the verification operator:

  • Do not highlight characters - Unreliably recognized characters will not be highlighted.
  • Highlight characters if confidence level is less than - Only those characters will be highlighted whose confidence level is less than the threshold value specified in this field (possible values are 40%, 60%, and 80%).
  • Highlight all characters - All unreliably recognized characters will be highlighted.

Group verification

If group verification is required, select the Send to group verification option. Next, specify what characters should be submitted for group verification. You have a choice of two options:

  • Highlighted characters only
  • All characters

Select a character set to submit for group verification:

  • Digits only
  • Custom
    If required, modify the custom character set by clicking Modify… and typing the necessary characters in the Group Verification Charset dialog box.

Field verification

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

  • Always
    The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a dotted red line.
  • If field has format errors or if percentage of highlighted characters in field is greater than or equal to
    The field will be marked as requiring field verification if it contains format errors or if the field verification threshold Collapsed The field verification threshold is the percentage of uncertain characters in a field, that, once reached, indicates that the field requires verification..
    If you specify a threshold value of 0%, the field will be submitted for field verification if it contains at least one highlighted character. You can enter values in this field manually or click the arrow buttons on the right to increment or decrement it by 10%.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two operators, select the Requires double verification option.


User Script

You are here: Program settings > Document Definitions > Field properties > Custom action

User Script (Custom Action)

User script is a custom scripting rule triggered by the user when viewing a field during field verification or in the document editor. The script is triggered by clicking … to the right of the field value or by pressing Ctrl+Shift+A.

You can set the custom script on the Custom Action tab of the field properties dialog box (right-click on the field and select Properties... from the context menu). To add or delete fields information about which will be available in the user script, use the Add… and Delete buttons. To edit the script, use the Script Editor window which opens when you click Edit…

To make the script accessible to the Operators, select Enable Custom Action.

Note: The User script cannot be applied in the Web Data Verification station.

For details on script parameters see User script.


Checkmarks

Important! The properties of checkmarks combined into groups are configured for the entire checkmark group. If you attempt to edit the properties of a checkmark belonging to a group, a dialog box for editing checkmark group properties will open.

When you create a checkmark field, it is assigned default properties. You can change properties by selecting Properties… in the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

Basic properties
Recognition properties
Data types
Verification properties
Rule validation


Data types for checkmarks

The data type for checkmarks can be set on the Data tab of the field properties dialog box.

The data type for checkmarks determines the values to be assigned to the checkmark field for a selected and unselected checkmark. The corresponding value will be contained in the export results and in the Value property of the ICheckmarkValue interface.

Select the appropriate options for checkmark values:

  • Yes / No – if the checkmark has been selected, the field value is "Yes", if unselected – "No".
  • 1 / 0 – if the checkmark has been selected, the field value is 1, if unselected – 0.
  • <Checkmark name> / Empty – if the checkmark is selected, the field value will match the checkmark name, if unselected – the field will be assigned an empty value.
  • Custom – by enabling this option you can enter your custom values, Selected – for a selected checkmark, Not selected – for an unselected checkmark.


Checkmark recognition properties

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties…item in the field's shortcut menu). Correctly determined field values will considerably increase recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following options:

  • Checkmark type – select the checkmark type. This property is very important for correct checkmark recognition.

    Square – select this checkmark type if checkmarks are placed in restricted square frames. Examples: and [image].

    Without Frame – select this checkmark type if checkmarks are placed against a white background without frames. Examples: and [image].

    Auto – if you select this type, the program will automatically determine the checkmark type. This type should be selected only if the two other types are not suitable, for example, if a checkmark has a non-square delimiter. Examples: and [image].

    In the Auto mode, the program determines whether or not the checkmark is selected by comparing the image of the checkmark in the document being processed against the checkmark image on the form used to create the Document Definition. For correct checkmark recognition, it is necessary that a checkmark area in the Document Definition should be specified accurately. The Auto mode can apply to both fixed and flexible descriptions:

    • For fixed descriptions
      The checkmark on the form must remain blank. Whether the checkmark is selected or not is determined by comparing the checkmark area in the document being processed and the checkmark area in the Document Definition.
    • For flexible descriptions
      The reference value is the amount of black in the checkmark area in the Document Definition.

      • Whether the checkmark is selected or not is determined by comparing the percentage of black in the checkmark area in the document being processed and the checkmark area in the Document Definition.

  • Allow corrections – enable this option if you want to allow corrections of any checkmarks: in this case inked out checkmarks will be considered unselected. But if you have selected the Auto type, you may not allow corrections of such checkmarks.

Specify image pre-processing settings:

  • Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).
    • Autodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.

    • Invert inverts images completely.
    • Don't invert keeps original colors (this option is enabled by default).
  • Remove texture – removes texture
  • Despeckle – enable this option to remove garbage from the image.
  • Clear the garbage of specified size only – enable this option to remove garbage of a specific size only. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, the garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

You are here: Program settings > Document Definitions > Field properties > Verification properties

Verification settings

Verification is checking of captured data by an operator. The program will highlight unreliably recognized characters in red and ask the operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

Group verification

If group verification is required, select the Send to group verification option. Next, specify what characters should be submitted for group verification. You have a choice of two options:

  • Highlighted characters only
  • All characters

Field verification (only for checkmark groups)

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

  • Always
    The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a dotted red line.
  • If field has format errors or if percentage of highlighted characters in field is greater than or equal to
    The field will be submitted for field verification if there are format errors.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two operators, select the Requires double verification option.


Checkmark groups

Important! Group properties apply to all checkmarks belonging to a checkmark group.

The value of a checkmark group is a list of the names of the selected checkmarks separated by a semicolon (;) or an empty string if no checkmarks have been selected.

When you create a checkmark group, it is assigned default properties. You can change the properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

Basic properties
Recognition properties
Data types
Verification properties
Rule validation


Data types for checkmark groups

The data type for a checkmark group can be set on the Data tab of the field properties dialog box.

Allow empty selection – enable this option if at least one checkmark in the group must be selected. In this case, if no checkmark in the group has been selected, the program will display a relevant warning.

Allow multiple selection – enable this option to allow selection of multiple checkmarks in the group. If this option is disabled, the program will display a warning when several checkmarks in the group have been selected.

Treat validation error as warning – select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the operator is required before sending.

Export as number – if this options is selected, a check is carried out that all checkmarks are numbers. If several checkmarks are selected, the sum of checkmark values can be exported. The value of a checkmark group is available from scripts by using the Value property of the IField interface.

To change the name of a checkmark, select the line you need and click Edit…. In the dialog box that opens, provide a new name for the checkmark field and a new name to be assigned to the checkmark during export.

You can define the values to be exported for cases when no checkmark fields are selected and for cases when more than one checkmark fields are selected. To do this, select either <No item selected> or <Multiple items…> from the list, click Edit… and in the dialog box that opens specify the desired value in the Exported value field. If no export values are specified: a) an empty string is exported if no checkmark fields are selected, and b) if several fields are selected, the values of the selected checkmark fields are specified (separated by commas), or, if the Export as number options is selected, a check is carried out that all checkmarks are numbers, and the sum of checkmark values is exported.

Creating a checkmark group


Barcode

When you create a barcode field, it is assigned default properties. You can change properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties.

Important! A barcode can be highlighted as a field or as a static element. This depends on the barcode value in the documents being processed: if it is intended for Document Definition matching or identification, you have to create it in the static elements mode. Meanwhile, if a barcode is intended for data capture, you have to create it in the field marking mode. Barcode properties differ depending on whether it is a field or static element. This section describes the field properties, see also anchor barcode.

Basic properties
Recognition properties
Verification properties
Rule validation


Data types for barcodes

The data type for barcodes can be set on the Data tab of the field properties dialog box.

Select the appropriate options for barcode values:

  • Maximum length – specify the maximum number of characters in the field.
  • Treat validation error as warning – select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the operator is required before sending.


Properties of barcode recognition

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties…item in the field's shortcut menu). Correctly determined field values will considerably increase recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following options:

  • Code type – specify the barcode type (normally determined automatically). Click the Select Types… to specify barcode types manually.
    Note: Detecting barcodes of the QR Code, Aztec and DataMatrix types can slow down the performance, so select them only if barcodes of these types are present in your project. Detecting barcodes of these types must be done only if at least one Document Definition of the given type contains a fixed or flexible section that uses a 2d barcode (QR Code, Aztec or DataMatrix) or if a 2d barcode is used in a classifier loaded for the batch type.
    If Code 39 without asterisk barcodes are present in the project, this barcode type should also be specified explicitly, otherwise it is not detected.
  • Orientation – specify the barcode orientation.

Specify image pre-processing settings:

  • Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).
    • Autodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.
    • Invert inverts images completely.
    • Don't invert keeps original colors (this option is enabled by default).
  • Remove texture – removes texture.
  • Despeckle – enable this option to remove garbage from the image.
  • Clear the garbage of specified size only – enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, the garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

You are here: Program settings > Document Definitions > Field properties > Verification properties

Verification settings

Verification is checking of captured data by an operator. The program will highlight unreliably recognized characters in red and ask the operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

Field verification

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

  • Always
    The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a dotted red line.
  • If field has format errors or if percentage of highlighted characters in field is greater than or equal to
    The field will be submitted for field verification if there are format errors.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two operators, select the Requires double verification option.


Pictures

On creation, a picture is assigned default properties. You can change properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises four tabs for different groups of properties.

Basic properties
Recognition properties
Exporting pictures
Rule validation


Properties of picture recognition

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties… from the shortcut menu for this field).

  • Exclude from recognition – enable this option if the region of a Picture field must be excluded from the recognition regions of the other fields. (This option is only available for a Picture field and ensures compatibility with FormReader 6.5 templates.)


Exporting pictures

In a Document Definition, you can select export settings for each picture. To select picture export settings, right click the desired field, select Properties…, and then click the Export tab. You can select any of the following options:

  • File type: (TIFF, JPEG, PDF, PDF/A, BMP, JPEG2000, PCX packbits, PNG).
  • Quality: For TIFF, JPEG, and JPEG2000 files, you can select the quality of the resulting file, from best to low.
  • Color type: Color, grayscale, halftone (black and white).

You can also set the resolution of the resulting picture: selecting Change resolution to and either type in the desired resolution or select it from the list.

The name of the file the picture will be saved to, is formed automatically based on parameters specified by the user. To specify these parameters, click the Change… button and select desired options in the opened File Naming Options dialog. For more information, see Export File Naming Options.


Tables

When you create a table, it is assigned default properties. You can change properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises three tabs for different groups of properties.

Basic properties
Columns
Rule validation


Table columns

The Columns tab shows the list of columns of this table. Each table column belongs to a certain field type (see Creating a table) and has properties specific to this field type.

To edit the properties of one of the columns:

  1. Select its name from the list
  2. Click the Properties… button


Field group

When you create a field group, it is assigned default properties. You can change properties by selecting Properties… from the shortcut menu. The properties modification dialog box comprises three tabs for different groups of properties.

Basic properties
Fields
Rule validation


Group fields

The Fields tab shows the list of fields forming the group.

To edit the properties of one of the fields:

  1. Select its name from the list.
  2. Click the Properties… button

Creating a field group


Service Fields

When a service field is created, it will have the default properties which can be configured by clicking Properties… on the shortcut menu. The Properties dialog box has two tabs, one for each group of properties

Base Field Properties
Data Source Properties


Data Source Properties

On the Data Source tab, the source and the data type of the service field are specified:

  1. From the Source list, choose a data source for the field.
  2. If you select Document registration parameter or Batch registration parameter, specify the name of the registration property to be used as a data source in the Parameter Name field.
  3. For Data Type, select the desired data type of the service field.


Rule validation

You are here: Program settings > Document Definitions > Rule validation

Rules

Rules – offer an additional means of checking captured data. You can use rules to specify certain restrictions that apply to the data in particular fields (or, to put it another way, conditions to be met by the values captured from particular fields).

Additionally, you can use rules to process captured values. For instance, you can merge values from multiple fields, or substitute captured values by values taken from a database.

You can specify how strict a rule is, i.e. whether it should issue a warning or an error if it is violated. Fields with rule warnings will be marked with a yellow flag and fields with rule errors will marked with red flags. See Rule validation for details..

Rules are set up on the Rules tab of the properties dialog box of a field, section, Document Definition or another item for which rules can be specified.

Viewing rules

Use the Show rules drop-down list to choose which kind of rules to display:

  • refer to %0 – Shows only the rules that refer to the current object.
  • owned by %0 – Shows only the rules that are stored in the current object.
  • owned by %0 and its children – Shows only the rules that are stored in the current objects and its child objects (e.g. if the object is a group, the rules stored in the group will be shown together with the rules stored in fields that are part of the group).

Note: A new rule can be created if you choose to show rules owned by %0 and owned by %0 and its children. You cannot create a new rule if you select rules that refer to %0.

Collapsed Filtering rules

You can filter rules by name, by field, and by condition.

To open the Filter dialog box, click the Filter button on the Rules tab.

The following filtering criteria are available:

  • Rule name contains – Filters rules by name (select a desired name from the drop-down list).
  • Field– Filters rules by field (select a field to show only rules that make use of this field).
  • Apply rules – This group of options filters rules according to whether they have a condition that must be met before they are executed, and by these conditions. Select the Always option if you only want to see rules that are always executed, i.e. don't have a condition that triggers them. Select If this condition is true if you want to see rules that are triggered by one of the following conditions:
    • Belongs to set (exact-match) – Shows only rules whose allowed field values (i.e. those values that trigger the rule) are exactly the same as those specified in the filter.
    • Does not belong to set (exact-match) – Shows only rules whose prohibited field values (i.e. those values that do not trigger the rule) are exactly the same as those specified in the filter.
    • Is empty - Shows only rules which are applied if the field value is empty.
    • Is not empty Shows only rules which are applied if the field value is not empty.
    • Overlaps with set - Shows only rules whose allowed field values (i.e. those values that trigger the rule) contain at least one of the values specified in the filter.

Specifying multiple filtering criteria will show only those rules that meet all of them.

When you specify filtering criteria, they are displayed as a text string next to the Filter button. To clear the filter, click [image]. When you clear the filter, all the rules are shown. The filter is cleared automatically when you close the Rules dialog box.

Example of using the filter

Suppose you have set up the following two rules:

FirstRule is applied if Currency = EUR, USD

SecondRule is applied if Currency = EUR, RUR.

The table below illustrates which rules will be displayed for different filtering criteria.

Rule condition | Set of values | Displayed rules
Belongs to set (exact-match) | EUR, USD | FirstRule
Does not belong to set (exact-match) | EUR | —
Overlaps with set | EUR | FirstRule, SecondRule
Overlaps with set | EUR, XXX | FirstRule, SecondRule

Setting up rules

The list of rules contains all rules that have been set up and some additional criteria of each rule.

To create a new rule, click the New Rule… button on the Rules tab. In the dialog box that opens, select the type of rule you want to create and click OK. This opens the New <Rule Type> Rule which contains the following options:

  • Name - The name of the rule.
  • Show rule name in message to verifier - Enable this option if you want error notifications to contain the name of the rule that yielded the error. By default, notifications about rule errors appear as follows: "name of rule: error message". If this option is disabled, the notification will only contain the error message.
  • Severity - The severity of the rule. When a rule yields an error, an error message and a flag are generated. There are two possible flags: Error or Warning types.

    When an attempt is made to export documents with rule errors, a notification about this will be displayed. Documents with rule errors can still be exported

    Note: This option is not available for rules of the Calculate Sum and Merge Fields.

  • Apply rule - Options in this group let you determine when a rule is applied.
    • Always – The rule is always applied, i.e. it will be applied whenever changes are made to the fields monitored by the rule. This option is enabled by default.
    • If this condition is true If this option is enabled, the rule will only be applied when certain conditions are fulfilled. For details, see the Conditions for applying rules section of this article.
  • Enabled rule - Enables or disables the rule.

The following options depend on the rule's type:

  • Calculate Sum - Calculates the sum of the values of several fields and writes it to another field.
  • Merge Fields– Merges the values of several fields. You can add any type of separator when merging field values into one.
  • Database Check – Checks captured values against their counterparts taken from a database.
  • Check Sum – Calculates the sum of the values of several fields and checks it against a pre-defined number or the value of another field.
  • Script – A user-defined script that describes restrictions that apply to specific data.
  • Compare Fields – Compares the values of several fields.
  • Sum in Figures - Sum in Words (Russian) – Compares a sum written in words with the same sum written in digits (works only on Russian-language texts).

Conditions for applying rules

In the current version of ABBYY FlexiCapture, rules can be triggered when a certain field has a specific value. When you create or edit a rule, you can specify when you want the rule to be applied by selecting the Always or If this condition is true option. If you want to specify a condition that triggers the rule, select the If this condition is true option and then click the Edit button to the right of this option to open the Condition for Applying Rule dialog box. In this dialog box:

  • Select a desired field.
  • Select the condition that must be fulfilled to trigger the rule.
    • Belongs to set – The rule will be applied if the value of the field matches one of the allowed values you specified.
    • Does not belong to set – The rule will be not applied if the value of the field matches any of the prohibited values you specified.
    • Is empty - The rule will be applied if the field value is empty.
    • Is not empty - The rule will be applied if the field value is not empty.
  • You can also specify a range of possible (permitted) values of a field.
  • To add a value to the set of possible values, type in the value and click Add. To delete a value from the set, select the value and click Delete. You can also add an empty value to the set of possible values. To add an empty value, click Add without typing any values. The empty value will appear as <Empty value> in the set of possible values. A value can be added only once.

Conditions for applying rules can only involve text fields (including fields with continued regions), barcodes, and table columns. Conditions for applying rules cannot involve checkmarks, checkmark groups, fields with multiple instances, images, or table cells.

Important! If the Show on verificationoption is not enabled in a field's properties, errors related to this field will not be displayed during verification. This means that the document with this field will have an error flag that cannot be removed.

Note: Each rule issues either a warning or an error if it is violated. If an attempt is made to export documents with rule errors, an error message will be displayed and the documents will not be exported. Documents with rule warnings can be freely exported.

Rule chains

Rule chains are groups of rules with a specific order of application. This lets you set up several rules that involve the same field.

To create a rule chain:

  • Сlick the Chains… button in the Rules tab.
  • In the dialog box that opens, click the New Chain… button.
  • Provide the name of the rule chain and a comment (optional).
  • Click OK.

The new rule chain will be displayed in the list in the Chains dialog box. Next, add rules to the rule chain. To do so:

  • Click the Add Rule… button.
  • Select the desired rules.
  • Use the Move Up and Move Down buttons to arrange the rules in the order you want them applied.

Important! Each rule can only be a part of one chain.

Note: If you try to add a field that can be edited (the Read only option is disabled in its properties) to a rule, but this rule is already involved in a chain of rules where it can also be edited, you will be prompted to merge this rule with the chain of rules. If you agree to do so, and the rule to which you added the field belongs to another chain, the two rule chains will be merged into one.

Collapsed Where rules are stored

Rules are stored at the level of the item where they were created. This can be a field, a section, or the Document Definition itself. In most cases, it will not matter where the program stores the rules. However, if your Document Definition is fairly complex and has multiple field groups or recurring elements, be sure you know where each rule is stored. For instance, if you have a group of fields and some of its fields are subject to a particular rule, be sure to store this rule in the group or in one of its fields. Otherwise, when you create a new instance of the group, the rule will not be copied or applied to the new instance. In the properties dialog box of an item, you can see the rules that refer to the item, the rules owned by (i.e. stored in) the item, or the rules owned by the item and its children. Use the Show rules drop-down list to choose which kind of rules to display.


Values sum check rule

This rule is used to check the sum of values of several fields. The sum of values of specific fields is compared against a preset number or the value in a different field. For example, if your document contains fields with a salary amount, bonus amount, other compensation payments, and a sum total field, you can configure a rule that will check whether the sum of field values matches the sum total in the resulting field. An error message will be displayed in case of a mismatch.

Note: When applying this rule to a field of a Table type, the calculation depends on the level at which the rule was created. If you need to compare the sum of values of all cells of a table column with a calculated or given number, the rule must be created in the Document Definition Properties or in the document section properties. If you need to compare each cell of a column or the sum of all cells of a few table columns with a calculated or given number, the rule must be created in the table properties or in the table column properties.
These direction should also be followed when creating a rule that checks the sum of values for fields with a few instances.

To create a sum check rule, proceed as follows:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button.
  4. From the list of rule types, select Check Sum and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. Specify the severity of the rule.
  8. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  9. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  10. Click Next >.
  11. In the dialog box that opens, add to the list Summarize values of fields the fields the sum of whose values you want to check. Use the Add… button to add fields.
  12. Enable one of the options:
    • field – to compare the sum with the value of the resulting field. Select the name of this field using the Select… button.
    • number – to compare the sum with the specified number. Enter this number.
  13. Precision is the maximum permitted difference between the values of fields for which the rule is set up. A rule is considered to be satisfied when the absolute value of the difference between the values is less than or equal to the specified precision value. If it is not, the rule is not considered to be satisfied and an error message is generated..
  14. Enable the option At least two non-empty items to add up if you want at least two non-empty and non-zero summands to be used. If this condition is not met, the rule will return an error.
  15. Confirm fields if rule check is successful – If this option is enabled, the field values that pass rule validation will be automatically confirmed in the Document Definition editor. Otherwise, the verification operator will have to confirm field values manually.
  16. Click Finish to complete creating the rule. The name of the rule will be shown on the Rules tab.


Several field values comparison rule

This rule is meant for checking the values of several fields. It can be used if your document has several fields whose values must be identical. In the event that values do not match, a rule error message is displayed for the document.

To create a values comparison rule, proceed as follows:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button
  4. From the list of rule types select Compare Fields and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. Specify the severity of the rule.
  8. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  9. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  10. Click Next >.
  11. In the dialog box that opens, add the fields you want to compare to the Fields to compare list by clicking the Add… button.
  12. Select the match type:
    • Exact – for an exact value match;
    • Fuzzy – for a fuzzy value match. In this case fields will be compared without taking into account the letter case and white spaces, and one error will be allowed for field values longer than 4 characters.
  13. Click Finish to complete rule creation. The rule name will be shown on the Rules tab.


Database Check rule

A database check of field values involves comparing a recognized field value with values in a database table. If a captured field value is found among the values in the database, the check is passed. Otherwise, the rule returns an error.

You can use this rule to check if there is an entry for a captured value in your database, to carry out fuzzy searches in your database even if there are typos or errors in fields, to replace a field value with its corresponding record from the database, and to copy certain values from the database into document fields.

Creating a Database Check rule

To create a database check rule:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button
  4. From the list of rule types, select Database Check and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. Specify the severity of the rule.
  8. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  9. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  10. Click Next >.
  11. Set up a connection to the data source by specifying its type and connection parameters.

    The following data sources are supported:

    • External Database (Simple) – Connection to the external database is set up for each rule in the Document Definition .
    • External Database (Variable) – Connection to the external database is set up only in the properties of the project (Project Properties > Environment Variables). This type of data source can be simultaneously used for multiple rules. If you use a different database for the project, you will need to modify the connection settings only in the project properties.
    • Data Set – Connection to the Data Set is set up by the user in the properties of the Document Definition (Document Definition Properties > Data Sets).

    Tip. We recommend selecting the following as OLE DB Provider:

    • When exporting to SQL, prefer OLE DB Provider for ODBC Drivers
    • When exporting to Oracle, prefer Oracle Provider for OLE DB
    Note: To avoid entering the password each time you connect to the database, select the Allow saving password option or set up the database so that it requires no password to connect to it (for example, you can use Windows authentication).

  12. Select the required schema and database table from the drop-down lists or specify the required Data Set if you are setting up a connection to a source of typeData Set.

    Note: If the Find in all schemas is selected as the scheme and the specified table is not included in the default scheme, the following error message may occur:

    [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name K1. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.

    In the event of the error message, the name of the schema that contains the table should be specified explicitly.

  13. Select the Don't check if all fields are empty option to omit rule checks if there are no values in the fields involved in comparison. This will speed up rule validation.
  14. Establish links between the fields in the Document Definition and the fields in the database(see "Specifying fields to compare" below).
  15. Use the Add…, Edit… and Delete buttons to add, edit or remove links between fields.

Specifying fields to compare

In the Field links group on the Rule Settings tab, you can see the already specified field comparisons. You can set up a Database Check rule either for a single field or for a set of fields.

When you add or modify a fields to compare, you must specify the following:

  • Document field – The field of the Document Definition that is to be compared with a database field
  • Database field – The field in the database that is to be compared with the document field
  • Search – Specifies the type of comparison:
    • Exact – The value in the document field must exactly match the value in the database field (note, however, that searches are not case-sensitive)
    • Fuzzy – The value in the document field may only partly match the value in the database. Only text fields can be used in this type of comparison.

      • Collapsed Some notes about fuzzy searches:

      Fuzzy searches will find the closest matches, i.e. words where the minimum number of letters must be added, removed or replaced to achieve a match. The number of allowed errors depends on the length of the original word. If a fuzzy search finds more than one matching value, the following error message is displayed to the operator: Too many records found.. This error message is accompanied by the list of close matches from the database so that the operator can select the correct value from the list.

The following additional options are available:

  • Don't search if field is empty – If the field is empty, its value will not be compared with values from the database.
  • Enter value from database – If a fuzzy search finds a matching value in the database, this value may be automatically entered into the field if:
    • the values in the field and in the database are different
    • the field is empty.

      Note: In the case of exact searches, selecting the Enter value from database option makes no sense, as the two values will be identical.

  • Allow empty values in database – Depending on the results of the database check and other settings, this option will have the following meaning:
    • if the database field is empty and the document field is not empty, the field and database values are deemed to be identical
    • if the database field is empty and the document field is not empty and Fill from database is selected, the empty database value will not be entered into the field.

Doing a database check for a set of fields

In this case, the program will search the database for a matching string for the values in a set of fields, each value in the set of fields is linked to different columns of the found string.

Consider the following example:

Let us associate the document fields Fa, Fb, and Fc with the database columns Ta, Tb, and Tc as follows:

  • The value of the Fa field exactly matches the value of Ta
  • The value of the Fb is a fuzzy match of the value of Tb
  • When the specified conditions are met, the value of the Tc field is copied to the Fc field.

The database check will be successful if the program finds a database string where the value of the Ta column exactly matches the value of the Fa field and the value of the Tb column is a fuzzy match of t value of the Fb field. The value of the Tc column of this string will be copied to the Fc field.

If no such string is found, the rule will return an error, even if the program finds, for example, Ta = Fa and Tb = Fb in different strings.

Note: Different combinations are possible: exact/fuzzy/mixed matches, no autofilling, unspecified number of fields, etc.


Field values merge rule

This rule is meant for merging the values of several fields. Merged field values can be separated with a dot, space or other separators.

To create a values merge rule, proceed as follows:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button.
  4. From the list of rule types select Merge Fields and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  8. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  9. Click Next >.
  10. In the dialog box that opens, add the fields you want to merge to the Fields to merge list using the Add… button. Next, specify a Result field in which you want to store the merged value and specify the desired separator in the Separator box.
  11. By default, separators will be added between non-empty values. If you want the program to add separators at all times, even for empty field values, enable the option Put separators for empty field values.
  12. Click Finish to complete rule creation. The rule name will be shown on the Rules tab.

The merge result can be stored in any Document Definition field. For this purpose it is convenient to use fields without regions.

If you need to export only the value of the resulting field, and not the values of fields included in the merger, disable the Export field value option for such fields.


A rule set with the help of a script

ABBYY FlexiCapture allows you to configure the data check rule with the help of a script.

To create such a rule, proceed as follows:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button.
  4. From the list of rule types select Script and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. Specify the severity of the rule.
  8. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  9. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  10. Click Next >.
  11. Available objects will be displayed in the Available Fields list in the dialog box that opens. You can add and delete fields using the Add… and Delete buttons. Fields that have the Read Only option enabled can only be read, all other fields can be changed by a script.
    Note: Add all fields which you want to use in the script to this list. If a field is not in this list, it cannot be used by the script.
  12. Click the Edit… button to open a special window for script editing.
  13. Select the scripting language and enter the script text.
  14. The script can be checked by selecting Tools>Check Script in the main menu.
  15. Save the script by selecting File>Save.
  16. Click Finish. The created rule will be displayed in the list of the Rules tab.

For details on the script parameters, see Script rule


Sum in figures - sum in words

Important! This rule can only be set up if you select the Russian recognition language for your Document Definition (Document Definition>Document Definition Properties…).

The purpose of this rule is to compare a numerical sum with the corresponding sum in words written in Russian. If the two sums are not identical, a message is displayed saying that the rule returned an error.

To create a "sum in digits - sum in words" rule, proceed as follows:

  1. Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click the New Rule… button.
  4. From the list of rule types select Sum in Figures - Sum in Words (Russian) and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. Specify the severity of the rule.
  8. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  9. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  10. Click Next >.
  11. Click the Select…button to the right of the Sum in figures field and then select the field of the Document Definition that contains the numerical sum.
  12. Click the Select…button to the right of the Sum in words field and then select the field of the Document Definition that contains the same sum in words.
  13. If required, enable the Allow copecks in sum option.
  14. Click Finish to complete rule creation. The rule name will be shown on the Rules tab.


Value Sum Calculation Rule

This rule is used to calculate the sum of several field values and enter it in a specified field. For example, if the document has fields that contain a salary, bonus, and other similar amounts, you can set up a rule to calculate their sum and writing the result in a certain field.

This rule can also be used for calculating the sum of values in a table column. To achieve this, this kind of rule must be created in the Document Definition Properties or in the section properties. Be sure to clear the At least two non-empty items to add up option.

To create a sum calculation rule, do the following:

  1. Open the Field Properties dialog box (right-click the field to open its shortcut menu and select Properties…) or the Document Definition Properties dialog box (from the Document Definition editor menu, select Document Definition>Document Definition Properties…).
  2. Go to the Rules tab.
  3. Click New Rule…
  4. In the list of rules, select Calculate Sum and click OK.
  5. Type the name of the rule.
  6. Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".
  7. If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.
  8. Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.
  9. Click Next >.
  10. In the dialog box that opens, add fields with values to be added to the Summarize values of fields list. To do it, click the Add….
  11. In the Result field field, specify the field you need to enter the sum in. To do it, click Select….
  12. Select At least two non-empty items to add up if you need at least two non-empty and non-zero summands to be used. Unless this condition is fulfilled, an error will be output in the rule errors window during the check of the rule.
    Note: When applying this option in rule parameters, it is necessary to add at least two document fields (or two table columns) to the addition. So if you use this rule to add values from all cells of a table column, you need not select this option.
  13. Click Finish to finish creating the rule. The rule name will be displayed on the Rules tab.


Data export settings

To configure data export settings, select Document Definition> Export Settings… in the Document Definition editor.

You can specify multiple export profiles within a Document Definition, which allows you to export your processing results to multiple file formats and to multiple destinations.

Basic export parameters and types of export

On the Export Destinations tab, you can see the list of configured export profiles and the following information about each profile:

  • Name – The name of the export profile.
  • Type – The type of export. The following export types are available:
    • Custom export (uses a script)
    • Export to data files (by default, each Document Definition includes an export profile that exports data to an Excel table)
    • Export to image files
    • Export to a database
    • Export to SharePoint
  • Critical – If this option is selected, the export profile must be executed. Otherwise, the export profile is deemed optional.

    If an export failure occurs for a Critical export profile, the error will be recorded in the event log and the corresponding export task will have the Failed status. If an export failure occurs for a non-Critical export profile, a warning will be recorded for the export profile and the corresponding export task will have the Succeeded status.

    Note: Export may fail for a number of reasons. For example, a file or database may be inaccessible.

  • Enabled – If this option is selected, the program will use this profile to export data. Otherwise, the profile is deemed disabled.
  • Conditions – The conditions that must apply for the program to export the captured data.

Export conditions

You can set up ABBYY FlexiCapture to export data if certain conditions are met. For example you can export only documents with rule errors, only documents without rule errors, or only documents where a particular field has a particular value. You can specify export conditions under Export if these conditions are true.

To set up export conditioned on rule errors, select one of the following three options from the Documents condition drop-down list:

  • Documents contain errors – Select this option to export only documents without rule errors or format errors.
  • Documents contain no errors – Select this option to export only documents with rule errors or format errors.
  • Errors are irrelevant– Select this option to export all documents, regardless of rule or format errors.

To set up export conditioned on the value of a particular field, enable the Field condition option and in the Export Conditions dialog box:

  1. Select a desired field
  2. From the drop-down list, select a condition that will trigger export
  3. Specify the possible field values (if any)

The following field value conditions may trigger export:

  • Belongs to set – The data will be exported if the value of the field matches one of the values you specified.
  • Does not belong to set – The data will be exported if the value of the field does not match any of the values you specified.
  • Is empty – The data will be exported if the field is empty.
  • Is not empty – The data will be exported if the field is not empty.

To add a value to the set of possible values, type in the value and click Add. To delete a value from the set, select the value and click Delete. You can also add an empty value to the set of possible values. To add an empty value, click Add without typing any values. The empty value will appear as <Empty value> in the set of possible values. A value can be added only once.

Export conditions can only involve text fields (including fields with continued regions), barcodes, and table columns. Export conditions cannot involve checkmarks, checkmark groups, fields with multiple instances, images, or table cells.

Note: If an export condition involves a table column, the data will be exported if at least one cell in the column meets the condition.

You can use export conditions to specify a location where to store processed documents. For instance, you can put documents into different folders depending on the value of a particular field (say, Subsidiary). Or you can export documents with rule errors to a particular folder (say, Failed).

Fine-tuning export

The set of fields to export is first generated based on the properties of the fields (i.e. based on whether the Export field value option is selected). Then, when you set up an export profile, you can remove any fields from the set of fields thus generated. Fields from the same set can be exported to different destinations. Select Export Settings and consecutively click Edit…> Options… > Setup Fields Mapping…. The Field Mapping dialog box will open, where you can specify desired destinations.

Note: When you choose to export data to an image format (or to PDF), the Redact sensitive data from images option becomes available. This option lets you remove the images of the fields whose contents must become invisible. Select Export Settings, click Edit, select Redact sensitive data from images, and then click Select Fields to Redact…. The Select Fields to Redact dialog box will open, where you can redact sensitive fields.

Automatic export

You can set up ABBYY FlexiCapture to export documents automatically. In the properties dialog box of your Document Definition, click the Export Settings and select Enable auto export. Now processed documents will be exported automatically, without the need for an operator to click any export-initializing buttons.

Automatic export is only possible if your Document Definition explicitly states the number of pages in documents. This means that automatic export will not work if certain pages may occur multiple times or if the number of sections is specified by means of an interval (including 0-1). Automatic export will also not work for documents submitted for verification.

Note: If documents are exported automatically, batch integrity is not checked and a corresponding warning is added to the task log.

Saving results to the file system

You can set up ABBYY FlexiCapture to save captured data and/or document images to the file system.

If an absolute path to a data storage location is used, you can specify either a local path or a UNC network path.

If a relative path to a data storage location is used, i.e. if only a subfolder is specified, the subfolder will be created in the Export subfolder of the project folder. To specify a different storage location, specify an Export root path in the project settings. Now any new subfolders will be created relative to the root path you specified. You can specify either a local or a UNC network path as the root path.

Export to file
Image export to file
Export to database
Export to SharePoint
Export described with a script


Data Export to File

To configure export to file, proceed as follows:

  1. In the Document Definition editor window, select the menu item Document Definition > Export Settings…
  2. Click Add… and select Export to data files in the Type field.
  3. Specify whether export is obligatory.
  4. Specify whether images should be exported.
  5. Specify which documents (with and/or without errors) should be exported and click Next>.
  6. Specify the export parameters and click Next>. The adjustable export parameters depend on the value specified in the Target field.
    Collapsed Recreate filenames and structure of Hot Folder subfolders

    If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.

    Collapsed Export all documents to one file

    Select this value to export all data to one file. When configuring this export type, enter the path and the name of the file to export data to in the Export path field.

    Collapsed Create a separate folder for each batch

    Select this value to export each document to a separate file:

    • Specify the path and the first characters of the file name in the File prefix field;
    • For each batch to be exported to a separate folder, select Create a separate folder for each batch.
    Collapsed Create folder structure and filename using template

    If you select this value, file names and the subfolder structure will form depending on the document parameters.

    • Specify the root export path in the Export path.
    • Specify the file naming options. To do it, click Edit… and specify the necessary rules. For more information, see Export File Naming Options.
    • In the If file exists field, select the action for the program to carry out if a file with the generated name already exists.
  7. Select the file type (the CSV, DBF, TXT, XLS, and XML formats are supported), specify additional export properties for the selected file type, and select the text encoding, if necessary. Then click Next>.
    Collapsed Microsoft Office Excel workbook (*.xls)
    • Select the Excel version (5.0/95; 97-2003; 97-2003 (compatible with 5,0/95));
    • Select Preserve value type on export to export the data basing on its types. Clear this option to export all data with the General type;
    • Select Make separate files for repeatable items to export tables and fields with multiple repetitions to separate files. Mind the note;
    • For Excel 5.0/95, select a code page.
    • Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.
    Collapsed XML Document (*.xml)
    • Specify the additional data to be exported (field locations and types, errors, recognition quality data);
    • Select Preserve value type on export if you want to save the xml-scheme with field type descriptions;
    • Select the encoding;
    • Specify the field names, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names.
    Collapsed Comma-separated values file (*.csv)
    • Select Column separator;
    • Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note;
    • Select the encoding;
    • Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.
    Collapsed Text file (*.txt)
    • Select Column separator;
    • Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note;
    • Select the encoding.
    • Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.
    Collapsed DBase file (*.dbf)
    • Select Preserve value type on export to export data basing on its types. Clear this option for all the fields to be of the Text type;
    • Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note;
    • Configure the field names, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names.

    8. Complete steps 8 and 9 only if you selected the Save document images option in step 4.

  8. If you want to save the images, specify the image saving parameters and click Next>.
    • Choose either to save images together with the data or to specify the image folder;
    • Select the image file naming scheme: similar to the data files or otherwise. See Export File Naming Options.
    • Specify the fields that contain images you want to hide during export.
  9. If images should be stored, specify image storage options and click Next>.
    • Select the desired image format, quality, and color.
    • To change the resolution of the source images, select Change resolution to and select the appropriate value from the list.
    • If you select PDF or PDF/A as a storage format, you can create searchable PDF files by selecting Create searchable PDF. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed. In the Search text field, specify where to search text: on all pages, on sections pages or on annexes pages.

      Recognition language is defined the following way:

      • For fields, recognition language is specified on the Data type tab of the field properties.
      • For full-text recognition, the Document Definition language is used.
      • For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select… to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.
  10. Enter an export profile name and click Finish.

Note: By default, repeating fields (i.e., fields with multiple instances and tables) are exported into separate files for which a new folder is created. The name of the folder consists of the name of the export file. To disable export of repeating fields into separate files, clear the option Make separate files for repeatable itemson the Export Destination Wizard tab (the option is available for all formats except XML). In this case, when repeating fields will be exported into one export file and the program will add a new line for each element instance.

Note: When exporting data about exported images (images of pages or fields) to a file, the path to the file can be:

  • relative, if the images are being exported to the same folder as the file (or its subfolders)
  • absolute in all other cases


Exporting images to a file

You are here: Program settings > Document Definitions > Data export settings > Image export to file

Image Export to File

To export images to a file:

  1. In the Document Definition Editor window, select Document Definition > Export Settings…
  2. Click Add… and select Export to image files in the Type field.
  3. Specify whether export is obligatory.
  4. Specify which documents (with and/or without errors) should be exported and click Next>.
  5. Specify the export parameters and click Next>. The adjustable export parameters depend on the value specified in the Type field.
      Collapsed Recreate filenames and structure of Hot Folder subfolders

      If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.

      Collapsed Export all documents to one file

      Select this value to export all data to one file. When configuring this export type, enter the path and the name of the file to export data to in the Path field.

      Collapsed Export documents as separate files

      Select this value to export each document to a separate file:

      • Specify the path and the first characters of the file name in the File prefix field;
      • For each batch to be exported to a separate folder, select Create a separate folder for each batch.
      Collapsed Create folder structure and filename using template

      If you select this value, file names and the subfolder structure will form depending on the document parameters.

      • Specify the root export path in theExport path.
      • Specify the file naming options. To do it, click Edit… and specify the necessary rules. For more information, see Export File Naming Options.
      • In the If file exists field, select the action for the program to carry out if a file with the generated name already exists.
  6. Specify image storage options and click Next>.
    • Select the desired image format, quality, and color.
    • To change the resolution of the source images, select Change resolution to and select the appropriate value from the list.
    • If you select PDF or PDF/A as a storage format, you can create searchable PDF files by selecting Create searchable PDF. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed. In the Search text field, specify where to search text: on all pages, on sections pages or on annexes pages.

      Recognition language is defined the following way:

      • For fields, recognition language is specified on the Data type tab of the field properties.
      • For full-text recognition, the Document Definition language is used.
      • For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select… to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.
      Select the Use MRC (mixed raster content) option if you want to achieve a higher speed of recognition and get output files of smaller size. With this option, fields for which the Do not recognize mode is selected can be exported with lower quality.
  7. Enter an export profile name and click Finish.


Export to a database

You are here: Program settings > Document Definitions > Data export settings > Export to database

Export to Database

To configure export to a database, perform the following:

  1. In the Document Definition editor window select the menu item Document Definition > Export Settings…
  2. Click Add… and select Export to ODBC-compatible database in the Type field.
  3. Specify whether export is obligatory.
  4. Specify whether images should be exported.
  5. Specify which documents (with and/or without errors) should be exported and click Next>.
  6. Specify export settings and click Next>.
    • Establish a connection with a database. Enter the connection parameters in the Connection string window or click the Setup… button and configure the connection parameters in the Data Link Properties dialog box.

      • Collapsed Tested providers and drivers

      For SQL 2000, 2005, 2008, 2008R2, 2012 database:

      1. Provider - OLE DB Provider for ODBC Drivers;

        Note: Selecting "OLE DB Provider for SQL Server" may cause problems when working with certain data types and long fields.

      2. Driver - SQL Server.

      For Access 2003, 2007, 2010 database:

      1. Provider - OLE DB Provider for ODBC Drivers;
      2. Driver - Microsoft Access Driver (Driver do Microsoft Access or Microsoft Access-Treiber).

      For Oracle 9g, 10g, 11g database:

      1. Provider - Oracle Provider for OLE DB;
      2. Selecting the driver is not required.

      The provider and the driver must be available on the computer where export is performed.

    • Select a schema from the drop-down list.
    • You can check the connection with the database by clicking the Test Connection button.
    • Click theCreate Tables Automatically button to automatically create new tables in the database, where data from documents will be exported. A separate table will be created for each document section. The structure and the format of fields in automatically created tables correspond to the set of Document Definition fields and their data types.

      Note: Before the export, ABBYY FlexiCapture queries the database for information about all objects of the scheme. It is recommended that schemes with a small number of objects should be used for export. Otherwise creating tables can take considerable time (up to several hours).

    • If it is necessary to export data to existing tables of a database, establish a correspondence between the Document Definition fields and the database table fields using the Set Up Field Mapping… button.
    • In the Field Mapping dialog box specify to what tables and table columns of the database the program will export field values of the Document Definition.
      • Collapsed Details...

      The Field Mapping dialog box on the left contains document sections and fields. On the right, you have to match them to the tables and fields on the database. If the database already has tables for data export, then in the Field Mapping dialog box you need to select a database table for each document section and a database table column for each document field. (Besides direct export to database tables it is possible to save data to a database by using stored procedures. For details, please see Specifics of configuring data export by using stored procedures of databases

      If the database has no tables for export, you can create database tables automatically by clicking the Create Tables Automatically button. After you click it, the program will create tables with a structure that you need for export. Document fields will be matched to table columns.

      Field groups, fields with several instances and document tables are exported to separate tables in the database. A Primary Key and Foreign Key are used to link the main table to subordinate tables. In the main table, a primary key is added to each entry. In the subordinate table, each entry has a foreign key that records the value of the primary key of the corresponding entry in the main table. The primary and foreign keys are added automatically where required. You only need to specify the field to which the key has to be exported.

      Select a column of a database table for each document field.

      If a column, to which data from some field are to be exported, is missing in the table, it can be added to the existing table automatically. For this, it is enough to leave the correspondence of the document field to the database field with a similar name and with the comment (auto) in brackets. Or you can select a desired field with a mouse and click the Auto button.
      You can also use the Auto button to create a new table in the database whose name will be similar to the section or table name of the Document Definition.

      If a new table, whose name and column captions are different from the Document Definition field names, must be created in the fields correspondence settings dialog, use the New button to create a table for each field.

      Use the Move Up and Move Down buttons to manage the sequence order of columns in the automatically created table of a database.

      Use the Format… button to configure parameters of saving typified fields, for example, the number of decimal digits in the field value of Number type or format and separators for a field of Data type.

      Note: When exporting field of the Time data type, a corresponding column of DateTime type must be created in database table. By default the column of SmallDateTime type is created which results in error.

  7. If images should be saved (document images and/or field images of the <b>Picture</b> type), specify image saving options and click Next>.
    • Specify whether images should be saved to the database or as files.
    • If you choose to save images to files, specify a file naming template (click Edit…) and when files should be overwrite if their names coincide. For more information, see Export File Naming Criteria.
    • If required, specify the fields to be concealed upon export.

    Note: Depending on the selected option, the contents of Picture type fields and document images can be exported to the file system or a database.
    When exporting to separate files, the name and the path to a picture or image file are stored in the corresponding field of a database (it is configured when establishing the correspondence of fields). If a network disk is specified as a path to an export folder (for images, pictures, etc.), make sure that all stations working with this disk can access it. A special procedure allows you to convert a binary image from any database to a file.

    Note: When exporting images to separate files, the length of a string storing paths to files may exceed 255 characters and an error message will ocrur. In this case, you should increase the character limit for the given column.

  8. If the option to save images was selected, specify a file saving format and click Next>.
    • Select the desired image format, quality, and color.
    • To change the resolution of the source images, select Change resolution to and select the appropriate value from the list.
    • If you select PDF or PDF/A as a storage format, you can create searchable PDF files by selecting Create searchable PDF. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed. In the Search text field, specify where to search text: on all pages, on sections pages or on annexes pages.

      Recognition language is defined the following way:

      • For fields, recognition language is specified on the Data type tab of the field properties.
      • For full-text recognition, the Document Definition language is used.
      • For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select… to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.
  9. Enter an export profile name and click Finish.

Note:

  1. Pictures are exported to separate files. The name and path to the picture file can be stored in the corresponding field of the database (this can be set up when mapping fields).
  2. If the path to the target folder for images, pictures, etc. contains a network disk, ensure that all the processing stations working with the project have access to this disk.

Specifics of configuring data export by using stored procedures of databases

Besides exporting data to database tables directly, it is possible to save data to database by using stored procedures.

A stored procedure is a database object representing a set of SQL-instructions which is compiled once, and then stored on the server. Stored procedures can be used to perform numerical calculations and operations on character data, whose results can be assigned to variable and parameters, as well as to carry out standard operations with databases.

Advantages of using stored procedures over direct export to database tables:

  • Speed of working with a database
  • Possibility to use additional calculations
  • Ensuring data integrity

A sample of a shared procedure for MS SQL:

Create procedure Export( @userId as int, @lastName as nvarchar(255), @firstName as nvarchar(255) )
as
begin
if Exists( Select Id from Users where Id = @userId ) begin
Update Users set LastName = @lastName, FirstName=@firstName where Id = @userId
end else begin
Insert into Users ( Id, LastName, FirstName ) values( @userId, @lastName, @firstName
)
end
end

When sending data from FlexiCapture to database by using the procedure above, the following actions are performed:

The three parameters passed to the input of the procedure are the fields of a FlexiCapture document: an identifier (UserId), the first name (FirstName) and the last name (LastName). If there is no entry with such an identifier in the database table (Users), a new entry is added to the table. If an entry with such an identifier exists, the values of the first and last name in this entry are replaced with new values (the values of the FlexiCapture fields).

Configuring export by using stored procedures

In order to configure export by using stored procedures, it is necessary to establish a connection to database first (see above). Further, click the Set Up Field Mapping… to determine correspondence of document fields to parameters of the stored procedure.

In the Set Up Field Mapping… dialog box, select from the list of tables and database stored procedures a required stored procedure for saving data.

Unlike configuring export to columns of a database table directly, the fields proposed for export are parameters of a stored procedure. Procedure parameters are typified. For mapping it is necessary that the parameter type should coincide with the data type of the Document Definition field.

Map the document fields and parameters of the database stored procedure.

Note: If it is necessary to export not only separate fields from the document, but also tables and complex fields (e.g. fields with a few instances), you must set up correct indexes for connecting child entries with the main document data entry. Specify the return value (@RETURN_VALUE) or an output parameter of the stored procedure as an exportable primary key (ROW_INDEX). Thus, when exporting data, the procedure will write data to the database table and return the identifier of the current entry that will be passed to the stored procedure for exporting child entries.


Exporting data to a SharePoint document library

ABBYY FlexiCapture allows you to export documents to a MicrosoftTM SharePoint document library. As a result, you will get a library of your document images with additional columns for each document filled out with value of certain fields.

Note:

  1. The following version of MicrosoftTM SharePoint are supported: MS SharePoint 2003, MS SharePoint 2007, MS SharePoint 2010 and MS SharePoint 2013.
  2. Administrator rights are required to set up export of data to SharePoint. Contributor rights are sufficient to export data to SharePoint.
  3. The SharePoint columns into which data is to be recorded must be of type Single line of text or Multiple lines of text (for details, see the Converting data when exporting to Microsoft SharePoint2013 section of this article).
  4. The option Enable Kernel-mode authentication must be selected for the SharePoint site in the Internet Information Server (IIS) settings.
    Collapsed Show picture

    If this mode is disabled, the following error occurs during export: "Cannot connect to SharePoint server: Unauthorized access to SharePoint server".

To set up export to SharePoint:

  1. In the Document Definition editor, select Document Definition > Export Settings…
  2. Click Add…
  3. Select Export to SharePoint in the Type field.
  4. Specify whether export is obligatory
  5. Specify which documents (with and/or without errors) should be exported and click Next>.
  6. Specify export settings and click Next>.
    • Server URL (e.g. http://myserver) – enter the address of the server where your SharePoint libraries are located. Use the Connection Settings… button to set up authentication parameters (the Windows authentication parameters are used by default) and Proxy settings if required.
    • Below the server address, the connection status is indicated. If the server is disconnected, click the Connect to re-establish the connection.
    • Once you are connected to the SharePoint server, select a library from the Select SharePoint library list.
    • Click Browse… and locate the desired folder in the library.
    • In the Content type field, select the type of content of your documents (supported starting from SharePoint 2007). In this case you will be able to export values to the fields corresponding to the selected content type.

      Note: Content type is the list of content types specified by user in SharePoint. SharePoint fields available for mapping are determined by the selected content type.

    • Now specify which Document Definition fields should be exported and where. Click the Set Up Field Mapping… button and select the desired options in the Field Mapping dialog box. In this dialog box, you must establish a correspondence between Document Definition fields and SharePoint document columns. The Document Definition fields are displayed to the left. For each Document Definition field to be exported (with the exception of groups and tables), you can select a vacant SharePoint column.
  7. Specify image saving options and click Next>.
    • Specify a file naming template (click Edit…) and when files should be overwrite if their names coincide.
    • If required, specify the fields to be concealed upon export.
  8. If images should be stored, specify image storage options and click Next>.
    • Select the desired image format, quality, and color.
    • To change the resolution of the source images, select Change resolution to and select the appropriate value from the list.
    • If you select PDF or PDF/A as a storage format, you can create searchable PDF files by selecting Create searchable PDF. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed. In the Search text field, specify where to search text: on all pages, on sections pages or on annexes pages.

      Recognition language is defined the following way:

      • For fields, recognition language is specified on the Data type tab of the field properties.
      • For full-text recognition, the Document Definition language is used.
      • For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select… to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.
  9. Enter an export profile name and click Finish.

After the export is complete, the documents will be saved in the specified SharePoint library, and each document will have a corresponding column filled out with the values from the specified fields. These values can be used for searches and document indexing.

Collapsed Converting data when exporting to Microsoft SharePoint2013

You can convert data to one of the following formats when exporting it to Microsoft SharePoint2013:

  • Single line of text;
  • Multiple lines of text;
  • Number;
  • Currency;
  • DateTime;
  • Yes/No.

You can also convert the data type of the cell to a compatible format, for example:

  • Convert dates to the DateTime or Text data types;
  • Convert marks to the Yes/No or Text data types.

We encourage you to experiment with data types. Data types that are not supported will not be available (will be displayed in gray).


Export described with a script

To configure export with the help of a script:

  1. In the Document Definition editor window, select Document Definition > Export Settings…
  2. Click Add…
  3. Select Custom export (script) in the Type field.
  4. Specify whether export is obligatory.
  5. Specify which documents (with and/or without errors) should be exported and click Next>.
  6. Select the language of the script.
  7. Type the script code in the editor window that appears when you click Edit Script…. Then click Next>.
  8. Enter an export profile name and click Finish.

For details on script parameters, see Export script.


Rules for naming export files

You are here: Program settings > Document Definitions > Data export settings > Rules for naming export files

Export File Naming Criteria

File names and paths are formed automatically during export, basing on the criteria specified by the user. You can configure both the data file names and image file names.

Note: It is possible to specify a data file name template when exporting to files. An image file name template can be specified when exporting to files, ODBC-compatible database, Sharepoint and image files.

File name and path formation can be configured in the Destination and Filenames Template window. Depending on the selected export type, this window is opened either by clicking Edit… (to the left of the field with the file naming template) or File Naming Options…

There are two file export template formation types (select in the View field):

Collapsed Simple

For this type, you can select an additional path (except for setting up image export together with exporting data to file), the significant part of the file name, and add identifiers to it if necessary.

To specify the relative path, select Use additional path and then select the method: similarly to the Hot Folder structure (Source path relative to the Hot Folder) or according to the batch name (Batch name).

The following can be used as the significant part of the file name:

  • Source file name that is defined the following way:
    • For files imported from folder, names of original files are used;
    • For multiple input files, the name of the first file is used;
    • For files scanned in the Sanning Station, the name of the scanning sourse is used. However, the output file is created with the {Empty Value} name;
    • For files scanned in the Project Setup Station, names of temporary files are used.
  • Document Definition name;
  • Specified file name - combination of characters specified by the user.

The following can be used as additional identifiers

  • Document identifier (select Add document identifier to file name);
  • Index field value (select Add index field to file name, then click … and select the index field in the Select Fields window).
Collapsed Advanced

In this type, the file naming template is entered as a text line in the File name template field. The template can include a permanent part and tags which will be replaced by information for specific files. The tags can be entered using a keyboard or added and deleted using the Add tag... and Delete tag buttons.

For files names to be generated correctly, make sure that the file naming options you select won't result in empty file names. If this may be the case, the program will display a warning message.

Note: The scheme used for naming document image files, which are to be exported together with data, can be the same as the scheme used for naming data. To use the same scheme, select the Same as data option on the Image Export Settings tab of the Destination and Filenames Template dialog.


Configuring data presentation in the document window

After the data has been recognized, the user will see it in the document window. By default, the data will be arranged sequentially, and their captions will correspond to the names of Document Definition fields. However, you can change the presentation of data, arranging it conveniently or renaming elements.

Presentation settings are specified on data forms in the Document Definition Editor by Administrators of station.

To change presentation settings:

  • Open the Document Definition editor.
  • Make sure the data form is displayed (click View > Data Form or press Alt+F2).
  • Use shortcut menu commands to set up the data form.
    For details, see Data form settings below.

To restore the default data form presentation settings, click Restore Default View on the shortcut menu. All changes will be lost.

Properties of data form elements

Each type of data form element has its own set of properties. Below is a list of properties that are common to all types of elements, properties of groups and properties of label boxes.

To view the properties of an element, double-click it or right-click it and click Properties on its shortcut menu.

Position tab of the Properties dialog box of an element

  • Alignment — lets you adjust the element's alignment along the vertical an horizontal axes. You can also use shortcut menus of elements to change their alignment.
  • Margins — changes the distance in points between the element and the edges of its cell. If you specify a margin of zero, the program will use the smallest margin that still prevents elements from overlapping.
    You can also change the margins using commands from the element's shortcut menu, by dragging it inside its cell, and by moving the right or bottom edges of the cell so that they touch the element.
  • Set min size — adjusts the minimal width and height of the element. If no minimal size is specified, it will be determined automatically.
    You can also change the minimal width and height of an element by dragging the edges of the element with the mouse. To restore the element's default size, right-click it and click Restore default size on the shortcut menu.

    Elements for which the minimal size has been calculated automatically will be colored green on the data form. Elements whose minimal size was specified by the user will be colored red.

Format tab of the Label Box Properties dialog box of a label

  • Text — the text in the label (usually the name of a field or an explanation).
  • Font— changes the font, size and font style. The font and font size specified in the Document Definition are used by default. To change these settings, disable the Use default option.

Tip. You can change the label of a field in the data form without changing the name of the field in the document structure. This can be useful if you are working with a Document Definition where you cannot change names of fields, or when you need to specify custom names for columns in tables.

Tip. You can add text such as explanations for fields to the document by right-clicking free space in the data form and clicking Insert Text on the shortcut menu.

Format and Instances tabs in group properties

  • Display settings for groups of fields
    You can change the default appearance of groups of fields in the document window. To do so, right-click a group in the data form, open it's properties dialog box, select the Format tab and select one of the following items from the Collapse group drop-down list:
    • Never — the group is expanded and all fields in the group are visible to the operator during verification. This value is used by default.
    • Always — the group is collapsed. The operator will have to expand the group to view the contents of its fields.
    • If there are no format errors — the group is collapsed if the fields it contains have no format errors. Format errors that occurred after the document has been opened will not affect how the group is displayed.
    • If all fields are empty — the group will be collapsed if its fields contain no data.
  • Show border shows/hides the border around the group in the document window.
    If a group contains instances and its border is hidden, rectangular control elements will appear to the left of the instances. These control elements can be used to delete the instance and add a new instance one position above or below the selected instance.
  • Show 'Add new instance' prompt shows/hides a link prompting the user to add an instance for groups or fields with instances.

The element properties described above, the screen resolution, the zoom level of the form and the contents of cells are used to calculate the position of fields on the data form.

Data form settings

Collapsed Font and font size

By default, recognized text is set to 10pt Arial font. You can change the default settings in the properties dialog box of the Document Definition (click Document Definition > Document Definition Properties… and select the Data Form tab).

  • Field data — this group contains font settings for recognized text.
  • Field label— this group contains font settings for explanatory text and field labels.
Collapsed Displaying images of fields in the document window

You can choose to display an image of Text, Barcode, Checkmark and Group of checkmarks fields below recognized data in the document window.

To display an image of a field in the document window, right-click the field in the data form and select Add Field Picture from the shortcut menu.

When processing completes, data extracted from the field will be displayed in the document window and an image of the field will be displayed beneath this data.

Collapsed Grouping elements

Multiple elements can be combined into a group, and this group can be placed on the data form. You can use commands from the shortcut menu to align the group and specify margins (delete or reset default values). You can also delete or lock the group. Elements of a locked group cannot be moved.

To put elements in a group, select them by clicking them while holding the Ctrl key, right-click one of them and click Group Selected on the shortcut menu. To remove elements from a group, use the mouse to drag them outside of the group .

Note: When a label or an image is added to a field, these elements will be grouped.

Collapsed Hiding empty columns in tables

You can choose to automatically hide table columns that contain no data after recognition. You can specify which columns to hide:

  • In the data form. Open the table's properties and select the columns you want to hide in the Select columns to hide when empty list on the Format tab.
  • In the document window. Right-click the table's title and select the names of the columns you want to hide in the shortcut menu.
Collapsed Selection order of fields

The default verification order in the document window is from top to bottom, from left to right. The order in which fields are selected when the user presses Tab, F4 or F8 can be changed.

To do so, click Tab Order… on the shortcut menu of the data form. In the dialog box that opens, select the Custom option and use the buttons in the right part of the dialog box to change the order.

  • To Beginning moves the selected field to the top of the list or places a group element in the first position in the group.
  • Up moves a field one position higher.
  • Down moves a field one position higher.
  • To End moves a field to the bottom of the list or places a group element in the last position in the group.
  • AutoOrder changes the order of fields in the list to match their order in the document structure.

Note: This feature is not available in web stations.

Collapsed Zooming the document image

During verification, you can zoom the document image with the mouse or by using shortcut menu commands.

Double-clicking different parts of the document image changes the zoom level:

  • Double-click a field on the image to zoom the image to 100%. The field will be highlighted in yellow. Double-clicking the field again will return the previous zoom level.
  • Double-click a field in the recognized data area to zoom the image to 200%. The image will be centered on the field and the field will be highlighted in yellow.
  • Double-click an empty spot on the page to change the zoom level so that the entire page fits in the image area. Double-clicking again will change the zoom level to 100% and center the view on the area you double-clicked.
  • Double-click an empty space in the image area to zoom the image to 25%.

Tip. You can also zoom in and out by scrolling the mouse wheel while holding the Ctrl key.

You can change the horizontal or vertical order of pages by right-clicking the title of the Документ window and clicking Arrange Pages Vertically on the shortcut menu.


Document Definition properties

The basic Document Definition properties, such as its name, language and writing style, are configured with the help of the Document Definition Wizard. Other properties are configured by default.

You can view and change the properties of a Document Definition in the properties dialog box that opens when you select the menu item Document Definition>Document Definition Properties… in the Document Definition editor window.

The dialog box has the following tabs:

Collapsed The General tab
On this tab you can rename the Document Definition and enter or edit its description. The Enabled option includes/excludes the Document Definition from document processing.
Collapsed The Recognition tab
On this tab you can modify the general properties of Document Definition recognition:
  • Language (locale) – it is important to specify the language used for correct recognition. This property determines both the input language and other local settings, such as the date format, currency, etc.
  • Writing style – the writing style can differ significantly in various countries, which is why it is important to specify the country to enable the program to select its typical writing style. Select the style which is the same to the document language. If there is no such a style in the list, select Other.
  • Specify the text type:
    • ICR (hand-printed) – enable this option if most fields in documents will be completed by hand;
    • OCR (printed) – enable this option if values in most fields will be printed. Select the print type from the dropdown list.
    Note: Recognition of handprinted text is not supported for all languages. For some languages this recognition type will not be available. See Supported recognition languages.
    Later you can change the text type for individual fields, while the type specified at this stage will be used by default.
  • You can enable one or several options in the Possible page orientation group so that the page will be turned 180°, 90° clockwise or 90° counterclockwise during automatic page orientation selection.
  • Click the Advanced Options… to configure the correction of linear and nonlinear image distortions.
    Note: Select the Correct linear distortion option to specify stretching and shrinking limits for image width and height. For image scaling, existing anchors (black squares, crosses or corners) as well as horizontal and vertical separator are used.
  • Store the whole document text - select this option if you want the recognized data from cache to be available when filling in field values during verification.
Collapsed The Assembly tab
This tab is intended for configuring assembly rules for multipage documents.
In the simplest scenario, the Document Definition comprises a single section that occurs one time. If a Document Definition consists of several sections, this tab will show the list of their names. You can specify the number of repetitions of each section by modifying the numbers in the Min number and Max number columns.
  • Use key fields equality assembling rule – enable this option if you want to perform a check of document assembly based on key fields. Then select a key field for each section in the Key Field column. When you input documents, only documents with the matching values of key fields in each section will be considered correctly assembled. If their values do not match, an assembly error message will be displayed.
  • Use standard assembling rules - enable this option if you want to perform a check of document assembly using the following standard rulus:
    • Disable sections order check - enable this option if you want to disable the checks for the order of sections in the document (e.g. if the order of sections does not affect document assembly). The program will still check that all the sections are present in the document, but their order will be ignored.
    • Enable annex pages - enable this option if you want to process documents with annexes. If processing document with annexes is enabled, you can also select the option Detect annexes on the basis of preset document structure, without analizing (fast) to enable faster detection of annexes on the basis of the present document structure.
      Note: The Detect annexes on the basis of preset document structure, without analizing (fast) option is effective only for documents created by means of separation during the import stage or by applying a special flag in API. Such document are excluded from the assembly.
  • Use custom assembling rules - enable this option if you want to perform a check of document assembly using a document assembly script. A custom assembly script can be executed both separately and together with the standard assembling rules. To start editing the script, click the Edit Assembling Script… button. The Script editor will open.
For details see Creating Document Definitions for multipage documents, Assembling pages into documents and Creating Document Definitions for documents with annexes.
Collapsed The Rules tab
This tab is intended for actions with Document Definition rules. You can delete, edit or create new rules.

For details see Rule validation.

Collapsed The Export Destinations tab
This tab shows the current export settings of the given Document Definition. To change the export settings, click the Edit… button
Collapsed The Data Form tab

On this tab you can modify the font outline and size for displaying recognized data.

The Data Text Settings group contains font settings for displaying recognized values.

The Label Text Settings group contains settings for displaying the explanatory text (field names).

For details see Configuring data presentation in the document window.

Collapsed The Data Sets tab
On this tab you can create and edit custom Data Sets.
Collapsed The Event Handlers tab
On this tab you can specify event handlers for documents of the current type.

For details, see Event Handlers.

Collapsed The .Net References tab
On this tab you can add external assemblies to be used in scripts and global modules. Both standard and compiled user assemblies can be used. To add an assembly, click Add…. In the dialog box that opens select the type: Standard assembly name or Attached file. Depending on the selected type either enter the standard assembly name or browse to an assembly file.

For details see External assemblies.


Properties of a Document Definition section

You can view and change the properties of a Document Definition section in the properties dialog box that opens when you select Properties… in the shortcut menu

The dialog box contains the following tabs:

Collapsed The General tab

On this tab you can change the name of a document section, enter or edit the description, enter or modify the minimum and maximum number of section repetitions in the document. The Enabled option includes/excludes the section Document Definition from document processing. For details about multipage documents and working with sections, see Creating Document Definitions for multipage documents.

Collapsed The FlexiLayout tab

If a flexible description has been attached to the section, this tab shows its Name, Version and Comment. You can attach a flexible description by clicking the Load… button and detach it by clicking the Unload button.

For details, see Creating a Document Definition for processing flexible documents.

Collapsed The Images tab

This tab lists the display parameters for the page images of the section. The following parameters are available: size, resolution, print size, and color mode.

Collapsed The Rules tab

This tab is intended for actions with Document Definition rules. You can delete, edit or create new rules.

For details see Rule validation.


Importing a Document Definition for forms created with ABBYY FormDesigner

ABBYY FormDesigner is a convenient tool designed specifically for creating machine-readable forms. In addition to forms that meet all the requirements of automated document processing, designing forms with ABBYY FormDesigner also gives you a Document Definition that is almost completely ready for processing these forms in ABBYY FlexiCapture.

To obtain a Document Definition for processing forms designed with ABBYY FormDesigner, proceed as follows:

In ABBYY FormDesigner:

  1. Create a form
  2. Publish it
  3. Export it to XML Form Definition format. You will get a file with the .xfd extension.

For details about creating, publishing and exporting forms see the Help Topics and user guide of ABBYY FormDesigner.

In ABBYY FlexiCapture:

  1. In the main program window, select the menu item Project > Document Definitions…;
  2. In the Document Definitions dialog box click the Import… button
  3. In the Open file for import that opens, select XML Form Definition Files (*.xfd) from the Files of type drop-down list and specify the path to the*.xfd file;
  4. The name of the new Document Definition will appear in the Document Definitions list of the Document Definitions dialog box.

After opening an imported Document Definition for editing, you will see that the marking of fields and static elements is already present in the image. All you need to do is edit field properties and configure export.

Using XFD files to update Document Definitions

A Document Definition that was created based on an XFD file can be updated using an XFD file without losing any changes made by the user in the Document Definition Editor.

To update a Document Definition using an XFD file, open the Tools menu in the Document Definitions Editor, click Update Definition with XFD… and specify the path to the XFD file in the dialog box that opens. Page images will be replaced with images from the XFD file and blocks will be created based on the new description in the XFD file. Document Definition fields that are not present in the updated Document Definition will remain in the document structure. They will be marked with an asterisk and their blocks will not appear on images. A warning will be displayed when these elements are updated.

Note: If the Document Definition contains multiple sections, every section must be updated individually. To update a section, select it in the document structure and execute the Update Definition with XFD… command.


Creating Document Definitions for multipage documents

ABBYY FlexiCapture allows you to create Document Definitions for multipage documents. A Document Definition can comprise any number of sections, which can contain one or several pages. Document Definitions of multipage documents require you to specify the order of sections, their number, and the rules used to assemble pages into documents.

After the Wizard finishes creating a new Document Definition, a simple Document Definition is created containing no sections. To this Document Definition, pages and sections can be added.

Adding pages

You can add pages to the Document Definition. When you add a page, its image is added to the image region in the Document Definition editor window, while fields created on it will be listed in the common fields list. In this case the document consists of a single section even though it may contain several pages.

You should add pages to a single section if the document has blocks continuing or recurring on several pages or tables continuing on the following page. The same method is used for loading a multipage flexible description (see Creating a Document Definition for processing flexible documents). All fields in a flexible description must belong to one section of a Document Definition.

To add a page to a section, use the Document Definition editor menu item Document Definition > Add Pages… or the Add Pages… item in the shortcut menu of the image. Then load the image of a new uncompleted page and select object types that have to be marked on the page automatically.

Adding sections

Another way is to add sections to the Document Definition. In the simplest scenario, one section contains one page. You can choose it if field sets on pages are independent. This method is more illustrative: the document structure shows which section the fields belong to, and you can also configure a custom structure of document assembly. Let us assume, for example, that your document contains three types of pages and pages of the first and third types may occur only once, while pages of the second type may occur 2 to 5 times. Then you must create three sections, one for each page type, and specify the order of sections in the document and the number of their possible occurrences.

A more complex scenario is a Document Definition comprising several sections, some of which include more than one page. For example, this may be a Document Definition consisting of fixed sections and a flexible multipage section. Or a Document Definition describing documents containing a two-sided sheet that can recur several times. Suppose you need to create a Document Definition for a document containing a title page (page A) and a certain number of two-sided sheets (page sequence – BCBC...). You would therefore create section A comprising one page A and section BC comprising two pages B and C. The document structure is configured as follows: section A is repeated once, followed by section BC, which is repeated 3 to 7 times.

To add a new section, use the menu item Document Definition > Add Document Section… in the Document Definition editor window. The section creation wizard will open to assist you with configuring all the required parameters. Following the instructions of the wizard, perform the following:

  • specify the section name.
  • load the image of an uncompleted page (scan or load from file) or load a flexible description file.
  • select object types that will be marked automatically.

A new section and fields it contains will be displayed in the document structure window.

Additional settings

For a Document Definition consisting of several sections, you can enable verification of key fields in addition to the order and number of recurring sections. To do so, you have to identify the key fields in each document section. Their values must be identical in different sections. To add the key field to multiple pages of the same section, create a multiple key field whose instances are located on different pages. An example of a key field is the last name of the person who completed the document, which must be written on each page, or a certain identification number.

When processing a batch, the program tries to assemble a sequence of pages into documents, checking assembly rules in the process. The program will perform a check of key field values if the corresponding option is selected. If key fields do not match on the pages of the same document, an error message will be displayed. Sometimes this happens because document pages have been misplaced during scanning, in which case changing the order of pages will be enough to fulfill document assembly rules. See Assembling pages into documents.

You can also import a section from another Document Definition in the project. To do it, on the main menu, click Document Definition > Import Document Section… and select the section in the Select Section Definition to Import dialog box.

Note: Shared scripting modules are not imported, when importing sections. The result can be that script rules written in a new section will be invalid or will work incorrectly.

Viewing and edition results

To view the resulting document structure when creating a Document Definition, in the Document Structure window located in the right part of the Document Definition editor window, go to the Pages tab. It shows the document structure in the page outline mode. On this tab you can change the number of section inclusions in a document (to do so, enter a new value – number or interval – in the square to the right of the section name), attach pages of an annex, change the order of pages in the section, and move pages from one section to another by simply dragging and dropping a page.

For pages, that can repeat in a section, select the Can repeat in section option in the page properties. To open Page Properties dialog box, select Properties... from the local menu of the page or press Alt+Enter.

Collapsed Show document structure window

Document assembly

To specify the sequence and number of recurring sections as well as the assembly rule, use the menu item Document Definition > Document Definition Properties… in the Document Definition editor window. On the Assembly tab specify the minimum and maximum number of inclusions of each section in the document (default value is 1). If you want to check the values of key fields, enable the option Use key fields equality assembling rule and select a key field in each section.

Select the assembly rules to be used. Both standard and custom assembly rules can be used.

Standard assembly rules allow you to disable checks of sections order and to assemble document with annex pages.
Disabling checks for the order of sections (Disable sections order check option) applies, for example, if the order of sections does not affect document assembly). The program will still check that all the sections are present in the document, but their order will be ignored.
To assemble documents with annexes, select the Enable annex pages option. To detect annex pages on the basis of present document structure, enable the corresponding option.

To assemble documents by using the document assembly script, enable the Use custom assembling rules option. To start editing the script, click the Edit Assembling Script… button.

Collapsed Show the Assembly tab


Creating a Document Definition for flexible document processing

For bills, payment orders, and similar documents, you cannot create a Document Definition with fixed field locations. This is because their location, size and number may not be identical, such that a fixed Document Definition cannot be applied to all documents. In such documents, the program searches fields after pre-recognition of the entire page and creates a flexible description based on keywords and relative locations of fields. A special program module ABBYY FlexiLayout Studio is intended for designing flexible descriptions (supplied together with ABBYY FlexiCapture). You will find detailed instructions for designing a flexible description in the Help Topics of ABBYY FlexiLayout Studio.

A flexible description is exported to an .afl file and then loaded in ABBYY FlexiCapture. We can use a flexible description for the entire Document Definition or as one of its sections. A flexible description may be multipage.

Attaching a flexible description

A flexible description can be attached at the stage of creating a Document Definition. To do so, at the second stage in the Document Definition Wizard add the document image and then enable the option Load FlexiLayout and enter the path to the .afl file containing the flexible description.

You may attach a flexible description from the window of the Document Definition editor in the dialog box of the Document Definition section.

  1. Select a document section. (If the document consists of a single section, in the Document Structure window open the Pages tab and select the name of the single section.) Right-click and select Properties… from the shortcut menu.
  2. Go to the FlexiLayout tab.
  3. Click Load…
  4. Select the required .afl file containing the flexible description.

After you attach a flexible description, the geometrical layout of fields will be displayed on the image. Now you have to configure field properties in the same way you do it for the fixed Document Definition. Specify recognition, verification, and export properties and set the required rules.

Updating flexible descriptions

To updata FlexiLayouts used in the Document Definition, select Tools > Update FlexiLayouts…. In the dialog box that opens specify the paths to FlexiLayouts and click Update.

Note: When importing a FlexiLyout with text files that contain possible field values, these files are placed along the relative paths that were defined when creating the FlexiLayout. The relative paths are relative to the project file. To edit these files, save the project locally (select Project>Export Project…), edit the files, and update the project on the server (select Project>Update Project…).


Creating Document Definitions for documents with annexes

ABBYY FlexiCapture lets you create Document Definitions for documents with annexes. Annexes are additional pages that can accompany each form. No Document Definition is applied to these pages, but they are taken into account during document assembly. For example, a loan application (fixed form) is submitted along with an income statement in a free-form style. This income statement can be processed as an annex.

To create a Document Definition for a document with an annex:

First method:

  1. Open the Pages tab in the Document Structure window (first part of the Document Definition editor).
  2. Enable the option Enable annex pages in document.
  3. Enter the number or range of pages of the annex in the box that appears to the right of the section name.
Collapsed Show document structure window

Alternative method of creating a Document Definition for a document with an annex:
  1. Open the Document Definition properties dialog box (Document Definition > Document Definition Properties… in the Document Definition editor window).
  2. Go to the Assembly tab.
  3. Enable the option Enable annex pages. The Annex pages line will appear in the sections list.
  4. Enter the minimum and maximum number of pages in the annex.
Collapsed (This is the Drop-down Hotspot)

In order to save the text from the annex, when configuring export you need to specify image save options (in the Export Settings dialog box). If you select PDF searchable to save the image, text will be recognized and saved in a PDF searchable file.


Processing unstructured documents

ABBYY FlexiCapture can be used to process unstructured documents containing information presented in a free style, for example contracts, letters, orders, annexes. Unstructured documents with text or images separated by blank sheets or pages with barcodes are processed and exported to PDF searchable files or graphic files.

The processing of such documents normally involves converting documents to electronic form and running a search according to key field values.

If possible, the search for key fields (such as a contract number) in such documents is performed using a flexible description created with ABBYY FlexiLayout Studio. See Creating a Document Definition for processing flexible documents.

If automatic search of key fields is impossible, the operator may input their values manually. To do so, create a Document Definition with one field (or several fields, if necessary), and enable the option Don't recognize (Key from Image field - will be entered manually) in the recognition properties of this field. When running the verification process the operator will then be able to input key field values manually.

You need to configure export to enable data storage: you can export key field values to file or database and save document images in a convenient format. You can save document images in graphic files or PDF searchable files.

Pay close attention when assembling pages into documents: with unstructured documents it can be fixed to determine to which document a particular page belongs. To automate the assembly of unstructured documents we recommend separating documents with blank sheets or pages with barcodes. When adding images to a batch (by scanning, adding from file, or creating an import profile) you then need to enable the option For images separated by and select the value blank pages or pages with barcode from the dropdown list, depending on which pages are to be used as separators. Pages are assembled into documents automatically: pages will be added to the current document until the next separator page. For details see Adding page imagesAdding page images.


Editing and publishing a Document Definition

Document Definitions can be edited in the Document Definition editor window. Here, you can modify the layout of fields and static elements, edit their properties, rules, export settings, etc.

So as not to affect the work of other project members when editing a Document Definition, the program allows you to edit a local Document Definition copy while the latest published Document Definition version is being used for recognition. This mode enables to modify and test Document Definitions locally, while operators can complete verification and export of documents recognized using the old version, even if the Document Definition has been modified considerably or deleted. The Document Definition that is being edited is not accessible for editing by other users. Once you have finished editing the Document Definition, you can either publish it, making the new version available for document recognition, or undo all the changes.

To edit a Document Definition, proceed as follows:

  1. In the main program window, select the menu item Project>Document Definitions…
  2. Select the Document Definition to be edited.
  3. Click the Edit… button in the Document Definitions dialog box to start editing the Document Definition. A local version of the Document Definition will be copied to your PC. The Document Definition will become inaccessible for editing by other users.
  4. Make the required modifications in the Document Definition editor window. Save the Document Definition.
  5. Test the Document Definition with several images. For Document Definition adjustments you can use test batches that work with the local version of the Document Definition.
  6. Click the Publish button in the Document Definitions dialog box to publish the Document Definition. Following publication, the new Document Definition version will be used for the recognition of documents in the work batches. The Document Definition can now be edited by other administrators. To return to the original Document Definition, click Discard Changes.
  7. The Document Definitions are applied in the order in which they are listed in the Document Definitions window. Change the order of the Document Definitions if required.
  8. To speed up FlexiLayout matching, select Use first acceptable FlexiLayout to make the program use the first matching FlexiLayout. Otherwise, the program will attempt to apply each of the FlexiLayouts and then select the best match.

A new Document Definition version is used for recognition and further document processing immediately after it is published. However, the previous Document Definition version is used for those documents that are being processed at the moment of publishing. You can update the Document Definition for the documents that are being processed by selecting Tools>Update to Latest Version. Depending on what changes have been made to the Document Definition, a message will be displayed prompting you to re-recognize the documents (if the recognition parameters have changed), to re-check the rules (if the rules have changed), or to re-export the documents (if only the export settings have changed). A message prompting you to re-recognize the documents is displayed in the event of the following changes:

  • the structure of fields has been changed (some fields are added/deleted, field nesting level is changed), or
  • field regions have been changed, or
  • recognition settings have been changed (including data type settings except for format check and auto-correction settings).


Testing Document Definitions

Before starting mass document input, Document Definitions must be tested. Testing is undertaken using documents added to test batches, since these batches work with the local Document Definition version. These batches are available from the View>Test Batches menu of the main program window. You can also access test batches from the Document Definition editor window by selecting Batch>Switch to Test Batch….

Important! Only the user who created a test batch can work with that test batch. If required, a working batch can be used as a test batch, in which case it will serve as a source of images for the test batch.

A Document Definition can be tested directly in the Document Definition editor, on the image that is being used to create the Document Definition. To start the test, select Testing>Run Test. The data form will be displayed as in the case of document processing, and format errors, uncertain characters, and rule errors will be displayed.

You can use the Testing>View menu to rearrange the windows and the Testing>Verification menu to navigate the verification items, uncertain characters, and rule errors. Click the Finish Test button or select Testing>Finish Test to stop the testing.

Important! In testing mode, changing a field border will not cause the program to recognize the field anew, as is the case when you change field borders in the document window.

To test your Document Definition on other images, select a test batch (you can do this by selecting Batch>Switch to Test Batch… in the Document Definition editor). Before the batch selection dialog box is displayed, the program checks the current Document Definition for errors. If the Document Definition is error free, it is saved and the batch selection dialog box is displayed. When you select a batch in this dialog box, the main program window will become active and automatically switch to the newly selected batch.

Important! If necessary, documents can be copied or moved between batches. During these operations, all information about the document, such as the matched Document Definition and recognized data, is preserved. To copy or move documents (e.g. from a working batch to a test one for debugging purposes), select them in the list when viewing the contents of the batch, then press Ctrl+C (to copy) or Ctrl+X (to move), click [image] or [image] button on the toolbar or use the Copy or Cut item of the Edit menu. Next, open the batch where you want to copy or move documents and press Ctrl+V, click [image] button on the toolbar or select the Edit>Paste item in the main menu.

We recommend checking each Document Definition with at least 20 document images (if documents are completed by hand, it is preferable to use documents completed by different people).

Testing is required to determine whether:

  1. There is a sufficient number of marked anchors and identifiers for certain application of a Document Definition to an image.
  2. The field properties have been configured correctly.
  3. The rules have been configured correctly.
  4. Export has been configured correctly.

During testing, you need to perform the entire sequence of actions performed when processing documents.

If rule errors, incorrect field values, etc. were detected during testing, you must edit the Document Definition to correct them.

Only after elimination of all of the problems detected can you publish the Document Definition and begin mass input of documents.

Operating a configured project


Localizing a Document Definition

A localized Document Definition is a Document Definition that has been translated to a language other then the language in which it was developed. ABBYY FlexiCapture users can select an interface language during installation. If a Document Definition has a localized version for the selected language, this version will be used.

Localization includes translations of:

  • names of fields, buttons and text in the data form
  • user script messages (for example messages displayed by script rules, export settings and event handlers)

When editing a Document Definition, the user who is setting up the projects works with default values that do not change during localization (see "The localization file" section of this article for details). However, when an operator opens the document editor, a localization file matching the interface language of the document editor will be used.

The localization process

Document definitions are localized as follows:

  1. Identifiers of strings that need to be localized are exported to a text file.
  2. Localized text is provided for each string identifier in the text file.
  3. Localized text and corresponding identifiers (collectively referred to as the "localization") from the text file are exported to the Document Definition.

Note: The localization is only exported to the Document Definition that contains strings with identifiers used in the localization.

The localization file

The localization file is a TXT file that contains a list of localized strings. Strings in this file are sorted according to the type of interface element in which they appear (field names, Document Definition name, shell messages and script messages) and then alphabetically by name. The Localization Options dialog box contains controls for creating and managing localization files.

Example of a string in a localization file that hasn't been translated yet:

BANK_CODE ,"Bank Code"

In this example, BANK_CODE is the identifier of the string. No other field in the Document Definition can have the same identifier. This identifier is generated automatically in one of two ways: based on the name of the field, or using the template FC_<number of the field>.

The identifier is followed by a comma, which is followed by the string which will be displayed to the user, enclosed in quotation marks ("Bank code"). This string is the part that is translated during localization.

When the string is translated and imported back into the Document Definition, a comment delimiter (two slashes) followed by the original string ("Bank Code") is automatically added after the localized string. The original string is the default string which is displayed to users editing the Document Definition.

The string above will look as follows when localized to Russian:

BANK_CODE ,"Код банка" // "Bank Code"

Localization file syntax

  • The identifier of a string and the string itself are separated by a comma (,)
  • Comments are preceded by a comment delimiter (//)
  • Strings are enclosed in quotation marks ("String")
  • Quotation marks inside strings have to be preceded by a backslash (\")
  • Backslashes in strings have to be preceded by a backslash (\\)
  • Line breaks are indicated with the newline character sequence \n.

Using a localization file to Localize a Document Definition

Creating a localization file

  1. In the Document Definition Editor, click Document Definition> Localization > Localization Options….

  2. Select a language for which you want to create a localization file (languages without a localization file have the Nonlocalized status) and click the Export…button.

  3. In the dialog box that opens, specify the folder in which you want to save the localization file and the name of the file.

    4. Editing a localization file

  4. Open the localization file in a text editor and translate the strings.
  5. Save the file. Make sure it is encoded in Unicode.

    Importing a localization file to a Document Definition

  6. In the document definition editor, click Document Definition> Localization > Localization Options….
  7. Select the language for which you want to import a localization file from the list and click the Import… button.
  8. Specify the path to the localization file in the dialog box that opens.
  9. After the localization file has been imported, the status of the language will change to Localized.
  10. Save the Document Definition.

After a localization file has been imported, the data form in the Document Definition editor will still contain default (unlocalized) text. The localized text will only appear in the document editor. Users of the Project Setup Station can only view localized text when testing Document Definitions and only if the localization's language is selected as the interface language of ABBYY FlexiCapture.

If a localized string is longer than the original string, fields on the data form will be moved to accommodate the longer string.

Deleting a localization

  1. In the Document Definition Editor, open the Document Definition and click Localization > Localization Options….
  2. Select the language of the localization you want to delete (languages with available localization have the Localized status).
  3. The status of the language will change to Nonlocalized.

Localizing messages from user scripts

To localize messages from user scripts (such as script rules and event handlers), create an identifier for each message, provide localized text for each message, and reference the identifiers of messages in the script's code.

To export messages from user scripts to a localization file, click Document Definition> Localization > Localization Options…. You can then translate the messages and import the localization file to the Document Definition as described in the "Importing a localization file to a Document Definition" section of this article.

Localized user script messages will be displayed when the corresponding interface language is selected in ABBYY FlexiCapture.

In the Document Definition editor, click Document Definition > Localization > Localizable Script Messages….

A dialog box containing a list of all possible error messages will open. Click the Add…, Edit… and Delete buttons to edit messages. The dialog box that opens when you click Add… or Edit… lets you change the name of the message and its default text.

Calling localized messages from scripts

To call a message from a user script, use the FCTools.LocalizedStrings object. This object uses the IProperties method.

The following code sample returns a localized message that has the identifier MY_ MESSAGE_1:

FCTools.LocalizedStrings.Get ("MY _MESSAGE_1")


Classifiers

You are here: Program settings > Classifier

Classifier

A classifier is a project created in ABBYY FlexiLayout Studio for preliminary identification of individual pages and classifying them as belonging to a particular type. For example, pages can be classified based on a FlexiLayout or a layout alternative. Once a classifier is created in ABBYY FlexiLayout Studio, it can be used in ABBYY FlexiCapture to classify documents at project level or at batch type level.

To add a classifier project at project level:

  1. Open the project.
  2. In the main window, select Project Properties… from the Project menu. The project properties dialog box appears.
  3. Click the Recognition tab and then click Load…
  4. Select the *.cfl file that contains the classifier.

Note: If, when creating a batch, Default was specified as the batch type, the settings specified in the project's properties will be used for processing.

To add a classifier project at batch type level:

  1. Open the Batch Types dialog box by selecting Project>Batch Types…
  2. Select the batch type from the list and click Edit…The batch type properties dialog box appears.
  3. Click the Recognition tab and then in the classifier section click Load…
  4. Select the *.cfl file that contains the classifier.

Classifiers may be used for the following purposes:

  • To speed up the selection of Document Definition. The use of a classifier allows the program not to go through all the available Document Definitions in search for the best match, but to select the appropriate Document Definition based on the classifying features. The search order is determined by the user, who selects classifying features and builds a classifier tree. Gains in speed are particularly noticeable in the case of large-scale projects with many Document Definitions.
  • To distribute the classifying features in the classifier tree. For example, at the topmost level, you can select documents sent in by a certain company based on a document section that bears the name of that company. On the next level, the documents can be classified based on their titles or based o the number of separators on a particular page.
  • To manage the application of third-party FlexiLayouts. FlexiLayouts created by a third-party developer may not match properly their documents. In this case you can use a classifier to remedy the situation without contacting the developer.
  • To speed up projects that contain Document Definitions in multiple languages. If a classifier is used, pre-recognition of the documents is performed only twice: when classifying the documents and when applying the selected Document Definition. Otherwise, pre-recognition has to be done for each Document Definition language in the project.

For detailed information about classifiers, see ABBYY FlexiLayout Studio Help.


Image import profiles

Document processing starts with adding new images: these can be either hard-copy documents that need to be scanned, or existing electronic images.

You can automate the image adding routines if images are regularly taken from the same source. To automate the process, create an image import profile on the Administrator Station. Additionally, you can configure the processing of incoming images and periodic adding of images in background mode. Once the required settings have been configured, at the click of a button images will be scanned or imported from a preset source, and received images will be processed (for example, despeckled). If required, you can change the source of image import or its settings.

Where import sources change frequently, you can create several import profiles and switch between them to avoid changing import source settings all the time.

Creating an import profile

To add an import profile, select the menu item Project>Image Import Profiles… in the main program window. In the dialog box that opens you can create new import profiles, edit, remove, and copy existing profiles.

You can create a new import profile with the help of a Profile Wizard that can be run from the Image Import Profiles dialog box by clicking New…. Select an import source, e.g. a scanner or a hot folder, at the first stage of the Wizard's operation.

Collapsed Creating an import profile with a scanner
  1. Select Scanner as import source.

    Important! The scanner must be connected. To connect the scanner correctly, consult the documentation supplied with the scanner. Make sure you install all of the software supplied with the scanner.

  2. For the second step, you can configure the options for scanning and processing scanned images:
    • Style of the settings dialog – choose the method of interaction between the program and the scanner:
      • FlexiCapture Scanner Settings: in this case, the Scanner settings dialog box of ABBYY FlexiCapture is used for configuring scanning options. Click the Settings… button to configure scanning options. If you enable the option Show scanner settings before scanning, then the Scanner settings dialog box of ABBYY FlexiCapture will appear when you select this import profile before scanning.
      • Scanning Options: the dialog box of the relevant scanner driver will be used to configure scanning options. In this case, you will not be able to change scanning options when creating an import profile, but the scanner settings dialog will appear each time before you start scanning images.
    • Specify whether you want to scan one or several images in a single pass.
  3. For the next step, you can configure options for determining the principle of adding images to documents and image processing options. For details, see Image pre-processing options.
  4. For the final step, you can change the default name assigned to an import profile and enter your comment.
Collapsed Creating an import profile with a hot folder or from mail
  1. Select Hot Folder as the import source. Select hot folder type: Local folder or LAN folder, POP3 server, MAPI (mailbox) or FTP server. Specify the path to the hot folder by clicking the Browse… button or login and password by clicking the Settings… button.

    Important! To be able to add images from the hot folder, the user must have read and write privileges for this folder.

    Collapsed To set up import from MAPI (mailbox)
    • The e-mail account must be configured on the computer.

    The importing process (a user station or processing station) must be run under the user account the mailbox belongs to.
    Note: Microsoft Outlook has to be started under this user account on this computer at least once before the import profile is set up.

    Note: Microsoft Outlook 2010 64-bit is not supported.

    • To select an available mailbox, click Browse…
    Collapsed To set up import from POP3 server
    • Specify the address the POP3 server followed by a colon and port number. Examples:
      pop.server.com:110
      pop.server.com:995.
    • Click Settings… and in the dialog box that opens, enter the user name and password to log in. To use SSL technology (port 995) to protect the data you send, select Use SSL.

    Note: If all the settings are correct, but the ABBYY FlexiCapture is unable to retrieve messages from POP3 e-mail server, make sure that a firewall does not block connection with the e-mail server.

  2. For the second step, set the image loading options:
    • Check Hot Folder every – enable this option and enter a time interval for the program to check the hot folder for new images automatically.

      Note: To initiate image import from Hot Folders, enable the Hot Folders for the given project in the Processing Server Monitor.

    • In Batch Settings enable one of the options to specify the batch for adding new images.
      • Add images to current batch – enable this option to add images from the hot folder to the current batch;
      • Add images to specified batch – enable this option and select the batch name from the drop-down list in order to add images to a specific batch.
      • Create new batches for imported images automatically – enable this option to create batches for new images automatically. With this option, every time the hot folder is checked (enable Check Hot Folder every) one or several batches will be created and images from the hot folder will be added to those batches according to the rule specified below.
        In the Batch type field, specify the type of the batch. If required, specify batch registration parameters (click Registration parameters…) and change its priority in the Priority field.

        • Note: If import tasks are processed in the Processing Server, the Create new batches for imported images automatically option must be selected. The Add images to current batch and Add images to specified batch options can be used only if images are imported in the Project Setup Station or if the Standalone version is used.

    • Attach mail to batch (only for hot folder РОР3 server)
      select this option if you want to attach the e-mail message file in EML format to the newly created batch. Attached e-mail messages can be downloaded and opened with an e-mail client. For details, see Attachments.
    • In the drop-down list Number of files to add, select one of the values to specify the number of files to add to the specified or newly created batch:
      • According to description file – files will be added according to the description. To specify the name and type of the description file, click the Settings… button. For details see Description file.
      • All files - all files from the hot folder will be added. Files from subfolders are ignored.
      • From subfolder - files will be added from subfolders whose names comply with the specified format. Click Settings… to specify a naming scheme.

        Note: An asterisk * indicates any string of characters, a question mark ? indicates any single character.

        Note: Rename a subfolder according to the specified naming scheme only after all required files have been copied to it. Otherwise a file access conflict may occur.

      • Several files– several files will be added. To specify the number of files, click the Settings… button and enter the number or range of values. Files from subfolders are ignored.
      • Note: If you specify a certain number of files, e.g. 5, and there are only 4 files left in the hot folder, these files will not be imported. If you specify a range, e.g. 1-5, the remaining 4 files will be imported.
      • Single file – a single file will be added.
      • Attached to the letter – all files attached to letter will be added.
      Note: New images are added to the batch in ascending order of file name.
    • If the profile is intended for importing photos rather than scanned images, select Treat image as photo.
  3. For the next step, you can configure options for determining the principle of adding images to documents and image processing options. For details, see Image pre-processing options. You can also apply document separation and image processing settings specified for the batch type. For this, select the Use image processing options from batch type option.

  4. For the fourth step, the Profile Wizard will ask you to specify options for hot folder cleanup after import: successfully imported images can be deleted or moved to a specific folder. Images that have been processed with errors (e.g., the error may occur if the file is corrupt or due to a network error) can remain in the hot folder or also be moved to a specific folder. If you want to move images, specify folders to move them to.

    Note: It is recommended that images processed with errors should remain in the hot folder if:

    • images are imported manually. During auto-export, a corrupt file in the hot folder may prevent the processing of other files in the folder;
    • processing the hot folder is ofter interrupted due to an unstable network.

  5. For the final step, you can change the default name assigned to an import profile and enter your comment.

You can also edit and create image import profiles in the Select Import Profile dialog box that appears when you select File>Import Images… from the main menu.

Adding page images


Description File

A description file is an auxiliary file that defines how a batch is formed when images are added from a hot folder. Depending on the format of the description file, different file sets are used to form the batch.

The program uses the following types of description file:

  1. Captiva QuickScan
    All the image files listed in the description file are added to the batch. The order of the image files in the batch is the same as in the description file.
  2. Capture Software for Kodak
    The image files that are located in the folder of the Kodak batch are added to the batch in ascending order of file name. The path to the folder images are added from is specified in the Batch key of the Properties section in the *.ini description file:

    [Properties]
    BatchPath=\\computer\HotFolder\PathInHF"

    Images from subfolders are also added to the batch.

  3. Empty file
    This file serves as a marker showing that a new batch must be created. The contents of the file are irrelevant, only the name is important. Images are added from the Hot Folder in alphabetical order. When a file with the name corresponding to the mask specified in the File name field is found, the system will create a new batch. Thus, if the *.dat mask was specified, and the Hot Folder contains the following files:
    • Contract1.jpg
    • Contract2.jpg
    • Contract3.dat
    • Contract4.jpg
    • Contract5.jpg
    • Contract6.dat
    A batch will be created for Contract1.jpg and Contract2.jpg files (when Contract3.dat is found), and another batch will be created for Contract4.jpg and Contract5.jpg files (when Contract6.dat is found).
  4. XML file
    This is an XML file with a documented structure. An XML file is used when the other three types cannot be used but a custom description file can be generated. The image files listed in the description file are added to the batch.

    An XML document must contain a root element Batch with the following child elements: RegistrationParams, Documents and Images. The Images element, in turn, must include Image elements, whose number corresponds to the number of pages in the batch that is being created.

    The Batch element has the following tags:

    • Priority - the priority of the batch: Lowest, Low, Normal, High or Highest. This tag can be omitted. If priority is not specified, the priority specified in the import profile is used.
    • Name - a desired batch name.
    • TypeName - the name of the batch type. Applies if the Default batch type is specified in the import profile.
      If the Scanning Station output folder is used as a hot folder, the name specified in the tag must be the same as the name of batch type in the Scanning Station. In this case, a batch of the specified type will be created.
    • Attachments - attachments to the batch.
    • SourceID - the string identifier of the batch source.
    • Description - a description of the batch.
    • RegistrationParams - the list of the batch registration parameters. Registration parameters from the description file are added to the registration parameters specified in the import profile.
    • Attachments - attachments to the document.
    • Documents - the list of documents (excluded from the automatic document assembly).
    • Images - the list of separate pages (included in the automatic assembly).

    The Document element has the following tags:

    • Index (a mandatory attribute) - the index of the document within documents of the batch numbered from zero.
    • Priority - the priority of the document: Lowest, Low, Normal, High or Highest. This tag can be omitted.
    • Name - the name of the document.
    • Barcode - the barcode value.
    • RegistrationParams - the list of document registration parameters.
    • Images - the list of document pages.

    The Parameter element (child of the RegistrationParams element) has the following tags:

    • Name (an attribute) - the name of the registration parameter.
    • Value - the value of the registration parameter.

    The Image element has the following tags:

    • Index (a mandatory attribute) - the index of the page (the corresponding document for pages of the Images element) within the document pages (the documents of the batch) numbered from zero.
    • PageIndex (an attribute) - the page number starting with zero within a multipage import file.
    • SourcePath (an attribute) - the path to a folder with source images.
    • SourceFile (an attribute) - the source file with the page image (a path relative to SourcePath).
    • SourceFilePageIndex (an attribute) - the page number starting with zero within a multipage source file.
    • SourceDetails (an attribute) - a description of the source (the name of the scanner).
    • Attachments - attachments to the page.
    • Value - the path to the import file specified for a page relative to the Hot Folder.

    The Attachment element has the following tags:

    • Name - a name of the attachment. If the name is not specified, a name of the source file will be used.
    • Value - the path to the attachment. Paths relative to the HotFolder root can be specified.

    We recommend setting up the scanning program so that scanned images are placed into the Hot Folder itself or into its first-level subfolders. When creating a batch, the program will add to it all the images listed in the Image elements of the corresponding description file. The images will be added in the order in which they are arranged in the description file.

    The order of the image files in the batch is the same as in the description file.


Image pre-processing options

When new images are added to a batch, the program performs image pre-processing: the images are separated into documents, cleaned up from noise, rotated, etc.

You can select pre-processing options on the Image Preprocessing tab.The pre-processing options can be selected for:

  1. A project. In this case, the selected options will be used by default when new images are added manually to project batches. Select Project>Project Properties… in the main window and then click the Image Preprocessing tab.
  2. An import profile. These options will be used when this import profile is used to add new images. When creating a new import profile, select image pre-processing options at theImage Preprocessing stage.
  3. Images added manually. When adding imagesfrom a file, click the Image Preprocessing Settings… button in the Load Images dialog box.

    Note: If images are scanned manually, no image pre-processing is done. Scanned images are only pre-processed if an import profile is used.

  4. A batch type. In this case, the selected options will be used when processing images from batches of the given type. When creating a batch type, select image pre-processing options at the Image Preprocessing tab. Options specified for a batch type also apply to images:
    • received from the Scanning Station or Web Scanning Station if they were not assembled to documents in the corresponding station. Options specified in the Image processing section will apply to received images whether they are assembled into documents or not;
    • added by Web Service API methods (if the ExcludeFromAutomaticAssembling flag is set to false). For details, please refer to Web Services API help file;
    • added from a hot folder (if the Use image processing options from batch type option is selected). See Image import profiles for more details;
    • added manually from a file. In this case, options specified for a batch type are used by default.

Users can select any of the following image pre-processing options:

  • Options that determine the principles of adding images to documents:
    • Automatically when Document Definition is applied – Select this option if you wish images to be separated into documents during matching (during recognition). In this case, images will not be separated into documents immediately when they are added and documents will be assembled only after the pages have been analyzed and recognized based on the structure described in the appropriate Document Definition.For details see Creating Document Definitions for multipage documentsand Assembling pages into documents.
    • For each image file - If this option is selected, a new document will be created for every file (an image file can be multipage).
    • For images separated by - A new document will be created when the program reaches a separator sheet. To use blank pages as separators, select blank pages from the dropdown list. In the Blank Pages Detection dialog box that opens, specify the parameters by which empty pages will be detected. To use pages with barcodes as separators, select pages with barcode from the dropdown list. You can set additional parameters by clicking the Settings… button. If you do not need separator pages to be added to the batch, select Delete separator pages. If this option is not checked, separator pages are added to the batch and become the first pages of each document.

    Note: You do not have to use separator pages to split pages between documents. Separator pages must be used only when the appearance of the page makes it impossible to determine whether it belongs to the previous document or to the next one. For example, this happens where a document comprises any number of identical pages, and the batch contains more than one such document.

    Note: For documents scanned or added in the Scanning Station, batch and document separation options are specified in batch type settings of the Scanning Station.

  • Configure image processing options:
    • Despeckle images
      Removes noise from images;
    • Convert color and gray images to black-and-white
      Converts images to black-and-white;
    • Rotate images by
      Rotates images in the specified direction.
    • Treat image as photo
      This option is recommended for processing photographs of documents.
  • Deskewing options. By default, these options are selected and the program deskews newly added images relying on black squares and/or on vertical and horizontal separators and text. It is not recommended to turn off the deskewing options unless deskewing is done incorrectly (e.g. if the program interprets a stamp or a graph as a separator and attempts to deskew the image based on this faulty data).
    • Use black separators to correct skew
      If this option is selected images are deskewed based on separator lines;
    • Use black squares to correct skew
      If this option is selected, images are deskewed based on black squares;
    • Use text to correct skew
      If this option is selected, images are deskewed based on text of the image.


Empty Page Detection Settings

You are here: Program settings > Empty page detection settings

Blank Pages Detection

In this dialog box, you can specify detection settings for empty pages used for document separation. To open this dialog box, click Settings… after selecting separation by empty pages in image preprocessing options.

Option | Description
Ignore margins, mm | Select this option to automatically crop the page (in millimeters on top, bottom, left, and right) when it is defined whether the page is empty or not. After cropping, the resulting page will be checked for other parameters.
Black squares | Select this option if you want pages with a certain number of black squares (special form design elements) to be deemed empty. Specify the maximum number of black squares allowed on a page.
Text objects | Select this option if you want pages with a certain number of text objects to be deemed empty. Text objects include any separate text fragments. You can use this option, for example, for pages with headers and footers. Specify the maximum number of text blocks allowed on a page.
Barcodes | Select this option if you want pages with a certain number of barcodes to be deemed empty. Specify the maximum number of barcodes allowed on a page.
Percentage of blackness | Select this option if you want pages with a certain percentage of black color to be deemed empty. Select the maximum percentage of blackness allowed on a page. The black-to-white ratio is established after image binarization.

Note: Using Black squares as the primary option is not recommended as unwanted dots can be introduced when scanning documents. The number of text objects is a more reliable option while restriction on the number of black squares can be used as an additional check.


Export settings

Export settings are specified for each batch type. When a batch is created, its type is specified and, when selecting the File > Export to command, the batch is exported in accordance with the settings for this batch type.

If no batch types are created, all batches are exported with the <default> settings specified for the entire project (Project>Project Properties…, Export Destinations tab). If you select the File > Export to command for the batch whose type is not specified the batch is exported with the <default> settings.

On this tab you can enable deleting documents after export and specify export options for unrecognized documents. Recognized documents will be exported in accordance with Document Definition settings.

The following export options are available:

Option | Description
Export unrecognized documents | Select this option if you want to export unrecognized documents.
Image export settings group
Image format Select the desired image saving format from the list. The following formats are supported: TIFF, JPEG, PDF, PDF/A, BMP, JPEG2000, PCX packbits, PNG.
Click the Options… button to specify options for the selected format. For all formats, the following options are available:
  • Quality.
  • Color Type.
  • Changing resolution to a new value (in dpi).
If you select PDF or PDF/A as a storage format, you can create searchable PDF files by selecting Create searchable PDF. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed.
Recognition language is defined the following way:
  • For fields, recognition language is specified on the Data type tab of the field properties.
  • For full-text recognition, the Document Definition language is used.
  • For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select… to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.
Select the Use MRC (mixed raster content) option if you want to achieve a higher speed of recognition and get output files of smaller size. With this option, fields for which the Do not recognize mode is selected can be exported with lower quality.
Target Select the desired export target from the drop-down list. Depending on the selected target specify additional export settings. You have the following choices:
  • Create folder structure and filename using template
    If you select this value, file names and the subfolder structure will form depending on the document parameters.
  • Export documents as separate files
    If you select this value, each document will be exported to a separate file. Specify the path and the first characters of the file name in the Name prefix field.
  • Recreate filenames and structure of Hot Folder subfolders
    If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.
Export path | The path to the folder to which you want to export files.
Template

File name generation settings. To change these settings, click the Edit… button. See Export File Naming Criteria for details.

If file exists | This drop-down list lets you specify what the program should do if a file with the generated name already exists.
Delete documents after export Select this option if you want to delete documents after they have been exported.
Note: Data on documents that were deleted immediately after they were exported will not be included in reports.


Document batches

You are here: Program settings > Document batches

Batches

Documents to be processed are put into batches. The principles of grouping documents into batches are determined by the user. For example, the user may choose to process all documents as one batch, or group together documents imported on the same day or scanned at one go.

On the Processing Stations, batches are created automatically when importing images from Hot Folders. On the Scanning Station, batches may be created manually by an operator or automatically, if the appropriate scanning profiles are available. When a batch is created, its type should be specified, which defines how the batch is to be processed.

Page images are added during processing. See Adding page images for details.

On the Project Setup Station, Document Definitions can be debugged by creating batches, adding document images into the batches, and processing them (i.e. recognizing, verifying, and exporting the results). To create a new batch, right-click the batch list in the main window and select New Batch... from the shortcut menu.

Working and test batches

Test batches are used by the Batch Setup Operator to test and debug Document Definitions. Working batches are intended for processing documents with ABBYY FlexiCapture. The Batch Setup Operator can also access working batches if errors occur during processing. In the event of an error, the operator can open the batch and correct the error. Test batches and working batches are different in that the local Document Definition is used to process the documents of a test batch whereas a published Document Definition is used to process the documents of a working batch. SeeEditing and publishing a Document Definition.

To open the list of batches, select the Working Batches or Test Batches item from the View menu on the Project Setup Station.


Attachments

User attachments can be added for pages, documents and batches. Attached files can be later edited and downloaded.

You can attach files of any format, for example, you can add a file with digital signature when scanning images.

The following ways of adding attachments are available:

  1. When importing images from Hot Folder according to settings specified in the description file.
  2. On the Attachments tab of page, document or batch properties dialog box, click the Add… button. In the dialog box that opens, specify the attachment name and the path to the it.
  3. By script using the IUserAttachments.AddNew method. Methods of the IUserAttachment interface also allows you to edit added attachments.
  4. By using Web Service API. For details, please refer to Web Services API help file.

To save the attachment to a hard disk on your computer, click the Save As… button on the Attachments tab or use the IUserAttachment.ToFile method.


Index fields

To make it easier to search for and process documents, you can index documents using the values of any fields in a Document Definition. In the documents list in the main program window, in addition to the basic information you will then be able to output values of the index field for each document, sort documents by these values, and easily locate the required documents.

To index by field values, enable the option Index field for this field (General tab in the Document Definition editor).

To display the value of the index field in the document list:

  • In the main program window, open a batch of documents and enable the detailed documents list mode (button [image] on the toolbar).
  • Right-click in the table header region (column names) and select Customize… from the dropdown list.
  • In the Choose Columns dialog box, click the New… button.
  • In the Edit Column dialog box, click the Select… button to the right of the Index Field. In the dialog box that opens, select one of the fields with the enabled option Index field. You can also enter any column name and specify the justification method.
  • Another column with the index field value will appear in the table. Click on it to sort documents by the value of the index field.


Operating a configured project

Before the operator can start processing documents, the project has to be configured by the administrator. Document processing can be configured in such a way as to require minimum involvement from the operator in the operations of image scanning and import, data recognition and export. In this case the main stage of the operator's work is checking and correcting recognized data – verification.

The operator's work is not affected by the type of document.

Document processing consists of four stages, and each stage has a corresponding button on the toolbar.

1. Adding images

The arrow on the right lets you select one of the image import options: Load Images…, Scan Images… or import images by selecting one of the configured import profiles. The button name changes depending on the selected action.

2. Recognition

Runs the document recognition process. The arrow on the right also lets you analyze documents or apply one of the Document Definitions.

3. Verification

Runs the verification process. With the help of the arrow you can also run the rule validation process.

4. Export

Starts data export according to the settings configured in the Document Definition. Click the arrow to specify whether data should be exported to a file or a database or whether document images should be exported.


Adding page images

Document processing starts with adding document page images to the project – image import. To start work, select or create a new work batch for adding images (to create a batch, right-click in the main program window and select New Batch…). Open the required batch by double-clicking it, or simply highlight it in the list.

Note: If you attempt to add an image to a project with no batches, a document batch will be created automatically.

There are several ways by which images can be added to a batch:

  1. Load previously saved images from files;
  2. Scan images;
  3. Import images using one of the image import profiles previously configured by the administrator (see Image import profiles.)

To select a method by which to add images, click the arrow to the right of the import button and select one of the menu items.

Adding images from file

To load images from file, select the Load Images… menu item or use the Ctrl+O shortcut. In the dialog box that opens, select the required image files and configure the image import options:

  • Create new document – new documents will be created for the added images
  • Add to current document – images will be added to the current, highlighted document.
  • You can also select image pre-processing options. Click the Image Preprocessing Settings… button and select the desired options in the dialog box that appears. For details, see Image pre-processing options.

Scanning images

To add images from a scanner, select the Scan Images… menu item. Choose a scanner, configure scanning options and scan images.

Adding images with the help of import profiles

If the administrator has configured import profiles, their names will be shown in the menu of the import button. To start importing images, you only need to select an item with the name of one of the import profiles.

After you select Import Images… the Select Import Profile dialog box opens. Select the import profile from the list and click the Import button to start importing images. If you are working in the administrator mode, from this dialog box you can also create a new import profile or edit existing profiles.

Background image import

Image import can be performed in the background mode if the appropriate import profile has been configured. Images from the hot folder are automatically imported into the system. The program checks the folder for new images at time intervals specified in the settings.

The program starts monitoring the hot folder when the user starts importing images using a profile with the Check Hot Folder every option enabled. The program stops monitoring the hot folder when the user quits the project or disables the Check Hot Folder every option in the profile properties. For details see Image import profiles.

Note: To add images from the hot folder, the user must have read and write privileges for this folder.


Configuring scanning options

Recognition quality largely depends on the quality of the scanned image. The image quality can be regulated by configuring the basic scanning options: image type, resolution, and brightness.

When you scan images via ABBYY FlexiCapture, there are two possible ways in which the program can interact with scanners via the TWAIN or ISIS drivers:

  • Via ABBYY FlexiCapture interface:
    in this case, scanning options are configured with the help of the ABBYY FlexiCapture dialog box Scanner settings; scanning options can be configured when creating an import profile with the Scanner specified as the import source.
  • Via the interface of the TWAIN or ISIS driver of the scanner:
    the dialog box of the relevant scanner driver is used to configure scanning options. This dialog box opens automatically when you select Scan Images… from the dropdown menu of the import button.

Basic scanning options

  • Image type – scanning in grayscale (256 shades of gray) is the optimum mode for the recognition system. When you scan in grayscale mode, the program selects the brightness level automatically.

    The black-and-white image type ensures a faster scanning speed at the expense of some letter information, which may affect recognition quality of documents with average and low quality print.
    If you need color elements of the document (pictures, color letters and color background) to be rendered in the electronic document with the color preserved, you need to select the color image type. In other cases use the grayscale image type.

  • Brightness and contrast values have to be selected so as to, first, preserve the anchor blocks and, second, make the images of blocks intended for recognition as clear and definitive as possible.
    In most cases the average brightness value of 50% is suitable.
    You may need to configure brightness additionally when scanning some documents in the black-and-white mode.
  • Resolution – the recommended resolution for processing forms filled out by hand is 300 dpi. The resolution of scanned forms must match the resolution of the template image.

Note:

  1. Scanning with a resolution of 400-600 dpi instead of 300 dpi, or scanning in gray or in color instead of black-and-white can take considerably more time. With some scanner models, scanning with a resolution of 600 dpi takes 4 times as long as scanning with a resolution of 300 dpi. Scanning with a resolution below 200 dpi is not recommended.
  2. When you use the dialog box of the scanner driver, the options for configuring scanning settings can have different names depending on the scanner model. For example, brightness can be called threshold or be marked with a sun or black-and-white circle. The meanings of options are described in the documentation that comes with your scanner.

Tip.

  1. Scanning color background forms with a monochrome scanner. For the background to disappear during scanning, you need to equip the scanner with an appropriate light filtering lamp: for pink forms – a Red-Lamp, for green forms – a Green-Lamp.
  2. Scanning color background forms with a color scanner. For the background to disappear during scanning, you need to configure the filtration mode for the relevant color in the scanner settings.
  3. Scanning color background forms of light shades. If you are processing color forms of light shades, because of low color strength the background may disappear when you scan with a white lamp even without software filtration of color. As a rule, the method of scanning forms is chosen at the form development stage.

Tip.

  1. A scanned image must be readable (to view a scanned image, open it in the document window).
  2. If in the scanned image the letters are torn, light or thin:
    • Reduce brightness, increase contrast (make the image darker) or
    • Try to scan it in grayscale (in this case brightness will be selected automatically).
  3. If the scanned image has a dirty background; deformed, smeared or fused characters; dark, thick letters:
    • Increase brightness (make the image lighter) or
    • Try to scan it in grayscale (in this case brightness will be selected automatically).


Recognition

To activate recognition, click the Recognize button. The program applies a Document Definition after selecting it using anchors and identifiers and performs data recognition in document regions matching field regions in the selected Document Definition.

Image recognition can be performed automatically, as soon as images are added to the batch. To this end, you have to enable the option Recognize added images automatically (in the Tools menu of the main window, Options… item under the Document Processing tab).

The ratio of certainly recognized characters to the total number of characters is shown in the Confidence Level column. After recognition, the operator can run document verification.

If required, before recognition the operator can perform Preliminary analysis of images and Document Definition matching.

Note: The following message can occur during recognition: "Cannot create <ProjectDirectory>\<BatchName>\BatchHeader.tmp". The specified file already exists." The error occurs because of Windows Search indexing service which affects working of the program. Windows Search indexing service processes files which are created in the project folder and deleted during operating of the program which causes the error. For this reason we recommend that you should disable Windows Search indexing service.


Preliminary image analysis and applying Document Definitions

Before running recognition, you can analyze, or determine, which Document Definition can be applied to a particular page. To this end, select the main menu item Recognition > Analyze or click the arrow to the right of the Recognize button and select Analyze. If a Document Definition can be applied, the page and the document it belongs to will be named accordingly. If none of the project Document Definitions matches the image, the page will remain unprocessed.

You can also apply a certain Document Definition to a page or to an entire document. In most cases, a Document Definition that has been correctly created in the program applies to pages automatically, but in some cases you may have to apply a Document Definition manually.

To apply a Document Definition:

  1. Highlight the document;
  2. Select Match Document Definition…in the shortcut menu of the document or the main menu item Recognition>Match Document Definition… or click the arrow to the right of the Recognize button and select Match Document Definition…;
  3. In the Select Document Definition dialog box that opens, select one of the Document Definitions and click OK.

If the selected Document Definition has been applied successfully, the document and its pages will be assigned names of the relevant Document Definition and its sections.

To apply a Document Definition to one of the pages:

  1. Highlight the page;
  2. Select Match Document Definition…from the shortcut menu of the page or the main menu item Recognition>Match Document Definition…;
  3. In the Select Document Definition to Match dialog box that opens, select one of the Document Definitions and click OK.

Where the Document Definition is applied successfully, the selected page will be assigned a name of the corresponding Document Definition section.


Verification of recognized data

Verification, or checking of recognized data, is the most labor-intensive part of the operator's work. In ABBYY products, the verification technology has been implemented taking into account the basic psychosomatic peculiarities of humans: habit formation, skill utilization, integrity and purpose of perception. In this way, the verification process in ABBYY FlexiCapture is organized so as to be as convenient as possible for the operator and to minimize the number of errors.

Where the program does not have absolute certainty about the accuracy of recognition of certain characters, it marks them as uncertainly recognized. The purpose of the verification process is to verify such characters, make sure that they have been recognized correctly, and correct them where necessary.

Rule validation is performed automatically. If field values satisfy rule conditions, these fields may be marked as certainly recognized and be excluded from the verification process. Where field values do no meet rule conditions, such fields are submitted for verification.

In the case of multipage documents, you must first check the assembly of pages into documents.

Then run the verification process. Verification is a two-stage process – group and field verification. If the Document Definition has no fields included in group or field verification (see Field verification properties), then the relevant verification stage will be omitted.

Group and field verification is followed by verification in the document window. The characters that were not confirmed at the earlier stages remain highlighted in red.

You can navigate among errors by clicking the buttons [image] and [image] on the main window toolbar. The program navigates all errors, including assembly errors, uncertainly recognized characters, rule errors, etc.

Assembling pages into documents
Group verification
Field verification
Verification in the document window
Rule validation


Assembling pages into documents

How to correct assembly errors

  1. Incorrect page sequence in a document

    There may be too few or too many pages, or document pages are not arranged in the correct sequence. To read a tip, place your cursor over the page marked with a red cross:

    To correct such errors, you can use your mouse to move the page both within a single document and from one document to another.

    Pages of several documents can be merged into a single document as follows:

    • Highlight documents to be merged (use Ctrl-Click to select several documents);
    • Right-click and select Merge from the shortcut menu.

    To split pages in a document and to place each one of them into a separate document:

    • Highlight the document in which you want to split pages;
    • Select Split from the shortcut menu.

  2. If the Document Definition requires verification of key fields for correct assembly of pages, the values of key fields will be displayed under the image of each page:

    • highlighted in gray – in the event of a match;
    • highlighted in red – in the event of a mismatch.

    Key fields may not match if they have been recognized or filled in incorrectly. Check the values of key fields. If the values of key fields still do not match, it is likely that such pages do not belong to the same document. If the page sequence is wrong, find pages with identical key fields and assemble them into documents as described in item 1.

About assembling pages into documents

Pages are assembled into documents automatically or by an explicit user command. The assembly principle can be described when creating a Document Definition for multipage document processing.

Specifics of assembly described in Document Definition properties

  1. Runs:
    • when selecting a command: Tools > Refresh Assembly
    • after analyzing/recognizing a set of documents; in this case, the assembly includes only documents involved in analysis/recognition
  2. Both standard assembly rules and an assembly script can apply.
  3. Document for which the IsExcludedFromAutomaticAssembly flag is set to true, are exluded from assembly. The IsExcludedFromAutomaticAssembly is set to true if:
    • document structure is defined during the import stage (by XML-description, when splitting documents by blank pages, patch-codes or multipage files)
    • the Match Document Definition… is applied to the document
    • the flag can be set from any script from which editing documents is allowed
  4. The assembly is not performed for documents recognized with different Document Definitions or with different versions of the same Document Definition.
  5. The assembly is not performed is the Document Definition is not matched. For example, if all pages of the batch are annex pages, the assembly is not performed.
  6. The order of pages cannot be changed during the assembly.

Specifics of assembly described in batch type properties

The operator's task is to identify and correct possible document assembly errors.

Assembly errors can be corrected most conveniently in the page outline mode that gives the user a good view of page images and the documents to which they belong. You can switch to this mode by clicking the [image] button.

Note: You can change the scale of page outlines to view details by holding down the Ctrl key and turning the scroll wheel.

Note: The order of sections will not be checked if, when creating the Document Definition, the Disable sections order check option was selected on the Assembly tab. The program will still check to make sure that all the sections are present in the document, but the order of sections will be ignored.

When creating a Document Definition, you need to configure the document assembly rule: sequence and number of recurring document sections. You can also configure an assembly verification based on the values of key fields: in this case the values of key fields must be identical on all pages of the document.

Documents with assembly errors are marked with this symbol [image]. Error description is provided in red lettering under the name of the Document Definition.


Group verification

Group verification involves checking character images recognized as having identical values. It enables the operator to easily identify and correct characters that deviate from the group.During group verification, the operator checks groups of similar symbols for which their context within the document is not important, such as numbers and marks.

Incorrectly recognized characters can be corrected as follows: highlight the character that does not match the group character and enter the correct value. This value, highlighted in green, will appear in the upper left corner of the character image.

If the character is hard to read on the image and you can determine if it was recognized correctly, you can view the text field, number field or field group that contains the symbol in the document image. This may help you determine what the symbol is. To do this, left-click the symbol and select Show Character Image from the symbol's shortcut menu or press the F2 key.

You can also enable a mode in which the field that contains a symbol is displayed when the mouse pointer is positioned over the symbol. To this end, select the menu item View>Field Image>Show Field Image in the verifier window or use the Ctrl+I shortcut.

If irrelevant image is recognized as a character (such as a defect that appeared when the image was scanned), you can remove it by pressing the Delete button.

If you still have doubts about the character's meaning, even after viewing its context, left-click the character: it will be highlighted with a red question mark. You can confirm or correct it later during field verification.

Character status can be also switched using the Toggle button on the toolbar.

When all incorrectly recognized characters are corrected or postponed, you can confirm all other characters at once, click the Confirm All button on the toolbar. You can also confirm correctly recognized characters one by one by selecting Confirm from the shortcut menu.


Field verification

Field verification is a verification mode for correcting errors in fields. In this mode the entire field is displayed, enabling the operator to see when entire words were recognized incorrectly.

To decide how to correct a field value, the user needs only view this field and determine which value it may have. Both input errors and field format errors can be corrected.

To correct incorrectly recognized characters, you can use standard modes of text editors: Character paste and replace modes – you can switch between the two modes by pressing the Insert button on the keyboard.

You can change correction mode, for example, turn on selection of a whole field to retype it all. You can also change the window appearance to see more information, e.g. field image, images of analogous fields of another documents etc.

The user reviews the result of recognition of each field in a sequence, correcting them if required and confirming them by clicking the Confirm Field button.

You need to correct values in the fields. If it is impossible to correct them, you can skip the field or defer verification by clicking the Postpone button in order to correct it in the Verification stage.


Verification in the document window

The document window also lets you check the accuracy of recognition and correct incorrectly recognized characters. The document window opens when you double-click the page name. The document window comprises the data region, the page image, and the errors region (if such errors are present). You can select the error types to be displayed: assembly errors, format errors, rule errors, or any combination thereof. To display errors of a certain type, click the corresponding button in the top right corner of the errors pane.

In the document window, the operator then sees not just character groups or separate fields but the entire document. You can configure the window layout by clicking the Layout button. To view page image on a secondary monitor, select Image Window > Undocked. In this mode, you can scale page image, select a block and delete unnecessary separators.

Collapsed Show document window

From the document window local menu, you can confirm a field, select to show format errors, copy values of cells to other cells, go to the previous or the next item to verify, select a data text size, as well as the mode of navigation through the fields. Select Go to Uncertain Field on Confirmation to navigate through uncertainly recognized fields. For navigation through fields with undetected regions, select the Go to Next Unmatched Field on Matching (see the description below).

In the data region, uncertainly recognized and questionable characters are marked with color, and fields with incorrect data types or unfulfilled rules are highlighted.

To confirm a field with uncertainly recognized characters, place the cursor on the field and press Enter.

Fields for viewing and editing recognized data can be arranged not only sequentially, but in any other way that is convenient for the user. You can change their arrangement in the Document Definition editor, see Configuring data presentation in the document window.

You can navigate to the next or the previous error in the document window by clicking the buttons [image] and [image] on the main window toolbar. The program navigates all errors, including assembly errors, rule errors, mismatches of key fields, etc.

Fast input of values for unmatched fields

This functionality is available for projects with flexible descriptions and enables fast input of field value if the field was not matched.

Fast input mode allows you to transfer data to an active field from the region selected with a mouse. For the mode to be available during verification, the Store the whole document text option must be selected in the Document Definition properties. With this option, recognized data from cache will be used for substitution.

If the field value is not found or is found incorrectly, click the field region on the page to quickly add the value. Or you can select a part of the text holding the mouse button. If there is only one unmatched field in the document, the value will be added automatically. Otherwise, you will be prompted to choose the value associated with the field.

If neither of suggested values is correct, then, if verification is performed in the Project Setup Station or Verification Station, in the region local menu, choose Recognize(Ctrl+R). The field will be recognized according to the settings specified for the field in the Document Definition. If verification is performed in a Web-station, this feature is unavailable.

The navigation mode through unmatched fields

To navigate through fields whose regions were not detected, select the Go to Next Unmatched Field on Matching option in the local menu of the document window. When this mode is enabled, the first unmatched field gets the focus. When entering the field value or when clicking [image] and [image] buttons, focus shifts to the next unmatched field.

Note: For the field to be highlighted if its region is not found and available in the Go to Next Unmatched Field on Matching mode, the Should be matched option must be enabled in the properties of the field.

Copying the value of a cell to other cells in a column

The value of a cell in a table, and values of identical cells and of cells in identical groups can be copied. To do so, right-click the cell and click one of the following items on its shortcut menu:

  • Копировать значение для диапазона строк (or press Ctrl+Q)
    Copies the value of a field to rows of the same type within a group. When this option is selected, the cell will be highlighted in blue and the mouse pointer will change. To copy the value, select a cell of the same type within the group or table. The value will be copied to all cells between the cell with the value and the selected cell, including the selected cell.
    If the cell with the value is part of a group that occurs several times, the value will be copied to all cells in other iterations of the group that occupy the same positions as cells in the first group to which the value was copied.
    Note: values of check marks can only be copied to other iterations of the same checkmark or the same checkmark within recurring groups.
  • Копировать значение для всех строк (or press Ctrl+Shift+Q)
    Copies the value of a field to all rows in a table or to recurring fields within a group and to the same fields in other iterations of the group.

Displaying information about errors associated with hidden fields

Fields in the data form can be hidden because of the following:

  • The Show on verification option is deselected in the field properties.
  • The fields set is restricted in the stage properties.

Errors associated with hidden fields can be displayed as follows:

  1. If a format error is associated with the hidden field, information about the error is not displayed in the errors region.
  2. If a multi-field rule error is associated with the hidden field and only this field is involved in the rule, information about the error is not displayed in the errors region.
  3. If a multi-field rule error is associated with the hidden field, and other fields in the form are also involved in the rule, information about the error is displayed in the errors region, however for the hidden field, only its name (without a link to the field) is displayed.
    Collapsed Show

If a document contains errors which are not displayed in the errors region because of hidden fields, the display of the document in the list depends on the stage in which the document is viewed.

  • If the document is viewed in the Verification stage where the data set is restricted, the document in the list is displayed without an error icon. In the errors region, information about errors is not displayed.
    Collapsed Show

  • If the document is viewed in the stage where the data set is not restricted, e.g. in the Exceptions stage, the document in the list is displayed with an error icon. In the errors region, information about errors is not displayed.
    Collapsed Show


Rule verification

You are here: Operating a configured project > Verification > Rule validation

Rule validation

Violated rules are flagged with a yellow flag [image] (warnings) or a red flag [image] (errors).

Rule errors are displayed in a separate window of the document editor, and documents with violated rules are marked with red flags there.

In the case of viaolted rules, the operator must check the quality of data recognition. If it is a recognition error, the operator must correct it. If it is a form-filling error that cannot be corrected, the operator should not export the document. Documents with errors can be verified later by comparing them with hardcopy documents or other available sources.

To re-check data for rule errors, click the arrow to the right of the Run Verification… button and select the Re-check Rules menu item. If rules are not violated after the field values are corrected, the flags will be removed.


Exporting recognized data

After verifying recognized data, the operator exports the batch by clicking the Export button. Export is performed according to Document Definition settings.

You can also export to file or database without using the export settings configured in the Document Definition.

Note: When exporting to file or database, you can use default settings or change them as you wish. Default export settings are configured in the project properties dialog box (main menu item Project>Project Properties…) on the Export tab. See Default export settings.

Exporting data to file

  1. To export data to file, click the arrow to the right of the export button and select the Export Data to File… menu item
  2. Select the storage location and filename prefix (the full name will begin with this prefix followed by the Document Definition name, batch name, and document number, if you save each document as a separate file (see item 3)
  3. Enable options:
    • Export documents as separate files – to store data of each document in a single file;
    • Rewrite file – to overwrite the export file;
    • Save document images – to save document images.
  4. To change other export settings, click the Settings… button. For details concerning export configuration, see Configuring data export.
  5. To save modified export settings, in the File Export Settings dialog box, click the Save to Document Definition button and select a Document Definition for which you want to save current settings.

Exporting images to file

  1. To export data to file, click the arrow to the right of the export button and select the Export Images to Files menu item.
  2. Select the storage location and file format (TIFF, JPEG, PDF, PDF/A, BMP, JPEG2000, PCX packbits or PNG).
  3. Click the Settings… button to configure image export settings.

Export to database

  1. To export data to a database, click the arrow to the right of the export button and select the Export to Database… menu item.
  2. Establish a connection with a database. For details see Export to database.
  3. Go to the Images tab and configure image storage settings.

Note:

  1. Documents whose data has been exported successfully may be deleted from the batch automatically. This will happen if the option Delete documents after export is enabled on the Export tab of batch type properties or project properties.
  2. If you attempt to export documents with rule errors, the program will display an error message. Rule warnings will not prevent export.


Background mode

Whenever no operator control is required, documents can be imported, recognized, and exported in background mode.

To transfer a task into background mode, click the Background Mode button in the Adding images…dialog box (or in Recognizing… or Exporting…... dialog box).

The following tasks can run in background mode:

  • Loading images using the corresponding import profile.
  • Document recognition, if the Recognize added images automatically option is selected (Tools > Options…, Document Processing tab).
  • Export of documents.

When switching into background mode, the [image] icon appears on the task bar. Clicking this icon opens the Background Tasksdialog box, which displays the list of tasks.

  • The tasks are executed either in the order in which they come in or based on the priorities set by the user (Set Priority… button).
  • Task execution is logged in a log file which can be customized by the user (Tools > Options…, Task Progress tab). Click the View Log button to view the log.
  • You can interrupt a task by clicking the End Task button.

The program may also inform you about the progress of background tasks in balloon pop-up messages displayed in the bottom right corner. The messages appear upon task start, error, and completion. See Additional options for details.


ABBYY FlexiCapture Interface

This section describes the main elements of ABBYY FlexiCapture interface: the main windows, menus and toolbars.

Project Setup Station
Project Setup Station Menus
Project Setup Station Toolbars
Verification Station
Verification Station Menu
Verification Station Toolbars
Data Verification Station
Data Verification Station Menu
Data Verification Station Toolbars
Main program window
Main window menu
Main window toolbars
Document Definition Editor
Document Definition Editor Menus
Document Definition Editor Toolbars
Group Verification Window
Group Verification Window Menus
Group Verification Window Toolbars
Field Verification Window
Field Verification Window Menus
Field Verification Window Toolbars


ABBYY FlexiCapture Main Window

The main window of the program displays the list of document batches in the project you are working with.

Collapsed Show the main window displaying the list of batches

To view the contents of the batch, double-click it. You will see the list of documents in the batch.

To return to the list of batches, click View>Working Batches (or Test Batches, if you are using test batches).

Collapsed Show the main window displaying the opened batch

The main menu, with toolbars below it, is located on the top of the windows.

The rest of the Main Window is occupied by the Batch working window with the list of documents in the batch.

The Status Bar is located on the bottom of the window. The Status Bar shows the status of the program and the operations that are currently carried out. When you position the cursor over menu items and or buttons, the Status Bar will display their short descriptions.

To verify the recognized data, open the Document window. To do it, double-click the name of the document or one of its pages. The Document window consists of three parts:

  • the image of the document page;
  • the recognized data;
  • the rule errors (displayed only if there are rule errors).

For more information, see Verification in the Document Window

Collapsed Show the Document window

ABBYY FlexiCapture Main Window Menu
ABBYY FlexiCapture Main Window Toolbars


The ABBYY FlexiCapture main window menu

You are here: Interface of ABBYY FlexiCapture > ABBYY FlexiCapture main window > The ABBYY FlexiCapture main window menu

ABBYY FlexiCapture Main Window Menu

Collapsed File
Menu | Description
New Project… | Creates a new project
Open Project… | Opens an existing project
Close Project | Closes the current project
Save | Saves the changes
New Batch… | Creates a new batch
Load Images… | Loads images from files
Scan Images… | Adds images obtained by scanning
Import Images… | Imports images using one of the configured Image Import Profiles
Export | Exports data using the Document Definition export settings
Export To |
Data to Files… | Exports data to a file
Images to Files… | Exports images to files
Database… | Exports data to a database
Recently Opened Projects | Opens one of the previously opened projects
Exit | Closes ABBYY FlexiCapture
Collapsed Edit
Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Cut | Cuts the selected objects
Copy | Copies the selected objects to Clipboard
Paste | Pastes the copied object from Clipboard
Delete | Deletes the selected objects
Merge | Merges the selected pages into one document
Split | Splits the selected document into pages
Select All | Selects all objects
Find… | Finds specified text
Find Next | Finds the next text that was previously specified
Go To |
Next Document | Goes to the next document in the batch
Previous Document | Goes to the previous document in the batch
Image |
Despeckle | Despeckles the image
Invert | Inverts the image
Flip Horisontally | Flips the image horizontally (relative to the vertical axis)
Flip Vertically | Flips the image vertically (relative to the horizontal axis)
Rotate 90° Clockwise | Rotates the image 90° clockwise
Rotate 90° Counter-Clockwise | Rotates the image 90° counterclockwise
Rotate 180° | Rotates the image 180°
Change Resolution… | Changes the resolution of the image
Save As… | Saves the image with the specified name
Collapsed View
Menu | Description
Test Batches | Opens the list of test batches
Working Batches | Opens the list of batches
Details | Shows the documents and their pages as a detailed list
Thumbnails | Shows document images as thumbnails
Choose Columns… | Allows configuring the list of columns displayed in the detailed view mode
Document Editor |
Image Mode | Shows the page image in the document window
Data Mode | Shows the recognized data in the document window
Image Window | Allows positioning the image in the document window
Errors Window | Allows positioning the errors window in the document window
Image Scale | Allows selecting a suitable field image scale
Data Text Size | Allows selecting the font size used when displaying recognized data
Show Toolbar | Shows/hides the toolbar in the document window. This toolbar allows correcting some of the matching errors, for example, you can add the field that wasn't found, and add or delete a table separator. This is mainly used when working with FlexiLayouts.
Show Format Error of Active Field | Allows specifying the format error display mode
Show Image in Black and White | Shows color and gray images in black and white
Thumbnails Size | Allows selecting the size of page thumbnails
Toolbars | Shows/hides the toolbars
Status Bar | Shows/hides the status bar
Full Screen | Switches to full screen mode
Refresh | Refreshes the information displayed
Properties… | Opens the Page of Document Properties dialog box
Collapsed Recognition
Menu | Description
Analyze | Analyzes the pages of the documents and finds a suitable Document Definition
Match Document Definition… | Matches the selected Document Definition to the selected document or page
Recognize | Starts the recognition
Collapsed Verification
Menu | Description
Run Verification… | Starts verification
Next Item to Verify | Goes to the next verification object
Previous Item to Verify | Goes to the previous verification object
Next Document with Assembly Error(s) | Goes to the next assembly error
Previous Document with Assembly Error(s) | Goes to the previous assembly error
Next Uncertain Character | Goes to the next uncertainly recognized character
Previous Uncertain Character | Goes to the previous uncertainly recognized character
Next Rule Error | Goes to the next rule error
Previous Rule Error | Goes to the previous rule error
Collapsed Project
Menu | Description
Document Definitions… | Opens the dialog box with the list of Document Definitions, which allows creating, editing, importing, and deleting them (this menu is available for the Administrator only)
Batch Types… | Opens the dialog box with the list of batch types, which allows creating, editing, and deleting them (this menu is available for the Administrator only)
Image Import Profiles… | Opens the dialog box with the list of Image import Profiles, which allows creating, copying, editing, and deleting them (in the Operator mode, only importing images is available)
Switch to Admin Mode… | Switches to administrator mode (this menu is available for Operators only)
Protect with Password… | Allows protecting the current project with a password (this menu is available for the Administrator only)
Unprotect… | Allows disabling password protection of the project (this menu is available for the Administrator only)
Export Project… | Exports the project to the specified folder. Images are taken from the current project (this menu is available for the Administrator only).
Update Project… | Configures project updating. Messages and errors that appear during import can be saved to a file (right-click and then click - Export to File). This menu is available for the Administrator only.
Project Properties… | Opens the Project Properties dialog box (this menu is available for the Administrator only).
Collapsed Tools
Menu | Description
Update to Latest Version | Applies the project changes to the currently processed documents
Re-analyze | Re-analyzes the documents
Re-recognize | Re-recognizes the documents
Refresh Assembly | Refreshes the pages' assembly into documents
Re-check Rules | Re-checks rules
Check Batch Integrity | Checks batch integrity
Change Batch Type… | Changes the batch type
Options… | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other
Collapsed Help
Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file
Technical Support | Opens the Technical Support section in the program help
How to Buy ABBYY Products | Opens the Buying ABBYY FlexiCapture section in the program help
ABBYY Website | Opens the ABBYY website
Send Feedback… | Allows sending feedback to ABBYY: the user's opinion, wishes or comments
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box containing brief description of the program.


The ABBYY FlexiCapture Main Window Toolbars

Collapsed The standard toolbar

Tool | Button | Description
Open Project |  | Opens a project
Save Changes |  | Saves the changes
Cut |  | When working with data in the document window, cuts the selected object
Copy |  | Copies the selected object
Paste |  | Pastes the copied object from Clipboard
Delete |  | Deletes the selected object
Undo |  | Cancels the last action
Redo |  | Restores the canceled action
Collapsed Documents view

Details | Shows the documents and their pages as a detailed list
Thumbnails | Shows thumbnails of document images
Test Batches | Shows the list of test batches
Work Batches | Shows the list of work batches
Refresh | Refreshes information in the main window
Collapsed Navigation

Previous Item to Verify | Goes to the previous verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Next Item to Verify | Goes to the next verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Previous Document | Goes to the previous document.
Next Document | Goes to the next document.
Collapsed Processing

This toolbar is used to go through the whole document processing. The buttons on this toolbar are multifunctional and have several modes each.

The text on the first button used to add images changes according to the selected mode. The action corresponding to the text is carried out when you click the button.

To select the mode, click the triangle in the right part of the required button.

Button | Mode | Description
 | Load Images… | Loads images from files and adds them to the current project
 | Scan Images… | Adds images obtained by scanning to the batch
 | Import Images… | Imports images using one of the configured Image Import Profiles
 | Existing Import Profiles... | To start importing images, simply select one of the configured Image Import Profiles from the list.
 | Recognize | Starts the recognition process
 | Analyze | Analyzes the pages of the documents and finds a suitable Document Definition
 | Match Document Definition… | Matches the selected Document Definition to the selected document or page
 | Run Verification… | Starts verification
 | Re-check Rules | Re-checks rules
 | Export | Exports data using the Document Definitions export settings
 | Export Data to File… | Exports data to a file
 | Export Images to Files | Exports images to a file
 | Export to Database… | Exports data to a database


Document Definition editor window

Document Definitions are created and edited in the Document Definition editor window.

To open the Document Definition editor, from the main window of the program:

  1. Select the menu item Project>Document Definitions…;
  2. In the Document Definitions dialog box that opens, highlight the Document Definition name and click Edit….

The Document Definition editor window also opens when the Document Definition Wizard finishes.

Collapsed Show Document Definition editor window

The Document Definition editor window consists of three parts:

  1. The page image with the marking of fields and static elements shown at the top-left.

    The program has two modes for handling fields and static elements:

    • the field marking mode – enabled by clicking the [image] button;
    • static elements mode – enabled by clicking the [image] button.
  2. The editor for configuring the presentation of recognized data is at the bottom left.
  3. The document structure with a list of all Document Definition fields (Fields tab) is on the right-hand side. You can also switch to the page outline mode (Pages tab).
Document Definition editor menu
Toolbars of the Document Definition editor


The Document Definition editor menu

Collapsed Document Definition
Menu item | Description
Add Pages… | Adds a new page image to the Document Definition
Add Document Section… | Adds a new section to the batch
Import Document Section… | Imports selected document section
Script Modules |
Rule Script… | Opens the Rule Global Script Module of the Script Editor. For more about script modules, see Using scripts in FlexiCapture.
Export Script… | Opens the Export Global Script Module of the Script Editor. For more about script modules, see Using scripts in FlexiCapture.
Export Settings… | Opens the Export Settings dialog box for configuring data export options
Document Definition Properties… | Opens a dialog box for viewing and editing Document Definition properties
Save | Saves changes
Close | Closes the Document Definition editor
Collapsed Edit
Menu item | Description
Undo | Undoes the previous action
Redo | Redoes the undone action
Cut | Cuts highlighted objects
Copy | Copies highlighted objects to clipboard
Paste | Pastes clipboard contents
Delete | Deletes highlighted objects
Delete Region | Removes regions from the images of highlighted objects
Select All | Selects all
Select Regions by Type… | Detects objects of a certain type
Create Field |
Text | Adds a text entry field to the document structure (without a region on the image)
Checkmark | Adds a checkmark field to the document structure (without a region on the image)
Checkmark Group | Adds a checkmark group field to the document structure (without a region on the image)
Barcode | Adds a barcode field to the document structure (without a region on the image)
Picture | Adds a picture field to the document structure (without a region on the image)
Table | Adds a table field to the document structure (without a region on the image)
Group | Adds a group of fields to the document structure (without a region on the image)
Group | Groups highlighted objects
Ungroup | Ungroups highlighted objects
Copy Text from Image… | Gets text from any region of the image and stores it to clipboard. After selecting this command, highlight the region where the desired text is located.
Image... |
Despeckle | Removes noise from image
Invert | Inverts image
Rotate 90° Clockwise | Rotates image by 90° clockwise
Rotate 90° Counter-Clockwise | Rotates image by 90° counterclockwise
Rotate 180° | Rotates image by 180°
Change Resolution… | Opens theSet Resolutiondialog box where you can specify a new image resolution value
Save As… | Saves the image of the template page to the specified file
Replace… | Replaces the image of the template page
Collapsed View
Menu item | Description
Image Layout |
Static Elements | Switches to Static Elements Mode
Field Regions | Switches to Field Marking Mode
Document Structure |
Show Document Structure | Shows/hides the document structure window
Fields | Switches the Document Structure window to the Fields mode
Pages | Switches the Document Structure window to the Pages mode
Data Form | Shows/hides the data editor window
Layout Toolbar |
Horizontal | Docks the toolbar of the image layout window horizontally
Vertical | Docks the toolbar of the image layout window vertically
Status Bar | Shows/hides the status bar
Show Image in Black and White | Shows color and grayscale images of pages in the black-and-white mode
Image Scale | Selects an appropriate image scale
Properties… | Opens a dialog box for viewing and editing highlighted object properties
Collapsed Testing
Menu item | Description
Run Test | Starts testing the Document Definition on the document image.
Finish Test | Stops testing the Document Definition.
Image Mode | Displays the page image in the document window.
Data Mode | Displays the recognized data in the document window.
Layout |
Image Window | Changes the position of the image in the document window.
Top | Places the image window at the top of the screen.
Bottom | Places the image window at the bottom of the screen.
Left | Places the image window on the left.
Right | Places the image window on the right.
Errors Window | Changes the position of the errors window in the document window.
Top | Places the errors window at the top of the screen.
Bottom | Places the errors window at the bottom of the screen.
Left | Places the errors window on the left.
Right | Places the errors window on the right.
Show Toolbar | Shows/hides the toolbar in data mode. In the image mode, the toolbar is always displayed and cannot be hidden.
Verification |
Next Item to Verify | Goes to the next item to be verified.
Previous Item to Verify | Goes to the previous item to be verified.
Next Uncertain Character | Goes to the next uncertain character.
Previous Uncertain Character | Goes to the previous uncertain character.
Next Rule Error | Goes to the next rule error.
Previous Rule Error | Goes to the previous rule error.
Collapsed Batch
Menu item | Description
Switch to Test Batch… | Allows testing the Document Definition using test batches
Close Test Batch… | Closes the test batch
View |
Details | Switches to Details view mode
Thumbnails | Switches to Thumbnails view mode
Customize Documents Table… | Opens the Choose Columns dialog box where you can select the columns you want to display and customize their view
Load Images… | Opens the Load Images dialog box where you can select images to be loaded and specify image pre-processing options
Scan Images… | Opens the dialog box where you can scan images to be added to the batch
Recognize | Recognizes the batch
Run Verification… | Runs verification on the batch
Export | Exports the batch
Export to |
Data to Files… | Opens the dialog box where you can specify data saving options
Images to Files… | Opens the dialog box where you can specify image saving options
Database… | Opens the dialog box where you can configure database connection settings
Collapsed Tools
Menu item | Description
Autodetect Objects by Type… | Automatically detects and highlights fields and static elements of a certain type (depending on the mode)
Check Document Definition | Checks the Document Definition
Match Section | Checks the matching of a Document Definition section
Update FlexiLayouts… | Allows updating used FlexiLayouts
Collapsed Help
Menu item | Description
Help Topics | Opens the Help Topics of ABBYY FlexiCapture
Send Feedback… | Allows users to send comments and suggestions to ABBYY.


The Document Definition editor toolbars

Collapsed Standard toolbar

Name | Button | Description
Save Changes |  | Saves changes
Cut |  | Cuts a selected object when you work with data in the document window
Copy |  | Copies a selected object
Paste |  | Pastes a previously copied object from the clipboard
Delete |  | Deletes a highlighted object
Undo |  | Undoes the previous action
Redo |  | Redoes a previously undone action
Check Document Definition |  | Checks a Document Definition. Check results display in the bottom part of the Document Definition editor window
Collapsed Toolbar in the image layout window

The toolbar in the image layout window is used to create static elements and Document Definition fields. The set of buttons on the toolbar changes according to the selected mode.

In static elements mode:

In field marking mode:

This toolbar can be docked horizontally or vertically. The orientation of the toolbar can be changed under View>Layout Toolbar.

Name | Button | Description
General
Static Elements Mode |  | Switches to Static Elements Mode
Field Regions Mode |  | Switches to Field Regions Mode
Zoom |  | Increases the image scale
Auto Detect Objects |  | Automatically detects objects on the image. Select this tool and then left-click in the object region.
Select Regions |  | Highlights regions of objects that have been marked on the image. To highlight a region, select this tool and left-click in the object region.
In the static elements mode
Create Anchor |  | Creates an anchor. Select this tool and then use the mouse to frame the anchor with a rectangle.
Create Separator |  | Creates a separator. Select this tool and then use the mouse to frame the separator with a rectangle.
Create Anchor Text |  | Creates an anchor text. Select this tool and then use the mouse to frame the text with a rectangle.
Create Anchor Barcode |  | Creates an anchor barcode. Select this tool and then use the mouse to frame the barcode with a rectangle.
In the field marking mode
Create Text |  | Creates a text entry field. Select this tool and then use the mouse to frame the text entry region with a rectangle.
Create Checkmark |  | Creates a checkmark field. Select this tool and then use the mouse to frame the checkmark region with a rectangle.
Create Checkmark Group |  | Creates a checkmark group. Select this tool and then use the mouse to frame the checkmark group with a rectangle.
Create Barcode |  | Creates a barcode field. Select this tool and then use the mouse to frame the barcode with a rectangle.
Create Picture |  | Creates a picture field. Select this tool and then use the mouse to frame the picture with a rectangle.
Create Table |  | Creates a table field. Select this tool and then use the mouse to frame the table with a rectangle. Additional table marking buttons will appear on the toolbar.
Create Group |  | Creates a field group. Select this tool and then use the mouse to frame the field group with a rectangle.
Create Region for Field without Region |  | Creates a region for a field that is included in the document structure but does not have a region on the image. Select this tool and then use the mouse to frame the field region with a rectangle. Select a name from the dropdown list. (The list shows names of fields that do not have a region on the image).
Create Unrecognizable Region |  | Highlights a field that will be excluded from the recognition process.
Buttons for table marking Shown if at least one table has been created in the given Document Definition section
Delete Separator |  | Deletes a separator


The Group Verifier Window

The Group Verification window appears at the start of data verification.

This window is used to visually check the characters recognized with the same value. Identically recognized characters are displayed to allow identification and correction of the characters that stand out. See Group Verification.

The Group Verifier Window Menu
The Group Verifier Window Toolbars


The Group Verifier Window Menu

Collapsed Verification
Menu | Description
Confirm All | Confirms correct verification of all characters and goes to the next stage
Postpone All | Postpones verification of all characters and marks them with a question mark
Toggle | Postpones verification of the selected character and marks it with a question mark
Next Page | Goes to the next page if all the characters don't fit in one screen
Previous Page | Goes to the previous page if all the characters don't fit in one screen
Close | Closes the verification window
Collapsed Edit
Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Select All | Selects all characters
Collapsed View
Menu | Description
Field Image |
Show Field Image | Shows/hides the image of the field with the current character
On Top | Positions the field image on the top of the verification window
On Bottom | Positions the field image on the bottom of the verification window
Image Scale | Allows selecting a suitable field image scale
Show Field Image | Shows the image of the character
Toolbar | Shows/hides the toolbars
Info Bar | Shows/hides the info bar
Status Bar | Shows/ hides the status bar
Character Size | Allows selecting the suitable character size
Full Screen | Switches to full screen mode
Collapsed Tools
Menu | Description
Options… | Allows setting up the area adjacent to the character
Collapsed Help
Menu | Description
Help Topics | Opens the help file of ABBYY FlexiCapture
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box with brief information about the program.


The Group Verifier Window Toolbars

Collapsed The standard toolbar

Tool | Button | Description
Previous Page |  | Goes to the previous page, if all characters don't fit in one screen
Next Page |  | Goes to the next page, if all characters don't fit in one screen
Confirm All |  | Confirms correct recognition of all characters and goes to the next stage
Change Character State |  | Changes character state to rejected and back
Undo |  | Cancels the last action
Redo |  | Restores the canceled action


The Field Verifier Window

The field verification window appears after group verification finishes.

This window is used to visually verify uncertainly recognized characters in the context of the whole field. See Field Verification.

The Field Verifier Window Menu
The Field Verifier Window Toolbars


Field Verification Window Menu

Collapsed Verification
Menu | Description
Confirm Field | Confirms the field
Postpone | Postpones field verification
Next Uncertain Character | Goes to the next uncertainly recognized character
Previous Uncertain Character | Goes to the previous uncertainly recognized character
Next Field | Goes to the next field
Previous Field | Goes to the previous field
Close | Closes the verification window
Collapsed Edit
Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Cut | Cuts the selected objects
Copy | Copies the selected objects to Clipboard
Paste | Pastes the copied object from Clipboard
Delete | Deletes the selected objects
Delete All | Deletes all objects
Select All | Selects all objects
Insert Line Break | Inserts a line break
Merge Characters | Merges the selected characters if a character was split into multiple characters during recognition
Collapsed View
Menu | Description
Field Data |
Recognized Text | Shows/hides the recognized text
Character Images Cutting | Switches to field view with character image cutting
Show Special Characters | Shows/hides special characters
Field Image |
Show Field Image | Shows/hides the image of the field with the current character
On Top | Positions the field image on the top of the verification window
On Bottom | Positions the field image on the bottom of the verification window
Image Scale | Allows selecting a suitable field image scale
Analogous Fields | Shows/hides similar fields in other documents
Show Character Image | Shows the image of the character
Toolbar | Shows/hides the main window toolbars
Info Bar | Shows/hides the info bar
Status Bar | Shows/hides the status bar
Character Size | Allows selecting the suitable character size
Full Screen | Switches to full screen mode
Collapsed Tools
Menu | Description
Options… | Allows setting up the area adjacent to the character
Collapsed Help
Menu | Description
Help Topics | Opens the help file of ABBYY FlexiCapture
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box with brief information about the program.


Script Editor window

The Script Editor allows you to write and edit scripts.

You can select a desired scripting language for your script: VBScript, JScript.Compact, JScript, C#.Net, VisualBasic.Net or JScript.Net.

The selected language will remain selected the next time you start the editor.

Checking scripts

To begin debugging a script, you can:

  • Press F9
  • Click the Check button on the toolbar
  • Open the Tools menu and click Check Script.

If no errors were found, the Script is correct. message will be displayed.

If the script contained errors, a list of them will be displayed in the error pane. Double-click an error message in the error pane to place the cursor to the place with the error in the script editor.

Note: You can save scripts with errors and fix them later.

By default, the pane containing error messages is located at the bottom of the editor. You can change its size of this pane using the mouse. Also you can change its location (see below for details).

Customizing the editor

You can use the View menu to customize the appearance of the script editor. The View menu contains the following items:

  • Errors Window
    Changes the position of the error pane in the editor. You can choose to place it at the top, on the bottom (selected by default), on the right or on the left.
  • Toolbar
    Shows or hides the toolbar.
  • Status Bar
    Shows or hides the status bar.

Adding a cutsom function

To add a custom function, select one of the following global modules in the drop-down list on the toolbar: Script in <object_name\document_defenition_name>, Rule Global Script Module, Export Global Script Module

You can find more information about scripting in ABBYY FlexiCapture in the "Using scripts" article.


ABBYY FlexiCapture for Invoices

You are here: ABBYY FlexiCapture for Invoices

What Is ABBYY FlexiCapture for Invoices?

  • ABBYY FlexiCapture for Invoices is an easy-to-use, intelligent software solution for processing invoices. It replaces labor-intensive data input tasks with transparent, manageable, efficient, and automated data capture based on smart document analysis and character recognition technologies.
  • ABBYY FlexiCapture for Invoices is based on the powerful ABBYY FlexiCapture platform and includes additional functionality, pre-defined settings, validation rules, advanced database look-up and UI enhancements specifically tailored for processing invoices.
  • ABBYY FlexiCapture for Invoices is a ready-to-go solution that is capable of identifying data fields on the vast majority of invoices, enabling you to start processing right away. Intelligent on-the-fly Auto-Training technology refines the extraction of data from invoices with non-standard layouts.
  • ABBYY FlexiCapture for Invoicesfeatures country-specific validation rules, adaptable logical and arithmetic checks, and can match captured data against the company’s databases to ensure legal compliance and consistency of data, facilitate invoice approval, and detect misbilling. The program's flexible settings allow you to adjust the processing workflow in accordance with your company’s specific business requirements and implement straight-through processing of invoices which have successfully passed all automatic validation rules, enabling the verifying personnel to focus on those documents which really require their attention.

The invoice capture process

  1. Acquiring images

    2. There are several ways to feed invoice images to the program:

    • Scanning hardcopy invoices
    • Downloading invoice images from an e-mail inbox
    • Downloading invoice images from a folder on a computer or an FTP server
  2. Recognition and rule checks

    After input, invoices are automatically recognized by the program. Data from the invoices is then checked using rules and a status is assigned to the invoice based on the results of these checks.

    Status | Description
    Valid | Rule checks have been successfully completed and the invoice is ready for export
    Exception | Invoice requires verification
    Rejected | The invoice does not comply with legislation (necessary data could not be found, is missing or has been recognize incorrectly). This data must be specified manually or the invoice must be processed in other ways (e.g. returned to the vendor)

    Invoices that do not require any editing receive the Valid status and are ready for export.

  3. Verification and correction of errors

    4. Invoices with a status other than Valid need to be reviewed by an operator. Operators check these documents and correct errors and warnings that were issued by checking rules. When all defects have been corrected, an invoice receives the Valid status. Operators can also confirm statuses that were assigned automatically. The status of an invoice can be changed manually by an operator, who has to specify the reason for the status change.

    If the program systematically fails to locate fields on invoices, it can be trained by operators during the document capture process.

  4. Data export

    5. Data export is the final processing stage, during which data is exported as specified in the program's settings. Documents with different statuses can be exported in different ways, e.g. documents with the Valid and Exception statuses may be exported to a different folder than documents with the Rejected status. Several export destinations may be set up, and invoices can be exported to each of these destinations.

    If the status of an invoice was changed manually, the reason for the status change that was provided by the operator is exported as well.

    The program supports export to data and image files, ODBC-compatible databases, and Microsoft SharePoint. Its easy-to-use API enables integration with any system.

You can read more about capturing invoices with ABBYY FlexiCapture for Invoices in See "How to capture invoices"."

ABBYY FlexiCapture for Invoices setup

ABBYY FlexiCapture for Invoices includes a preconfigured project that is ready for use.

Before you can begin capturing invoices, you have to provide data about vendors and business units to the program. The program uses this data to find and recognize fields that contain vendor/business unit data on the invoice image. If vendor and business unit data is not provided, an operator will have to specify the location of these fields manually. In this case recognized data will be saved and used during the processing of invoices from the vendor/business unit.

Even though ABBYY FlexiCapture for Invoices is preconfigured and ready for use, you can specify a number of additional settings:

  • You can add more fields to the list of fields that need to be extracted from the invoice. These fields can include predefined fields that are disabled by default as well as any other fields.
  • The set of rules can be adapted to various organizations and legislations.
  • Invoices from a particular vendor may have non-standard layouts, leading to unsatisfactory quality of data capture. ABBYY FlexiCapture for Invoicescan be trained to improve the quality of data captured from such invoices.
  • Captured invoices can be matched with purchase orders.

You can read more about setting up ABBYY FlexiCapture for Invoices in See "How to set up an invoice capture project".See "How to set up an invoice capture project"

Note: To use ABBYY FlexiCapture you need the appropriate ABBYY FlexiCapture license. For more on licenses, See "License parameters".


Features of ABBYY FlexiCapture for Invoices

Recognition and Data Extraction

FlexiLayout specifically adjusted for invoices processing

ABBYY FlexiCapture for Invoices includes a ready-to-use FlexiLayout specifically adjusted for immediate processing of the invoices. It has a predefined set of data fields for recognition which can be extended with additional fields. This FlexiLayout allows recognizing all necessary data fields from the vast majority of documents without any additional adjustments or recourse to built-in Training capabilities.
Country-specific settings

ABBYY FlexiCapture for Invoices features a predefined set of processing rules and other country-specific settings which are applied once the program identifies the country of the invoiced business unit. Automatic validation rules ensure that the data comply with country-specific regulations or practices.

These ready-to-use settings are available for the list of specially supported countries which includes Austria, Belgium, France, Germany, the Netherlands, Spain, Switzerland and the United Kingdom. A new profile can be added by the user for any other country during the set up.
Validation rules

Checks by means of predefined validation rules ensure consistency of the data and help to detect incorrect or incomplete invoices and the problem fields. Errors detected during automatic rules validation affect the document status. This allows distinguishing purely correct documents from the exceptional ones which require special management.

At the verification stage, errors detected by validation rules are supplied with brief comments explaining the nature of an error.
Document status detection

Each invoice gets one of the three possible statuses, which is automatically assigned to a document based on the results of the validation rules check. Document status detection facilitates differentiation of the invoices and enables touchless processing for completely correct documents.

Invoices without errors are assigned the status Valid, invoices with minor errors and requiring special attention are assigned the status Exception, and those which do not comply with the legal requirements or from which data are missing are assigned the status Rejected.

A document’s status automatically changes to Valid when the errors have been corrected. The operator can confirm the assigned status or force status change, providing reasons for their decision in a comments field. For invoices with the status Rejected a special export destination can be specified.
Advanced database look-up

During recognition the software matches the invoice data against the user’s actual Vendor and Business Unit databases. Field values are automatically populated from these databases if the right records have been confidently detected. If no or multiple records are found in the database, the operator can choose the correct record manually.
Purchase Order matching

In case a connection to a database of orders or contracts was set up, invoice data can be matched against the actual purchase orders at the verification stage. In this case the operator will be able to open a matching order from the database, compare its data with those in the invoice, and confirm the data captured from the respective field.

On-the-Go Training technology

Operator-driven Training

To improve detection of data fields, ABBYY FlexiCapture for Invoices features On-the-go Training which makes the software remember corrections made by the user at the verification stage and automatically amend the FlexiLayout with new FlexiLayout alternatives.
Administrator-driven Training

Data recognition can be further improved by reviewing the results of operator-driven training. An administrator can review, roll back or adjust these results, view and modify the set of documents used for training, and disable or enable alternatives created as a result of operator-driven training.

Verification UI

Specially-designed data verification form

The intuitive verification interface of ABBYY FlexiCapture for Invoices has been carefully designed specifically for working with this type of document. Data fields on the verification form are grouped together and arranged in the way that is most practical for invoices. Key fields are supplemented with a snapshot of the original image. The required fields are highlighted; warning and error messages are displayed together with comments to enable fast and accurate corrections.

The data verification form and the order in which fields are to be verified can be easily customized to suit the user’s needs or established practice.

Setup

Country pane

Such settings as language, currency, date formats, number formats, validation rules, tax rates, etc. are country dependent. ABBYY FlexiCapture for Invoices provides default settings for the specially supported countries. These settings can be modified by the user if necessary.

The user can easily add a new profile and specify the correct settings for any other country for which no default settings are currently available in the software.


How to capture invoices

The invoice capture process includes the following steps:

  • Adding and recognizing images
  • Verification and correction of errors
  • Exporting the verified data


Adding and recognizing images

Adding images

Invoice processing begins with adding document images.

Note: Added images have to be separated into documents before processing starts. You can configure document separation in the import settings See "Image import profiles"

There are several ways to do this:

  • Scanning hardcopy documents with a scanner
  • Adding existing scans from a folder
  • Using an image importing profile that was specified by the administrator (import images from a scanner, a Hot Folder or an e-mail inbox).

To read more about each way to import images, See "Adding page images".

Recognition

Recognition begins automatically after images have been added.

A recognized invoice will be named European Invoice and the Invoice Status and Confidence Level columns will be filled in.

Collapsed What to do if documents are not recognized automatically

Select the documents, open the Recognition menu and click Recognize.

To enable automatic recognition, enable the Recognize added images automatically on the Document Processing tab (Tools>Options…).

Collapsed If documents are named <Unknown> after recognition
  1. Check the Processing Notes column to see why the document was not recognized.

    Example: Check the recognition language. This means that the language of the invoice is not supported. Contact your administrator.

  2. Open the document and make sure it is an invoice.
  3. Apply the Document Definition manually.
    4. Collapsed How to apply a Document Definition manually
    1. Right-click the document and select Match Document Definition… from the shortcut menu. A dialog box with a list of Document Definitions will open.
    2. Select European Invoice from the list and click OK.


Verification

At this stage, documents that need verification are reviewed and errors are corrected.

A document needs to be verified when

  • its status is other than Valid (check the Invoice Status column in the document list)

  • errors have been detected by validation rules (a red flag is displayed on the document's icon)

  • the number of objects to be verified is greater than 0 (check the Characters for Verification column in the document list)

To begin verification, open a document that needs to be verified in the document editor.


Invoice statuses

Statuses are assigned to invoices based on rule checks and/or manual checks performed by operators. Statuses are displayed in the Invoice Status column in the document list.

Status | Description
Valid | Rule checks have been successfully completed and the invoice is ready for export
Exception | Invoice requires verification
Rejected | The invoice does not comply with legislation (necessary data could not be found, is missing or has been recognize incorrectly). This data must be specified manually or the invoice must be processed in other ways (e.g. returned to the vendor)

The status of an invoice is determined automatically by validation rules. When errors have been corrected, rule checks are carried out again and a new status is automatically assigned to the invoice. For details, See "Available rules".

If an invoice contains errors that could not be corrected and has a status other than Valid, the status must be confirmed by the operator. Such invoices will be exported separately from the correctly completed invoices (as specified by the administrator).

The status of an invoice can be specified manually. For example, to allow the program to export invoices that do not satisfy some of the rules, the operator can change their statuses to Valid. Similarly, the status of an invoice that satisfies all of the rules but that should not be exported needs to be manually changed to Rejected or Exception.

Collapsed How to change the status of an invoice

The current status of an invoice and a description of the rule that was used to determine this status are displayed in the top part of the data form. The reason for manual status change may also be displayed there. Follow the instructions below to change the status of an invoice.

  1. Click the [image] button to the right of the status.
  2. Select the status you want to assign.
  3. Select the reason for the manual status change or type your own (if custom reasons have not been forbidden by the administrator).


Correcting recognition errors

During verification, invoices with the Exception or Rejected status are checked and errors are corrected. To begin verifying an invoice, double-click it and the document editor window will open.

The document editor window is split into three parts: the page image, the data form, and the errors pane (this pane is only displayed if there are errors in the invoice). There are four types of errors: assembly errors, format errors, rule errors, and missing field region errors. To display errors of a certain type, click the corresponding button in the top right corner of the errors pane (you can select any combination of error types).

The shortcut menu of the data form lets you confirm the value of a field, choose to display or hide format errors, go to the next object or the previous object that needs verification, and change the field navigation mode.

Fields whose values do not satisfy the specified data type or rules are highlighted. To confirm the value of a field, place the cursor inside this field and press the Enter key.

To specify a field region that was not found automatically, complete the following steps.

  1. In the data form, place the mouse cursor in the field that contains the region you want to specify.
  2. Specify the region:
    • Click a recognized region (such regions are highlighted in blue)

      • or

    • Draw the region by holding down the left mouse button and dragging the mouse pointer from the top left corner of the region you want to specify to its bottom right corner.

    Note: If you do not select a field before selecting or drawing the region, a dialog box with a list of fields will open. Select the desired field in that dialog box.

If the administrator created a database of vendors and/or business units, you can select a record from this database (for details, See "Looking up vendors and business units in the database").


Looking up vendors and business units in the database

If a vendor or a business unit was not determined automatically when an invoice was recognized, you can select one from the database. There are two ways to do this:

Collapsed Begin typing the desired value in one of the fields of the group

A list of suggestions will be displayed. Any records that match the text you typed will be displayed in bold.

It doesn't matter in which field of the group you type. You can, for example, begin typing a street name in a field that contains a company name.

When you see the desired record, select it from the list by clicking it or choose it using the arrow keys (press the Enter key to confirm your choice).

Fields from the record will be inserted into the corresponding fields of the group on the form.

If you cannot find the desired record in the list of suggestions, click the Vendor (Business Unit) is not found or press Ctrl+Del to clear all of the fields in the group.

Collapsed Click the Find... button in the form

The Lookup for Vendor (Business Unit) dialog box will open. This dialog box can be used to search for entries in the database.

Begin typing in the search box. Suggestions will be displayed in the list on the right, and any matches will be displayed in boldface. All of the fields of the selected record will be displayed on the left.

Select the desired record using the mouse or arrow keys and click the Select button. The fields from the record will be inserted into the fields of the group on the form.

If you cannot find the desired entry in the dialog box, click the Reset Data button to clear all the fields in the group.

Modifying vendor and business unit records and adding new ones

Information about vendors and business units is necessary for capturing invoices. The Vendor and Business Unit groups of fields contain basic information. Automatic processing of invoices begins with a search for a vendor or a business unit on the image. If no vendor or business unit could be found, the invoice will not be processed.

Information from your list of vendors and business units is used to find these fields on the invoice. This list is a local copy of an external database that contains information about vendors and business units. It is periodically synchronized with the database.

If a record for a vendor or business unit could not be found in the local copy of the database, it should be created manually.

Should any vendor details (such as the address of a vendor) change, the vendor's record in the local copy of the database should be modified accordingly.

Collapsed How to add a new record to the local copy of the database
  1. Fill out all of the fields in the Vendor/Business Unit group.
  2. Click the Save changes button.

The record will be added to the local copy of the database (but not to the external database). The fields will be highlighted in green. The Id field in the document form will contain the value UNKNOWN. This means that this record only exists in the local copy of the database and is not yet present in the external database.

The Exception status will be assigned to the invoice and all subsequent invoices from the same vendor.

Once the new record is added to the external database, the Id field in subsequent invoices will be filled in.

Collapsed How to edit an existing record in the local copy of the database
  1. Make the desired changes.
  2. Click the Save changes button.


Training during invoice capture

If you are not satisfied with the quality of data that ABBYY FlexiCapture for Invoices automatically extracts from fields, you can train the program while capturing invoices.

This is done by indicating the correct location of fields on the image and clicking the [image] button. When the program accumulates at least three examples of this type of invoice, it will perform the training procedure and use the results of this procedure when processing new invoices of this type.

Training during invoice capture must be permitted by the administrator.

How to train the program while capturing invoices

  1. Collect a batch of invoices (e.g. invoices received during the past month) and begin inputting them ( See "How to capture invoices").
  2. After input, documents are automatically recognized (if this option is enabled by the administrator) and checked using rules.
  3. If the resulting status of an invoice is other than Valid or you have other reasons to believe that the program failed to find fields on the image or located them incorrectly, open the invoice in the document editor.
  4. Check the document form. The Vendor group of fields must be filled out correctly.
Collapsed More...

Training is performed separately on each type of document. Invoices from a single vendor are considered to belong to a single type. If the vendor on an invoice is determined incorrectly, that invoice will be assigned to the wrong document type during training. If the vendor was not determined, select a vendor from the database. If you cannot find the right vendor in the database, type the data from the image in the fields from the Vendor group and save these changes to the database by clicking the Save Changes button.

Depending on your project's settings, you may also have to specify the unique ID of an invoice's vendor in order to enable the program to train on that invoice. To do so, type the unique ID in the VATID field (this field may have a different name in some localizations of projects). The VATID is a unique identification number assigned to companies for value-added taxation purposes.

  5. One of the necessary conditions for training is that the positions of the regions of all fields on the images match the real positions of the fields on the invoice. You have to make sure that the regions are located correctly.

Correct the positions of the regions on the document image and draw regions for fields that were not detected.

Collapsed How to change the region of a field
  • Place the mouse cursor in a desired field on the data form, find the corresponding region on the image (it will be highlighted in blue), and click it (or draw a rectangle with the mouse).
  • Position the mouse pointer over a desired region on the image (it will be highlighted in blue), click it (or draw the region with the mouse), and then select the corresponding field from the drop-down list that opens.
  • Adjust the position of a region on the image by moving its boundaries with the mouse.
  • Delete an incorrectly located region from the image: position the mouse pointer over its rectangle and when a red cross appears in the top right corner, click the red cross. The markup of the region will be deleted. Now create a new region for this field in the right location.
  • On the data form, start typing a value into a field. A drop-down list will be displayed listing the words captured from the image that resemble the word that you are typing. Select the right word from the list, and the position of the word on the image will become the region of the field.
  6. Now that all the fields are marked correctly, click the [image] button and the document will be added to the sample images used for this document type.

The [image] button becomes clickable if the following conditions are met:

  • At least one field region on the image has been changed.

Important! Deleted field regions cannot be used to train the program, i.e. the program cannot make use of information about where fields cannot be located.

  • Vendor data is correct.

If the [image] button isn't clickable, a notification explaining why will be displayed when you hold the mouse pointer over the button.

When you click [image], all the fields of the invoice will be used for training purposes, not just those whose markup you have added or modified. Therefore be sure to click [image] only after the regions of all the fields are correctly located on the image.

If you add at least one sample image for the document type, the [image] button will be immediately available for any subsequent documents you add for this document type. The idea behind the active [image] button is to enable you to also add sample images where all the fields are detected correctly and for which no additional adjustments are required

  7. Repeat steps 4 – 6 for the next document.
  8. After you add a third and any subsequent sample images for this document type, the training process will be started automatically each time you add a new sample (the Train Document Definition window will be displayed). Either a special FlexiLayout Variant will be created for this document type or the program will prompt you to continue adding sample images (if this is the case, select the next document and go back to step 4).

If the FlexiLayout Variant is successfully trained, it will be used for the next invoice from the vendor whose invoices belong to the given document type. Upon recognition, the regions of the fields will be matched against the fields on invoice image, taking into account the knowledge obtained through training.

The [image] button will switch back to its normal mode, i.e. it will become clickable only after you modify the markup of at least one region.

Now that you have accumulated a sufficient number of sample images for the document type, training will start each time you add a new sample image (i.e. each time you click [image]). Click [image] only if some of the regions have not been properly matched with their fields and you have had to adjust their positions on the image.

  9. Add a few more invoices from the vendor whose document type has been trained and recognize them. Then open the newly added invoices one by one in the document editor to check if the regions are marked up correctly. If all the regions are located correctly, no additional training is required.

If you are not satisfied with the results achieved by completing the steps in this section, continue training on invoices from the vendor (steps 4-6).


Exporting data

After data has been verified, it needs to be exported.

To export your data using the settings specified by the administrator, click the Export button on the main toolbar.

Note: Export can also be carried out manually. To do this, click the ▼ to the right of the Export button and select one of the menu items:

  • Export to data files exports data to files
  • Export to image files exports images to files
  • Export to ODBC-compatible database exports data to a database

For more on exporting options, See "Exporting recognized data".


How to set up an invoice capture project

Before you begin processing invoices, you will have to:

  1. Create a new project.

    Open the File menu and select New Invoice Project.... From the Project type drop-down list, select Invoice Processing as the project type. Specify a name for the project and the path to the folder in which it should be saved. You can create several projects. For example, you can have a separate project for each department or for specific vendors.

  2. Configure the project. A properly configured project yields higher data capture accuracy. The settings that have to be configured before you can begin processing are described below.

Set up import profiles

Invoice processing begins with acquiring document images. There are several ways to acquire images:

  • An operator can scan hard-copy documents.
  • An operator can add images from a folder.
  • An import profile can be used. Import profiles are set up by an administrator and include import from a scanner, from a Hot Folder, and from an e-mail inbox.

For more information on import profiles, See "Image import profiles"

Important! The current version of ABBYY FlexiCapture for Invoices has a limit on multi-page invoice processing. If an invoice has several pages, they must be assembled in the proper order (from first to last). The beginning and end of a multi-page document must be defined. This can be done in the import settings.

Specify region and language settings

Create a list of countries from which your invoices will originate. This list will be used to determine the set of rules that will be used for checking your invoices, the formatting of numbers, dates, and sums, tax rates, currencies, the values of special fields, and a list of permitted languages for the invoices. This list of languages will then be used to select the keywords that help find fields on invoices.

Note: All regional and language settings are available in an XML file. For details, see See "Editing invoice processing settings in XML files" .

Add data bases

Perform this step if you have a database of vendors and business units. Such databases help correctly identify groups of vendor and business unit fields on the invoice image and extract data from them. Without databases, groups of vendor and business unit fields have to be specified by hand during verification.

Configure export settings

Specify an export path for extracted data. The project already includes a default export profile, but various other profiles can be set up for documents with various statuses. For example, you may choose to export documents with the Rejected status to a separate folder.

Note: For more on document statuses and their uses, See "The status of documents in ABBYY FlexiCapture for Invoices projects".

Additional settings

Training

The administrator can train the system when setting up the project. If testing reveals that the quality of data capture is inferior for some invoices, training can be used to improve the quality of data capture.

Rules

Specify rules that will be used to check invoices.

Data capture from additional fields

Specify additional fields for data extraction or create your own custom fields.

Purchase order matching

Set up automatic matching of invoice fields with purchase orders.

Additional options for operators

Enable training during invoice processing or allow operators to add or edit vendor and business unit records.

Graphical user interface settingsABBYY FlexiCapture for Invoices:

Set up the appearance of the document form

Localize the Document Definition

Translate field captions, names of buttons, tooltips, and other text in the data form. Translate error messages.

Update the Document Definition

Users can update their projects when a new version of ABBYY FlexiCapture is released. Any modifications made by the user prior to the update will be preserved to the greatest extent possible.

Workstation settings

  • Global settings
  • Individual settings (available in Tools>Options…)
Collapsed More about personal settings...

The Options dialog box lets you:

  • Choose which data is stored in the log and specify when tooltips should appear
  • Define keyboard shortcuts
  • Change GUI colors
  • Change automatic recognition settings
  • Set up the display of dialog box

Important! All changes made in the Options dialog box are stored locally and will not be altered when the project is changed or updated.


Country and language settings

ABBYY FlexiCapture for Invoices can process invoices originating from a number of different countries and supports a wide range of languages.

All supported countries are enabled by default in the Document Definition. However, you should select only the countries from which you expect to receive invoices.

Attempting to process an invoice from a country that is not in the list is unlikely to yield satisfactory results because:

  • No keywords are available. Keywords are used to find data on the invoice.
  • Recognition quality will be significantly lower because the language of the invoice may be disabled.
  • The country of the invoice may have its own number and currency formats.

The country of the invoice is used to determine the currency, keywords, additional fields, and the formats of fields such as IBAN and VATID.

The country of the invoice also determines the language set. Only enable languages that will be used during recognition. Extra languages interfere with processing and decrease performance.

How to specify countries and languages

  1. Open the Project menu and click Document Definitions….
  2. Click the Edit… button in the dialog box that opens.
  3. Open the Document Definition menu and click Document Definition Properties….
  4. Select the Invoice Settings tab in the dialog box that opens.
  5. Click the Edit… button to the right of the Countries and Languages group.
  6. Specify the desired settings in the Countries and Languages dialog box that opens.
Collapsed How to edit the list of countries

Add or remove countries by selecting or clearing their check boxes.

Collapsed How to edit the list of languages

The list of languages is generated automatically based on the list of countries (each country has its own set of languages which can be edited in the properties of the country). Remove any extra languages and add any missing ones:

  1. Select the appropriate country from the list.
  2. Click the Edit… button.
  3. Select the Languages tab in the dialog box that opens and edit the list of languages.
Collapsed How to edit a country's tax rates

If tax rates have changed in a country, these changes must be reflected in that country's settings. Follow the instructions below to edit a country's tax rates.

  1. Select the country from the list.
  2. Click the Edit… button.
  3. Select the Tax Rates tab in the dialog box that opens.
  4. Select the tax rate you want to change from the list and click Edit…. Click Add… to add a new tax.
  5. Specify the new rate, duration, and key words in the Tax Rate Settings dialog box.
Collapsed How to change IBAN and VAT formats

Complete the steps below to change the format of a Bank Account, Bank code, IBAN, National VATID, VATID, Total or Total tax.

  1. Select the appropriate country from the list.
  2. Click the Edit… button.
  3. Select the Formats tab in the dialog box that opens and edit the formatting settings. For details, See "Extended regular expressions"
Collapsed How to change currency formatting

If you need to change the formatting of a currency or add a new currency:

  1. Select the appropriate country from the list.
  2. Click the Edit… button.
  3. Select the Currency tab in the dialog box that opens and change currency formatting settings.
Collapsed How to change the keywords used for finding fields on an invoice

Keywords are words that are frequently found next to specific fields on invoices. The program uses them to locate these fields. Keywords on invoices originating from a specific country may depend on the invoice language, but keywords in a language used in several countries may be different for those countries.

Keywords for fields are specified in the properties of countries and languages. Properly specified keywords help ABBYY FlexiCapture for Invoices locate fields and improve recognition accuracy.

Follow the instructions below to view and edit the list of keywords.

  • Keywords for a specific country:
  1. Select the country from the list.
  2. Click the Edit… button.
  3. Select the Keywords tab in the dialog box that opens and edit the keywords.
  • Keywords for a specific language:

Note: The language properties contain a list of elements that are used to find fields instead of a set of fields. For details, See "Keywords".

  1. Select the language from the list.
  2. Click the Edit… button.
  3. Edit the keywords in the Language Keywords dialog box.
Collapsed How to add a new country

If you could not find a country in the list, you can create it and specify its properties (currency, tax rates, rules, etc.).

  1. Select a country from the list.

All properties of the country you selected except for languages will be copied, so you should select a country whose properties are as close as possible to the desired ones.

  2. Click the Duplicate… button.
  3. In the dialog box that opens, select the name of the country you want to add and click OK.
  4. Edit the properties of the new country.


Connecting vendor and business unit databases

The process of capturing invoices requires information about vendors and business units. The Vendor and Business Unit groups of fields are the key fields. The program starts matching the Document Definition with an invoice from these fields. They also determine the rules for capture and checking the data from the fields.

A vendor is a company that issues an invoice. The vendor chooses the language of the invoice and the formatting of numbers, dates, and amounts.

A business unit is a company or a company's division that receives an invoice. The set of rules used for checking invoice data, the tax rates, and other data are determined based on the business unit.

The automatic processing (recognition) of an invoice begins with a search for the vendor and the business unit. Data from your databases of vendors and business units is used to locate vendor and business unit data on the invoice. Rules automatically compare vendor and business unit data from an invoice with data from the database.

Operators can search the database for specific vendors and business units during manual verification.

To provide information about vendors and business units to the program, the databases must be connected to the Data Sets specified in the Document Definition.

A Data Set is a local copy of table from an external database which stores information about vendors or business units. The values of a Data Set can be typified and normalized. A Data Set may be periodically updated to synchronize it with its external database.

See "Preparing vendor and business unit databases"

Connecting databases

Vendor and business unit databases are connected in the same way:

  1. Open the Project menu and click Document Definitions….
  2. Click the Edit… button in the dialog box that opens.
  3. Open the Document Definition menu and click Document Definition Properties….
  4. Open the Data Sets tab in the dialog box that opens.
  5. Double click the BusinessUnits (Vendors) row or click the Set Up… button. The Data Set dialog box will open.

The Data Set is essentially a table of data. It contains the necessary columns and their types. These columns and types cannot be changed by the user, who needs to match each column in the Data Set with a column from an external database. If a database does not contain a table with the necessary data, you will have to create a view with this data and specify this view as the table.

  6. Specify the database connection string.

You can select one of the existing environment variables from the project or define a new string by clicking the Specify… button. Using an environmental variable from the project allows moving the project and connecting to databases with the same structure without editing the Document Definition.

  7. Select Data schema and Database table.
  8. Match the columns from the Data Set with their corresponding columns in the external database.

For each column in the Data Set, you can specify the corresponding column in the external database or specify the value of <Not used>.

  • The names of columns in the Data Set
  • The corresponding columns from the external database

    By default, each field in the External Database column column of the Data Set contains the <Not used> value. This means that no column from an external database has been specified.

  • The Found column, which contains a checkmark if a match between the Data Set field and a database column has been established
  • The Normalization column, which shows the type of normalization used for the value

    Normalization makes it possible to treat several insubstantially different values as identical (See "Normalization of Values in Data Sets" for details).

Select a column in the table and click the Edit… button.

  9. In the Data Set Column Mapping dialog box, select the matching database column from the Database columns list.

Invoices from the same vendor can contain different names of the vendor's company and different addresses. In cases when several values correspond to the same vendor (the same VATID), they must be placed in different columns of the table (or view) of the external database, such as Name 1, Name 2, Address 1, Address 2. You can then select Several columns… from the list when specifying matching columns and specify any number of columns from the database as matches for the Data Set column.

Note: The external database may contain, for example, only one value for the company name and street. However, these fields may have several common variants when they occur on invoices. To achieve the maximum quality of detection, the text in these fields printed on an invoice should be as close as possible to the corresponding text in the Data Set. We recommend creating a view in the external database that corresponds to the data table but contains additional empty columns. For example, for the Company Name column in the data table you can create several columns in the view ( Name1,Name2...), one of which will contain the name of the company and the others will left empty. When establishing correspondences between the Data Set and the external database, select Several columns… and associate the Name field of the Data Set with all the Name* columns in the view. Thus you will be able to add new variants of the company name to the Data Set (not to the external database!) while processing invoices, improving the quality of detection.

See "Complex columns in a Data Set"

If your database has no matching column for a Data Set column, select <Not used>.

See "Columns in the Vendors Data Set"

See "Columns in the BusinessUnits Data Set"

  10. Select an entry from the Normalization list that best fits the type of data in the column (See "Normalization of Values in Data Sets" for details).
  11. Specify a database update period in the Data Set if automatic updates are required.

The Data Set for business units and vendors is stored within the project and must be synchronized with an external database, whose data may change over time. Synchronization occurs when the project is updated if the time elapsed since the previous synchronization exceeds the specified update period. For more on updates, See "Updating Data Sets".

Database check rules

The European Invoice Document Definition contains rules that are used to check data in the Vendor and Business Unit groups of fields against the database. These are standard rules of the Database Check type with the names (Rejected) Vendor should be found in the database and (Rejected) Business Unit should be found in the database. See "Rules" to learn how to find rules in the list.

You can view the properties of these rules to find out which fields from the Vendor and Business Unit groups have to be exact matches of records in the Data Set (and, by extension, in the database), which ones do not have to match perfectly, and which fields are simply copied from the database. You can read more about database check rules in See "Database Check rule".

Database check rules are applied automatically when the invoice is recognized, and after that each time an operator changes fields in the group during verification.

Performing database lookups while processing invoices

If a vendor or a business unit has not been determined automatically, the operator can select the appropriate record from the database (i.e. the Data Set).

See "Looking up vendors and business units in the database"

Modifying vendor and business unit records and adding new ones

You can allow operators to add new vendor and business unit records (if they are not found in the database) to Data Sets during verification and edit existing entries. This data will not be stored in external vendor and business unit databases, but it will be used during invoice processing and rule checks. For details, See "Enabling additional program features for operators".

See "Looking up vendors and business units in the database"


Preparing vendor and business unit databases

ODBC-compatible databases

ABBYY FlexiCapture for Invoices allows you to connect a Data Set to an ODBC-compatible database (See "Connecting vendor and business unit databases"), to load data once, or to update a Data Set with data from an external database at regular intervals (See "Updating Data Sets").

Therefore, your first step should be deploying external data in an ODBC-compatible database, such as Microsoft Access, Microsoft SQL Server or Oracle.

Eliminating duplicate records in the external database

It is important to determine the field in the external vendor (or business unit) database whose value must be obtained as result of detecting the vendor (or business unit) on an invoice. This field (or set of fields) should become the unique key of the Data Set.

The unique key of a business unit Data Set is the Id field (See "Columns in the BusinessUnits Data Set"). From the user's point of view, this field is the result of ABBYY FlexiCapture for Invoicesdetecting the business unit to which the given invoice was issued.

The unique key of a vendor Data Set should be the value passed to the external information system as a result of ABBYY FlexiCapture for Invoices detecting the vendor that issued the given invoice. If one vendor table is used, the unique key must be associated with the Id field of the Data Set. This value will be passed to the external information system when the vendor is detected in the invoice.

If you are planning to process within one project invoices issued to different business units of your company, each of which has its own vendor database, you should associate the unique key of each business unit with the BusinessUnitId column of the Vendors Data Set, and the key of each vendor with the Id column of the Vendors Data Set. Therefore, the unique key of the vendor record to be passed to the external information system when the vendor is detected will be the pair of Id and BusinessUnitId values.(See "Columns in the Vendors Data Set").

In the explanations that follow, we will consider only vendor detection, as the situation is completely identical in the case of business units.

The unique key of a record must determine the unique combination of parameters which are used for vendor detection. Very often, an external information system will consider a vendor record to be unique relying on more parameters than are specified in the invoice and/or are used for vendor detection.

For example, an external information system may expect to receive an MCN_USD identifier if the vendor My Company Name Ltd. issues an invoice in US dollars, or it may expect an MCN_EUR identifier if the same company issued an invoice in euros. Even though the currency is stated in the invoice (and the occasion when the MCN_USD should be returned can be distinguished from the occasion when the MCN_EUR identifier should be returned), currency is not used for vendor detection.

Therefore, the vendor detection mechanism cannot decide between MCN_USD and MCN_EUR.

In cases like this, create an MCN identifier, which will correspond to both MCN_USD and MCN_EUR and which will be returned when the vendor is detected. Next, you can create a rule in the Document Definition that will choose between MCN_USD and MCN_EUR depending on the currency of the given invoice.

To generalize, the unique identifier of a vendor record should have a unique set of parameters that are used for vendor detection, such as company name, company address, taxation IDs (VATID, NationalVATID), and international bank account number (IBAN). (See "Columns in the Vendors Data Set") Only then will the vendor detection mechanism be able to select the right vendor record for an invoice.

Note: Next, the program can capture additional fields and use rules in the Document Definition to fine-tune the result to obtain the required value.

If the same (or easily confused) set of parameters that are used for vendor detection corresponds to multiple unique keys, the program will not be able to choose only one key, vendor detection will become haphazard, and the quality will degrade.

The reason for this is as follows. If the program can use the data printed on the invoice to reliably detect the My Company Name vendor but there are several records (MCN1, MCN2, ... MCNN) in the Data Set corresponding to the invoice data, the program may decide in favor of another record, which is a worse match for the invoice data but which does not result in so many records. This will ultimately cause the vendor to be detected incorrectly.

Consequently, it is very important to eliminate duplicate records in the external database and get a column in the external database which will have a unique value for each unique set of values of the record fields used for vendor detection.

When connected to the Data Set, rows with identical values in the column that will be associated with the unique key of the Data Set, will be automatically collapsed into one record in the Data Set.

Complex columns in a Data Set

A Data Set can store multiple values for one logical column of one company record.

Storing multiple values is necessary because such company parameters as company name, street, etc. may vary from invoice to invoice (e.g. we may have "My Company Name" and "MCN Ltd."), but in order to detect the company reliably, the text in the Data Set must closely match the text captured from an invoice image. Besides, company may have multiple bank accounts or other attributes.

Values for "multiplied" columns may be taken from an external database (e.g. a table of vendors may contain one to five bank details for each company), or they may be added by the user during data capture (e.g. an operator may add to the Data Set a commonly used variant of a company name that is not known to the external database).

Data Sets use column denormalization, i.e. they store data in the following form:

Unique key of Data Set* | Name1 | Name2 | ... | NameN | ...
1 | My Company Name | MCN Ltd. | ... | <empty value> | ...
2 | The Second Company, Inc. | S-Company | ... | <empty value> | ...
... | ... | ... | ... | ... | ...

For one logical field of a record, say, Name, multiple columns are created in the Data Set, which store all the possible values of the logical field. Thus, Name may be termed a "complex column."

When connecting a table (or a view) from an external database, you can use column denormalization as described above, or more common row denormalization. In the latter case, the rows that should be merged in the Data Set into the parameters of one record should have the same value of the column that corresponds to the unique key in the Data Set. For example:

Column corresponding to unique key in Data Set | Name | ...
1 | My Company Name | ...
1 | MCN Ltd. | ...
... | ... | ...
N | <empty value> | ...
2 | The Second Company, Inc. | ...
2 | S-Company | ...
... | ... | ...
N | <empty value> | ...
... | ... | ...

*The unique key of a BusinessUnits Data Set is the Id field. The unique key of a Vendors Data Set is either the Id field or the pair of fields Id and BusinessUnitId, depending on the settings. (See "Columns in the Vendors Data Set")


Updating Data Sets

There are two types of data sets in ABBYY FlexiCapture:

  • The first type only contains information about the structure of the data.
  • The second type contains the data from the external database. This is enabled by selecting the Cache data option in the properties of the Data Set.

Updating a Data Set synchronizes it with its external database. It only makes sense to update Data Set that contain data from an external database.

Data sets are updated at various times:

  • An update can be initiated in the Document Definition Editor by a user.
  • An update will occur when a certain amount of time since the last update has elapsed and the batch is open in the Administrator Station or Operator Station of ABBYY FlexiCapture Standalone, or int the Project Setup Station of ABBYY FlexiCapture Distributed. The amount of time that needs to pass before an update can be triggered by a user opening the batch can be changed.
  • When an update is explicitly initiated by a user of the Processing Server or the Project Setup Station, or according to a schedule set up on the Processing Server or the Project Setup Station.

Updating data sets in the Document Definition Editor

  1. Open the Document Definition menu and click Document Definition Properties….
  2. Go to the Data Sets tab in the dialog box that opens.
  3. Select the data set you want to update and click the Update button.

Updating Data Sets when batches are opened

To enable automatic updates, open the properties of the data set, select the Update interval and specify the interval between updates.

An update will be initiated when a certain amount of time has elapsed since the last update and the batch is opened on any station of the Standalone version, or on the Project Setup Station in the Distributed version of FlexiCapture.

Some stations will not have access to the external database, making updates of data sets impossible. Data set updates on stations can be disabled by disabling the Update data sets when batch is opened option on the Document Processing of the Options dialog, or by editing the following registry subkey:

[HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller]

"DisableCacheUpdate"="1".

Scheduling data set updates

In ABBYY FlexiCapture Distributed, data set updates can be initiated from the command line on the Processing Server or on any полнофункциональной пользовательской станции (with the exception of the Remote Verification Station and web stations). This is only possible when the Processing Server or station has access to the FlexiBr.exe or FlexiBrSvc.exe file. Use the following command to update data sets:

update dataset <project path> [<document definition name>] [<data set name>], where

<project path> is the URL of the project on the Application Server of ABBYY FlexiCapture, such as http://appserver/{GUID}/ProjectName. This URL can be copied from the properties dialog of the project on the Project Setup Station.

<document definition name> is the name of the Document Definition to which the data set belongs.

<data set name> is the name of the data set that needs to be updated.

Only Administrators and Настройщика проекта can use this command in ABBYY FlexiCapture.

Example of a command that can be executed on the Processing Server to update the Vendors data set:

FlexiBRSvc.exe please update dataset “http://myAppServer/D111842C-C6AF-44AC-B341-3295881012E5/MyProject” “Invoice” “Vendors”

This command updates the data set on the Processing Server. However, полнофункциональные станции will keep using their local copy of the data set until they are restarted.

Processing stations that are Windows services and cannot be restarted without restarting the computer they are running on will update their local copies of data sets after 5 minutes of inactivity, after terminating processes that execute tasks from FlexiEx.exe.

You can use the Windows Scheduler to schedule data set updates and restart processing stations so that their local copies of data sets are updated. For details, see the Managing the Processing Server using command line section of the Processing Server article.

Merging data when updating a data set

ABBYY FlexiCapture lets operators edit data sets during processing. In particular, users can add new vendor and business unit data and modify existing data. These changes are not carried over to the external database.

The external database can be edited independently.

Data sets are updated as follows:

  • If a new entry is created in the external database, it will be added to the data set.
  • If an entry is deleted in the external database, it will be deleted from the data set.

Entries that were created the Data Set by operators will be deleted, and entries that were created in the external database by operators will be added to the data set. If an entry exists in the data set and the external database, it's fields can be changed in the external database and the data set independently. In this case, the data set is updated as follows:

  • If fields from the entry were changed by operators during document processing (e.g. a new vendor address has been provided), these changes will be saved to the data set.
  • If fields in the external database were changed by operators, but were not changed in the data set (i.e. they retained the original values from the external database), their values in the data set will be replaced with values from the external database.

Replacing data in a Data Set with data from an external database

If the operators do not make any changes to the data set, all of the data it contains will be replaced by data from the external database upon each update. If the operators do change the data set, the administrator has the option to overwrite it with data from the external database, thereby deleting all of the operator’s changes.

To do this, reconnect the data set:

  1. Open the Data Sets tab in the Document Definition Properties dialog box and select the Data Set you want to reconnect.
  2. Click the Set Up… button.
  3. Specify the connection string, select a schema and a table, and specify matching columns.

For details, See "Connecting vendor and business unit databases".


Normalization of Values in Data Sets

This article describes the different types of normalization that can be used when adding columns from an external database to a Data Set in a Document Definition, and the settings of these normalization types.

Normalization can be used to change the format of values that are written differently but essentially mean the same thing. Normalization enforces consistent formatting of values so that they can be compared. For example, the address and name of a company may be written in a variety of different ways. Since these values refer to the same company and the same address, they need to be normalized to enable the program to make a proper comparison.

The type of normalization can be specified for each column in a Data Set when mapping these columns to columns in an external database.

Normalization is only applied to values stored in the Data Set (the Cache data option must be enabled in the Data Set's properties). Values in the external database will not be changed.

Collapsed How does normalization work during data extraction in ABBYY FlexiCapture for Invoices?

ABBYY FlexiCapture for Invoices uses Data Sets for applying FlexiLayouts and extracting data from fields in addition to automated checks of invoices. For example, the name and address entries of a vendor in a database may be written in one way, and written in a variety of different ways on invoices from this vendor. When the FlexiLayout is applied to these invoices, the program will use the value from the database to generate a list of values that will yield the value from the database when normalized, and then search the image for each of these generated values.

ABBYY FlexiCapture for Invoices offers two types of normalization for values from the Data Set.

1. Text

This type of normalization is useful when comparing strings such as company names and addresses.

  1. White space (this includes newline and tab characters) and separation symbols are replaced with regular spaces.
  2. Periods used as separators (periods that are placed between words) are replaced with spaces and periods in abbreviations are removed.
  3. Normalization of conjunction symbols (&, +, -, /, ~):
    • Sets of words that begin with a single-letter word and are separated by the same conjunction symbol are joined into a single word, e.g. R & D becomes R&D;
    • In all other cases conjunction symbols are replaced with spaces, e.g. Procter&Gamble becomes Procter Gamble.
  4. Double spaces are removed.
  5. A list specified in advance is used to split words. For example, CoKG is split into Co KG.
  6. Spaces in recognized text are used to split it into separate words.
  7. A list specified in advance is used to replace suffixes in each word. For example, you can replace the suffix strasse with the suffix str.
  8. Automatic replacement of strings of words according to list specified in advance. For example, you can replace the work Limited with the abbreviation Ltd.

Normalization parameters are specified in the Normalization.xml file, which is stored in the project's folder.

Collapsed More...

The path to the Normalization.xml file in a project that is stored on a local drive: <path to the project folder>\ Templates\InvoiceData\<Name of Data Set>.Cache\Normalization.xml.

Example: C:\InvoicesProject\Templates\InvoiceData\Vendors.Cache\Normalization.xml.

The path to the Normalization.xml file in a project that has been uploaded to the Application Server and is stored in the file storage folder ofABBYY FlexiCapture for Invoices: <path to file storage>\<GUID of file storage>\project_<project id>\ DatabaseCaches\<Name of Data Set>\Normalization.xml.

Example: D:\FileStorage\2FBE40C5-26EF-4756-AA7F-A52E7FBDA97D\project_1\DatabaseCaches\Vendors\Normalization.xml.

A Normalization.xml file of a Data Set is created when the Data Set is created. Each of these files is specific to its Data Set and the parameters it stores do not apply to other Data Sets.

Note: Significant changes may be made to the normalization algorithm in future versions of the program.

2. Alphanumeric code

This normalization type is useful when comparing alphanumeric codes such as tax ID numbers, bank accounts and post indexes.

All symbols except for numerals and letters are removed from values, allowing you to compare values while ignoring spaces, dashes, slashes and other arbitrary characters that these values may contain.

When normalization is applied, the Store normalized value option becomes available when mapping the Data Set column to a column in an external database.

  • When this option is enabled, normalized values will be stored in the Data Set.
  • When this option is disabled, original values from the external database will be copied to the Data Set.

This option does not affect data extraction or automated checks, but it does determine which value will be displayed to a user when the user searches for an entry in a dictionary.


Data export settings

In a project, an export profile can be set up for every document status (you can read more about statuses in See " What Is ABBYY FlexiCapture for Invoices? "). You can, for example, export documents with the Rejected status to a separate folder. Each export profile can have its own export settings (such as export to data files or ODBC-compatible databases), export path, and list of fields from which data needs to be exported.

Captured data must be exported after it has been verified. The project already has two export profiles that are provided as examples. One of these profiles is for documents with the Valid status, the other is for documents with the Exception status. Both profiles export data in the *.csvformat but use different paths: the first one exports data to the Export (Valid) folder, the second one to the Export (Exception) folder. For more on export profiles, See "Data export settings"

Setting up export based on document statuses

Export setup in ABBYY FlexiCapture for Invoices is largely similar to ABBYY FlexiCapture (See "Data export settings")

  1. Open the Project menu and click Document Definitions….
  2. Click the Edit… button in the dialog box that opens.
  3. Open the Document Definition menu and click Export Settings….
  4. In the dialog box that opens, click the Add… button to open the Export Destination Wizard.
  5. Specify export settings.
  6. Select the Field condition option.
  7. In the Export Conditions dialog box that opens, click the Select… button.
  8. Select the Status item from the list of fields by double-clicking it.
  9. Select Belongs to set from the drop-down list.
  10. Specify the status (Valid, Exception or Rejected) that an invoice must have in order to be exported.
  11. Click the Add button.
  12. Click OK. The selected status value will be displayed in the Export Destination Wizard.
  13. Follow the instructions in the wizard to set up the export profile.

The list of export profiles now contains a new profile that is applied to documents with the status you specified.

Editing the list of fields from which data needs to be exported

By default, data is exported from all fields. However, you can choose not to export data from specific fields, or create a separate list of fields from which data needs to be exported in each export profile. For details, See "Data export settings".


The status of documents in ABBYY FlexiCapture for Invoices projects

Once invoices are fed to the program, they are automatically recognized and then checked using a set of validation rules. After applying the rules, each invoice will be assigned a status.

Status | Description
Valid | Rule checks have been successfully completed and the invoice is ready for export
Exception | Invoice requires verification
Rejected | The invoice does not comply with legislation (necessary data could not be found, is missing or has been recognize incorrectly). This data must be specified manually or the invoice must be processed in other ways (e.g. returned to the vendor)

Invoice statuses are assigned automatically based on the set of rules which have been already created (See "Available rules").

Documents that have the Valid status may be exported without being verified.

Invoices with other statuses must be first reviewed by the operator. The operator examines each document and corrects any errors or warnings issued by the rules. Once the errors and warnings in an invoice are corrected, its status will change to Valid. The operator may also choose to agree with an automatically assigned status or assign a status manually, providing his reasons in the comment field.

If the program consistently fails to detect certain fields on image invoices, the operator can train the program in the process by indicating the correct field positions on the current image.

Documents with different statuses can be exported to different destinations for subsequent processing by your financial software. The comments provided by the operator when changing their status will also be visible in your financial software.

Operator-assigned statuses: operator's comments and pre-defined reasons for change of status

The operator may ignore errors and warnings issued by the rules and assign a status to an invoice manually. When doing so, the operator will need to provide a comment or select a reason from a list of pre-defined reasons.

  1. From the Project menu, select Document Definitions….
  2. In the dialog box that opens, click Edit….
  3. From the Document Definition menu, select Document Definition Properties….
  4. In the dialog box that opens, click the Invoice Settings tab.
  5. Click Edit… next to the Handling Invoice Output Status group. The Reasons for Change of Status dialog box will open.

Editing the list of pre-defined reasons:

By selecting an item in the Status list, you can view the list of pre-defined reasons for changing the status of an invoice.

To add a new custom reason, click Add…. In the Reason for Change of Status dialog box, add a new reason and its code.

To load a reason from a text file, click the Load… button.

Allowing operators to provide their own reasons:

Select the Operator may enter custom reasons option if you want to allow the operator to provide his own ad-hoc reasons for the status change.

Setting up status-dependent export

Generally, setting up export for ABBYY FlexiCapture for Invoices is no different from setting up export in ABBYY FlexiCapture (See "Data export settings"). For detailed instructions on setting up status-dependent export in ABBYY FlexiCapture for Invoices, See "Data export settings".

Rules that affect the status of an invoice

To view the rules:

  1. From the Document Definition menu, select Document Definition Properties….
  2. In the dialog box that opens, click the Rules tab.

A rule may affect the status of an invoice.

To make a rule affect the status of invoices, add the prefix (Rejected) or (Exception) to its name. Errors issued by a rule thus prefixed will cause the corresponding status to be assigned to a failed invoice. You can add a status-changing prefix to a rule either when creating a new rule or when editing an existing one.


Training ABBYY FlexiCapture for Invoices

The quality of data capture can be improved by training ABBYY FlexiCapture for Invoices. Users can train ABBYY FlexiCapture for Invoices either before or while processing invoices.

Training is done only on the following kinds of images and in the following cases:

  • the Document Definition cannot correctly detect fields on an image;
  • the user needs to extract data from fields not defined in the Document Definition.
Collapsed When training may be useful

In a stream of documents of the same type unusual documents may pop up where field locations differ from those on the standard document. If ABBYY FlexiCapture for Invoices cannot reliably detect fields on such documents, the user can indicate the correct field locations and the program will "learn" how to detect these fields.

Besides the main and additional fields supported by default, the user may need to capture data from fields yet unknown to the program. If this is the case, the user can create custom fields in the Document Definition and then specify their locations on invoice images. Now the program will be able to capture data from these fields as well.

Typically, each vendor prefers invoices of a certain type. Therefore invoices from different vendors should be trained separately. Invoices from different vendors are treated as Document Variants.

Collapsed How training works

The user adds invoice images which the program must be trained to capture. This can be done either during normal document processing or in a special training mode. The added invoices will be automatically recognized and submitted for verification. The user verifies the documents and corrects field locations wherever required, creating a reference layout.

Now the user can add the document to the set of sample invoices for the given vendor. The administrator can see the list of all invoice variants and their sample images in the [image] Training Batches window. Once the first sample image is added for a Document Variant, the Document Variant switches into sample accumulation mode.

At least three sample images are required to train a new Document Variant. Once the program has a sufficient number of document images, training will begin automatically. The user can also start the training process manually by clicking the corresponding button.

Training creates a FlexiLayout Variant, which will be used for all documents that belong to this Document Variant (i.e. for all invoices from this vendor).

Once the training completes, the FlexiLayout Variant is automatically tested by the program. All the sample images for this Document Variant are recognized by applying the newly created FlexiLayout.

The quality of the new FlexiLayout Variant is determined by comparing the recognition results with the reference layout specified by the user. The same approach is used to determine the quality of a Main FlexiLayout, which is used when no training has been done. Next, the quality of the FlexiLayout Variant is compared against the quality of the previous FlexiLayout Variant or with the quality of the Main FlexiLayout:

  • If the quality of the new FlexiLayout Variant is worse than the quality of the old FlexiLayout Variant or Main FlexiLayout, the new FlexiLayout is not saved and the user sees a corresponding message in the Train Document Definition window.
  • If the quality of the new FlexiLayout Variant is better than the quality of the old FlexiLayout Variant or Main FlexiLayout, it is saved and used for further processing of documents that belong to this Document Variant (i.e. invoices from this vendor).

ABBYY FlexiCapture for Invoices can also be trained while processing documents. The user adds invoice images to the working batch, which are then automatically recognized and submitted for verification. The user verifies the documents and corrects field locations wherever required. Next, the user clicks the [image] button in the document editor. This adds the document to the set of sample images for the given Document Variant. Each document's type is determined based on the vendor that issued it. Once the program has a sufficient number of document images for the Document Variant, training will begin automatically. In the future, when processing documents that belong to this Document Vendor, the program will use the knowledge obtained during the training process. "Training while processing" can be done by the administrator or by operators, provided they have the necessary permissions..

If no improvements in data capture are achieved through "training while processing," the administrator can switch to a special [image] Training Batches view and continue training for this special Document Variant. The administrator can:

  • manage the set of sample images used to train the Document Variant (i.e. add new images and remove those images which he believes to be unrepresentative of the Document Variant);
  • create training batches;
  • add sample images which will not be used for training per se, but will be used when testing the FlexiLayout Variant obtained through training;
  • export the resulting FlexiLayout Variant to ABBYY FlexiLayout Studio or import a FlexiLayout from ABBYY FlexiLayout Studio.

These additional capabilities enable the administrator to maximize training benefits. Once the desired results are achieved, the administrator can prohibit "training while processing" for the given Document Variant.

See "Training while processing documents"

See "Training by users with project setup permissions"


Training while processing documents

ABBYY FlexiCapture for Invoices lets you improve recognition quality while processing documents. If the program fails to determine the correct location of a field on a document image, an operator can specify the correct location and click the [image] button. The program will save this location and use it when recognizing other documents.

This article explains how to train ABBYY FlexiCapture for Invoices using the locally-installed version of the Verification Station, and covers some training-related issues that operators need to know about. The differences between the training process on the locally-installed version and the remote and web versions of the Verification station are covered in a separate article.

  1. Collect a batch of invoices (e.g. the invoices processed within the past month) and start feeding them to the program. See "How to capture invoices"
  2. Once the documents are fed to the program, they are automatically recognized (this happens only if the Recognize added images automatically option is enabled on the Document Processing tab of the Options dialog; to open this dialog, click Tools> Options…) and the data are checked by means of validation rules.
  3. If the status of a recognized invoice is other than Valid or if you have other reasons to believe that the program failed to detect some of the fields, open the document in the document editor.
  4. Review the document form. The Vendor group of fields must be filled out correctly.
Collapsed More...

Training is done independently for each Document Variant. Invoices from the same vendor a considered to belong to the same Document Variant. If the vendor is detected incorrectly, the wrong Document Variant will be selected for an invoice during training. If the program fails to detect the vendor, select the right vendor using the Vendor Lookup feature. If you can't find the vendor in the database, type in the name manually as it appears on the image and save it to the database by clicking the Save.

Depending on your project's settings, you may also have to specify the unique ID of an invoice's vendor in order to enable the program to train on that invoice. To do so, type the unique ID in the VATID field (this field may have a different name in some localizations of projects). The VATID is a unique identification number assigned to companies for value-added taxation purposes.

  5. Training will only be successful if the regions of all the fields are marked up correctly, so make sure that the regions match the actual locations of their respective fields on the image.

To achieve this, in the image window of the document editor, adjust the regions or draw regions for those fields which the program failed to detect.

Collapsed How to change the region of a field
  • Position the mouse cursor in a desired field on the data form, find the corresponding region on the image (it will be highlighted in blue), and click it (or draw a rectangle with the mouse);
  • Position the mouse pointer on a desired region on the image (it will be highlighted in blue), click it (or draw the region with the mouse), and then select the corresponding field from the drop-down list that opens;
  • Adjust the position of a region on the image by moving its boundaries with the mouse;
  • Delete an incorrectly located region from the image: position the mouse pointer on its rectangle and when a red cross appears in the top right corner, click the red cross. The markup of the region will be deleted. Now create a new region for this field in the right location;
  • On the data form, start typing a value into a field. A drop-down list will be displayed listing the words captured from the image that resemble the word that you are typing. Select the right word from the list, and the position of the word on the image will become the region of the field.
  6. Now that all the fields are marked correctly, click the [image] button and the document will be added to the sample images used for this Document Variant.

The [image] button becomes clickable if the following conditions are met:

  • At least one field region on the image has been changed.

Important! Deleted field regions cannot be used to train the program, i.e. the program cannot make use of information about where fields cannot be located.

  • Vendor data is correct.

If the [image] button isn't clickable, a notification explaining why will be displayed when you hold the mouse pointer over the button.

When you click [image], all the fields of the invoice will be used for training purposes, not just those whose markup you have added or modified. Therefore be sure to click [image] only after the regions of all the fields are correctly located on the image.

If you add at least one sample image for a Document Variant, the [image] button will be immediately available for any subsequent documents you add for this Document Variant. The idea behind the active [image] button is to enable you to also add sample images where all the fields are detected correctly and for which no additional adjustments are required.

  7. Repeat steps 4 – 6 for the next document.
  8. After you add a third and any subsequent sample images for this Document Variant, the training process will be started automatically each time you add a new sample (the Train Document Definition window will be displayed). Either a special FlexiLayout Variant will be created for this Document Variant or the program will prompt you to continue adding sample images (if this is the case, select the next document and go back to step 4).

If the FlexiLayout Variant is successfully trained, it will be used for the next invoice from the vendor whose invoices belong to the given Document Variant. Upon recognition, the regions of the fields will be matched against the fields on invoice image, taking into account the knowledge obtained through training.

The [image] button will switch back to its normal mode, i.e. it will become clickable only after you modify the markup of at least one region.

Now that you have accumulated a sufficient number of sample images for the Document Variant, training will start each time you add a new sample image (i.e. each time you click [image]). Click [image] only if some of the regions have not been properly matched with their fields and you have had to adjust their positions on the image.

  9. Add a few more invoices from the vendor whose Document Variant has been trained and recognize them. Then open the newly added invoices one by one in the document editor to check if the regions are marked up correctly. If all the regions are located correctly, no additional training is required.

If you are not satisfied with the results, continue training the program on invoices from the given vendor (repeat steps 4 – 6). Now each time you click [image], the training process will be started. If the training is successful, a new FlexiLayout Variant will be created.

See "Training by users with project setup permissions"


Training by users with project setup permissions

During training on training batches, the administrator collects a batch of sample invoices from one vendor and trains the program while processing them. If the results of such training are unsatisfactory, the administrator can switch to the batch view and take advantage of the expanded selection of training tools this view provides. When the training process ends, the administrator can forbid operators to train ABBYY FlexiCapture for Invoices on invoices from the vendor who issued invoices from the training batch.

Note: The actions described in this section can only be performed by administrators or users who have the permissions to set up projects in ABBYY FlexiCapture for Invoices.

The training batch view displays all images that have been added by clicking the [image] button. To open this view, click [image] (Training Batches) on the toolbar or select View>Training Batches.

The program will display a list of all Document Variants for which operators added sample images by clicking the [image] button.

The invoice's type is determined based on the vendor and has the same name as the vendor's company. To make searches easier, columns include information about the vendor, including VatID (the unique value-added tax identification number of the vendor), IBAN and the ID of the vendor in the external database.

You can manage Document Variants in this view. You can:

Collapsed Manage sample images that are used for training FlexiLayout Variants

Double-click a Document Variant and select Open from the shortcut menu. A list of sample images for this Document Variant will be displayed.

Each sample image may be in one of the following three states:

  • Unused - This sample image is not used
  • For training - This sample image is used for training and testing the FlexiLayout Variant
  • For testing - This sample image is used only for testing the FlexiLayout Variant

In this view, you need only one sample image to start training a FlexiLayout Variant. However, we recommend having at least three sample images in For training state.

If there is not enough sample images for training, load more images by clicking Load Images…. By default, any newly added images will be marked as Unused.

If the images you add are not recognized automatically, force-start the recognition process by clicking Recognize.

  1. Change the state of the images that you wish to use to For training. To change the state, select the images you need, right-click them, and then select Set Document State>For Training. We recommend changing the state of all the sample images to For training if you have not trained this Document Variant before.
  2. Check the markup of the all regions and make any adjustments as may be necessary. This is important, because the positions of all the regions will be taken into account.
  3. Start training the FlexiLayout Variant. Either
    • Select Project>Training>Train from the main menu, or
    • Right-click anywhere in the list and select Train from the shortcut menu, or
    • Switch into the training batch view and select Train from the shortcut menu of the Document Variant.

Training progress will be indicated in the Train Document Definition window. As a result of this training, a FlexiLayout Variant will be created. Next, the FlexiLayout Variant will be tested on all documents marked For training and For testing. The program will apply the FlexiLayout to each sample image (the user will not see this process) and compare the result with the reference layout (i.e. the layout created manually by the user). Then the quality of matching will be established.

If the new FlexiLayout Variant produces a better quality than the previous version of this FlexiLayout Variant and the Main FlexiLayout, the new FlexiLayout Variant will be saved and used for subsequent data capture.

If you think that some of the sample images adversely affect the training but you still want to use them for testing, change their state to For testing.

Make sure than at the time of training (i.e. when you click [image]) the regions of all fields on these sample images are located correctly. The testing process itself will not be visible to the user.

Collapsed Export a FlexiLayout Variant to FlexiLayout Studio for manual fine-tuning

Right-click a desired Document Variant and select Export Trained FlexiLayout… from the shortcut menu.

You may need to do this if you can't achieve the desired results by just adding or removing sample images.

Collapsed Import a FlexiLayout Variant from FlexiLayout Studio

Right-click a desired Document Variant and select Import FlexiLayout… from the shortcut menu.

You may need to do this if you have a FlexiLayout that has been created manually in FlexiLayout Studio for the Document Variant.

Collapsed Forbid further training on invoices from a specific vendor

Right-click a desired Document Variant and select Locked from the shortcut menu.

You may need to do this if the FlexiLayout for the Document Variant has already been trained (or created manually) and no further training will be necessary during invoice processing.

Collapsed Forbid using training results when processing invoices from a specific vendor

Right-click a desired Document Variant and select Disabled from the shortcut menu.

Select this option if you only want the Main FlexiLayout to be used when processing invoices from the Document Variant's vendor.

Collapsed Create a new training batch

You may want to create a new training batch if you want to train a FlexiLayout variant before operators start capturing invoices.

  1. Right-click an empty field in the training batch view and click New Batch… on the shortcut menu.

After the training batch has been created, choose its associated Document Definition (if your project uses multiple Document Definitions) and the vendor for whose invoices the training results will be used.

  2. If there is more than one Document Definition in your project, select the desired Document Definition in the Select Document Definition dialog box (right-click the batch and click Change Document Definition... on the shortcut menu).
  3. Choose a Vendor for the training batch in the Look up Training Batch Vendor dialog box (right-click the batch and click Change Vendor... on the shortcut menu).

The list of batches in the training batch view includes the VendorID and Document Definition columns. The values in these columns determine the Document Definitions and Vendors of training batches.

Note: It is important to recognize documents in a batch using only the Document Definition assigned to the batch.

The Clear Document Definition shortcut menu command unassigns the Document Definition of a batch. A batch without a Document Definition cannot be used for training.

  4. Add documents to the training batch (you can do this in several ways, such as using the Load Images… shortcut menu command. New documents will be automatically recognized.
  5. Check whether field regions were detected correctly and adjust them if necessary.
  6. Select the documents you want to use for training the FlexiLayout variant, right-click one of them and click Установить состояние документа>For Training.
  7. Start training the FlexiLayout variant. There are several ways to do this:
    • In the main window, open the Project menu and click Training>Train;
    • Right-click an empty spot in the list and click Train on the shortcut menu.
    • Open the training batch view, right-click a FlexiLayout variant and click Train on the shortcut menu.

You can see the state of each Document Variant in the State column in the list of training batches. At least three sample images are required in order to train a FlexiLayout Variant. Training won't start until at least three sample images are added by clicking the [image] button during invoice processing. Until that time, the words Collecting samples will be displayed in the State column next to the Document Variant. Once a variant has been trained and the program is satisfied with its quality, its state will change to Stable.


Transferring training results into another project

In ABBYY FlexiCapture for Invoices, you can re-use training results in multiple projects.

To be able to use your training results in another project, you need to import the training batches into that project.

A training batch is created for invoices issued by one particular vendor. For this reason, when importing training batches into a new project, it is important to match the training batches with their respective vendors in the Vendors Data Set of the new project.

Collapsed More...

Matching training batches with vendors based on VendorId

In ABBYY FlexiCapture for Invoices and in the external system where the data captured from invoices are exported, vendors are identified by the value of VendorId.

When these identifiers are the same in both projects (this can be the case when both projects are related to the same external system), enable the Preserve Vendor ID option in the Import Training Batches dialog box (Project>Training>Import Training Batches…). This retains VendorId identifiers for all batches.

Do not use the Preserve Vendor ID option if the project to which you are importing batches uses different VendorId identifiers or if VendorId identifiers depend on the business unit.

Matching training batches with vendors based on VATID and IBAN

Training batches cannot be matched with their respective vendors based on VendorId if:

  • the projects export data captured from invoices into different external systems (because different vendor lists are used)
  • VendorId is different for different business units

To associate a training batch with its vendor, other unique vendor identifiers can be used, such as VATID and IBAN. A training batch stores the VATID and IBAN values of its vendor. When a training batch is imported to a new batch, the program automatically searches for a vendor with the same VATID or IBAN value. If it finds an entry in the Vendors data set where at least one of these values matches, that vendor will be assigned to the batch.

Importing training batches into a new project

  1. Open a new project in the Project Setup Station of ABBYY FlexiCapture Distributed or the Administrator Station of ABBYY FlexiCapture Standalone.
  2. On the main menu, click Project>Training>Import Training Batches….
  3. Depending on how the training batches should be matched with their vendors, either select or clear the Preserve Vendor ID option in the Import Training Batches dialog box.
  4. Specify the path to the project that contains the training batches to be imported.
  5. If the project from which the training batches are being imported (the old project) has more than one Document Definition, select the Document Definition from which you want to import training batches.
  6. If a project to which batches are being exported (the new project) has more than one Document Definition, select the Document Definition for which you want to import training batches.

    Note: After it has been imported, a training batch can be assigned to a Document Definition manually. To do this, right-click the training batch and click Change Document Definition… on the shortcut menu. You can also change the vendor of a training batch by clicking Change Vendor… on the shortcut menu.

As a result, the training batches will be imported into the new project, together with

  • the FlexiLayout variants, which are the result of training
  • the sample images on which the program was trained. You will be able to do some additional training of imported FlexiLayout variants by adding new invoice images to those imported into the new project.

Note: If you attempt to import a training batch for a vendor for a which a training batch already exists in the new project, the program will select the best training batch: the documents in each batch will be matched with the trained FlexiLayout variant from the given batch and the batch with the greater number of correctly detected fields will win.


Rules

ABBYY FlexiCapture for Invoices uses rules to validate invoices automatically. Upon validation, an invoice is assigned a status and a list of issued errors and warnings is generated, enabling the operator to decide whether the invoice needs to be verified manually. While verifying an invoice in the document editor, the operator sees the list of errors detected by the rules and can use this list to navigate and review the defective fields.

ABBYY FlexiCapture for Invoices already includes pre-defined validation rules for invoices commonly used in different countries (See "Available rules"). Users can modify or remove existing rules and create new custom rules.

Some features specific to rules in ABBYY FlexiCapture for Invoices

For detailed instructions on working with rules in ABBYY FlexiCapture See "Rules"

Rules in ABBYY FlexiCapture for Invoices have the following specific features:

Collapsed Rules may affect the status of a document

To make a rule affect the status of a document, the rule must have a corresponding prefix in its name. Rules with names prefixed with (Exception) or (Rejected) will change the status of an invoice to Exception or Rejected if the rule detects errors in that invoice.

Collapsed Rules may be applied to a certain set of countries

To implement this feature, use conditions for applying rules. For more information, See "Rules".

Rules detect the country of an invoice based on the country of the business unit to which the invoice has been issued.

If a certain kind of validation is relevant only to particular countries, only the relevant countries should be specified in the rule conditions. Conversely, if invoices from all countries must be validated except one particular country, be sure to exclude that country in the rule conditions (the condition must apply the rule only if the value of the country of the business unit is not the same as the name of the excepted country).

Using the list of rules

View the complete list of rules

To view all the rules set up for the project:

  1. From the Document Definition menu, select Document Definition Properties….
  2. In the dialog box that opens, click the Rules tab.
  3. In the Show rules list, select owned by European Invoice and its children.

To view all the rules that will be applied to invoices from a particular country, say, Germany use the filter.

Collapsed Setting up a filter
  1. In the Document Definition Properties dialog box, click the Rules tab and then click the Filter… button.
  2. In the Filter dialog box, select If this condition is true and then select a desired field in Field in the Invoice Layout\BU\Country field, which defines the country of the business unit.
  3. Select the Overlaps with set condition from the drop-down list.
  4. Use the Select… button to specify the required countries in the field below. A Field Value dialog box will open, where you need to select the countries for which to display the rules. For Germany, for example, select DE.
  5. Click OK.

Now the list will display all the rules that will be applied for invoices of the country that you specified in the filter.

Note that the condition that triggers a rule is shown in the Apply rule column.

Collapsed Finding a rule in the list

You can use the following filtering criteria to find a rule:

  • rule name
  • the name of a field referred to by the rule
  • the condition that triggers the rule
  1. In the Document Definition Properties dialog box, click the Rules tab and then click the Filter… button.
  2. In the Filter dialog box, you can select the name of the rule you want to find (the names are listed alphabetically), select a field referred to by the rule, or specify the condition that triggers the rule.

For detailed instructions on using the filter, See "Rules".

Creating new rules

To create a new rule:

  1. From the Document Definition menu, select Document Definition Properties….
  2. In the dialog box that opens, click the Rules tab.
  3. In the Show rules list, select owned by European Invoice and its children.
  4. Select the field where the rule will be stored. This may affect the operation of some rules (e.g. how its error messages are generated). If you have doubts as to which field to choose, select the topmost node, i.e. Invoice Layout.
  5. Click New Rule….
  6. In the dialog box that opens select one of the standard rule types, or select Script, which allows you to write your own rule.

Note: For detailed information about each rule type and for instructions on how to create them, See "Rules".

The instructions below are specific to creating rules in ABBYY FlexiCapture for Invoices.

  7. After you have selected a rule type, you need to specify:
    1. Name

    The name of the rule should reflect the kind of validation performed by the rule. Errors issued by the rule will be displayed to the operator in the following format:

    Rule name: Error message.

    If you want the rule to affect the status of invoices, prefix its name with (Exception) or (Rejected), depending on the status you want assigned to an invoice if the rule detects an error.

    2. Severity

    Severity flags help the operator to review the errors and warnings and decide which invoices should be verified manually.

    Data export can also be made dependent on the severity flag. For example, you can:

    • export documents that have no rule errors but have rule warnings to your working database
    • export documents that have rule errors to an exceptions folder
    • prohibit the export of document with errors altogether

    For detailed instructions on setting up export based on the severity of a rule, See "Rules".

    3. Whether the rule should be enabled after it is created (Rule is enabled option)
  8. In this step you need to specify the condition for applying the rule. Typically, this condition is defined by the value of the Invoice Layout\BU\Country field.

By default, the rule will always be applied (Apply rule=always). If you want the rule to be applied only under certain conditions:

  1. From the Apply rule list, select on condition.
  2. Click Edit… to modify the condition.
  3. Select the field whose value will trigger the rule (Invoice Layout\BU\Country).
  4. Specify the condition and, if applicable, allowed and prohibited values.

Example 1. The rule must be applied to German invoices.

Select the Belongs to set condition, click Add, and add the value DE.

Example 2. The rules must be applied to all invoices except German and French invoices.

Select the Does not belong to set, condition, click Add, and add the values DE, FR.

  9. In this step, you need to set up the rule. For detailed information, See "Rules".

Disabling a rule

To disable a previously set up rule:

  1. Find the rule in the list (see above).
  2. Clear the box in the Enabled column next to this rule. Alternatively, double-click the rule to open its Properties dialog box and clear the Enabled rule option on the General tab.

If you are certain that you will no longer need a rule, you can delete it. To delete a rule:

  1. Find the rule in the list (see above).
  2. Select the rule by clicking its name in the list and then click Delete.


Capturing additional invoice fields

By default, ABBYY FlexiCapture for Invoices only captures a specific set of fields (referred to as "default fields"). See "Список полей определения документа для обработки инвойсов".

There are several ways to extract additional fields:

  • enable the extraction of additional predefined fields in the Document Definition
  • train the program to extract arbitrary fields from invoices from every vendor
  • create a FlexiLayout for extracting arbitrary fields from invoices from every vendor, or on any invoice regardless of vendor.
Field | Description
Default fields | These are the major invoice fields that contain its number, date, vendor, receiving business unit, etc. (See "Список полей определения документа для обработки инвойсов"). Capturing data from the main fields cannot be disabled, however these fields can be hidden. Hidden fields are not visible to operators during verification.
Additional fields | These are typical invoice fields, like PO Number and Line Items. These fields are not extracted by default, but may be enabled by users.
Custom fields | ABBYY FlexiCapture for Invoices does not include descriptions of some unusual invoice fields. You can set up the program to extract these fields.

You can change the way any field is extracted using training. See "Training ABBYY FlexiCapture for Invoices"


Additional fields

You can manage additional fields in the Document Definition Properties dialog box. From the main menu of the Document Definition editor, select Document Definition>Document Definition Properties…. In the dialog box that opens, click the Invoice Settings tab and then click the Edit… button in the Additional Fields and Features group.

The Invoice Features dialog box will open, which offers additional invoice processing options. Each option may involve one or more invoice fields and their associated rules.

List of additional fields in the Invoice Features dialog box:

  • Due Date;
  • Delivery Date;
  • Purchaser Name;
  • Purchase order matching;
  • Line items extraction (использование должно быть разрешено вашей лицензией ).

Each option in the dialog box is supplied with a description that lists the fields from which to capture data.

To enable an option, put a check in the box next to its name.

To enable the Purchase order matching option, you additionally need to connect to a database storing your purchase orders. See "Purchase Order Matching"

The names of the fields linked to disabled options are shown in gray. In the data form that is displayed in the Document Definition editor, these fields are also shown in gray. These fields won't be displayed during verification in the document editor. When you open the properties of a gray field, a message will be displayed saying Field is disabled by its feature.

Rules that are linked to disabled options will also be disabled in the list of rules of the Document Definition.

Once you enable an option, its linked fields and rules are enabled.


Custom fields

ABBYY FlexiCapture for Invoices lets you extract invoice fields for which no predefined data types are available, and change the way any field is extracted.

There are several ways to do this:

Method | Description
Develop an additional FlexiLayout | An additional FlexiLayout will let you extract fields for which no predefined data types are available and change the way standard fields are extracted from invoices from any vendor.
Develop a FlexiLayout for a specific vendor | Vendor-specific FlexiLayouts let you extract fields for which no predefined data types are available and change the way standard fields are extracted from invoices from a specific vendor.
Train a Document Definition for a specific vendor | Creating a Document Definition for invoices from a specific vendor will let you train the program to extract fields from that vendor's invoices.

You can choose to take advantage of any one of these solutions, or combine them. For example, you can add a new field to an additional Document Definition that is applied to invoices from all vendors, and then train the program to recognize the new field on invoices from some vendors and create a FlexiLayout variant for the other vendors.

You can find more information about how multiple FlexiLayouts are applied in See "How FlexiLayout matching results are merged".

Creating an additional FlexiLayout

Any FlexiLayout created in ABBYY FlexiLayout Studio can be used as an additional FlexiLayout in ABBYY FlexiCapture for Invoices

To extract a new type of field, create a new block with a unique name in a FlexiLayout and define the logic for finding it on images. When this FlexiLayout is added to a Document Definition, a new field with the same name as the new block in the FlexiLayout will be created.

If the name of the block in the additional FlexiLayout is the same as the name of a standard field in the Document Definition, the additional FlexiLayout will be used to extract the block.

To add a FlexiLayout to a Document Definition:

  1. Click Document Definitions… on the Project menu.
  2. In the dialog box that opens, select a Document Definition and click the Edit… button.
  3. Click Document Definition Properties… on the Document Definition menu.
  4. Click the FlexiLayout tab in the dialog box that opens.
  5. Click the Load… button in the Additional FlexiLayout options group and specify the path to the FlexiLayout file in the dialog box that opens (FlexiLayout files have the *.afl extension).

ABBYY FlexiLayout Studio has several features for developing additional FlexiLayouts for invoices:

  • You can find out the IDs of the vendor and the business unit of an invoice and reference a Data Set in a Document Definition.
  • You can specify the positions of elements relative to fields that may be detected when the main FlexiLayout is applied.
  • You can parametrize the FlexiLayout using an XML file, which lets you store and edit complex lists of keywords and other FlexiLayout parameters without editing the FlexiLayout or the Document Definition.

For more information on the special features of ABBYY FlexiLayout Studio, See "Special features of ABBYY FlexiLayout Studio for creating additional FlexiLayouts".

Developing a FlexiLayout variant for a specific vendor

ABBYY FlexiCapture for Invoices lets you use a separate FlexiLayout variant when processing invoices from a specific vendor. This additional FlexiLayout variant can be created automatically using training. If you are unsatisfied with the variant, you can open it in ABBYY FlexiLayout Studio and manually change the field search algorithm.

Collapsed Creating a FlexiLayout variant

  1. To extract data from a new field, you will first have to create this field in the Document Definition.

    Create a field named MyField:

    In the Document Definition editor, click Edit>Create Field and then click one of the field types. In the field properties dialog box that opens, type the name of the field (MyField).

If you need to change the search algorithm for a standard field, skip this step.

  2. Create a training batch:

    • Add at least one invoice from the vendor to a batch.
    • Recognize it.
    • Make sure the program determines the vendor correctly. If it doesn't, specify the right vendor manually.
    • Click the [image] button. A training batch will be created.
  3. Click the [image] button on the toolbar to switch to the training batch view. The training batch contains sample batches from a specific vendor which will be used to train the FlexiLayout for this vendor. Next, decide if you want to use automatic training or edit the FlexiLayout variant manually:
    • If you want to use automatic training, add a few more sample invoices to the batch (we recommend adding at least 3) and specify the field regions. For more information about training on sample batches See "Training by users with project setup permissions"
    • If you want to begin editing the FlexiLayout variant manually right away, skip the next step and go to step 5.

  4. Start training:

    • Click Training>Train on the Project menu,

    or

    • right-click the batch and then click Train on the shortcut menu.

    A FlexiLayout variant will be created automatically.

  5. Create an ABBYY FlexiLayout Studio project that contains images from the training batch and the FlexiLayout that was created during training. To export the FlexiLayout to ABBYY FlexiLayout Studio:
    • Click Training>Export Trained FlexiLayout… on the Project menu,

    or

    • right-click the batch and select Export Trained FlexiLayout… from the shortcut menu of the batch.

    Save the project.

  6. Open the project you created in ABBYY FlexiLayout Studio.

    Blocks in the FlexiLayout correspond to fields in the Document Definition. All of the blocks have the [image] icon. This icon indicates that the algorithm for extracting a block has been generated automatically.

    Making changes to the FlexiLayout will cause the program to consider these blocks to have been created manually. When the Document Definition is applied, the program has to choose the FlexiLayout from which it will pick the field's region (for details, See "How FlexiLayout matching results are merged"). Manually created blocks always have higher priority.

Because of this, you need to remove blocks the search algorithm for which you don't want to change. These blocks will still be present in the main FlexiLayout, so they will still be extracted when the Document Definition is applied. So if, for example, you want to specify a custom algorithm for the InvoiceDate and MyField blocks, leave these blocks in the FlexiLayout and delete all of the other blocks.

Note: You cannot create new fields in a Document Definition for a specific vendor by simply adding a new block to a FlexiLayout. Blocks in a FlexiLayout variant that do not correspond to a field in a document definition will cause an error when processing invoices from the vendor. If you need to extract a new field from invoices from a specific vendor, create the field in the Document Definition first (see step 1).

  7. Specify the search algorithm that will be used to find the blocks using the standard tools of ABBYY FlexiLayout Studio.

  8. Click Build on the FlexiLayout menu to build the FlexiLayout and then export it to an *.afl file by clicking Export... on the File menu.

  9. In ABBYY FlexiCapture, click the [image] Training Batches button on the toolbar to switch to the testing batch view. Then, import the FlexiLayout:

  • Click Training>Import FlexiLayout… on the Project menu,

or

  • Right-click the batch and click Import FlexiLayout… on the shortcut menu.

  • Specify the path to the *.afl file you created in the previous step.

    10. Recognize sample invoices from the vendor.

      This operation's log will contain messages about which field regions were selected from the FlexiLayout variant for the vendor.

    11. Check the processed documents by opening them in an editor.

    Training a Document Definition for a specific vendor

    To create a new field:

    1. In the Document Definition editor, select Edit>Create Field (or right-click in the list of fields). Select a field type.
    2. In the Properties dialog box, enter a name for the additional field and select the Can have region option.

    Note: For detailed instructions on configuring fields of various types, see See "Field properties"

    A new field with the name you specified will appear on the data form and in the list of fields.

    Now you need to train the program to capture data from this field. You need to provide the program with at least three sample images that contain this field. Note that training is done separately for each vendor. See "Training during invoice capture " for more information.


You are here: ABBYY FlexiCapture for Invoices > How to set up an invoice capture project > Capturing additional invoice fields > Special features of ABBYY FlexiLayout Studio for creating additional FlexiLayouts

Special features of ABBYY FlexiLayout Studio for creating additional FlexiLayouts

ABBYY FlexiLayout Studio has several special features for developing additional FlexiLayouts for invoice projects:

  • You can specify the locations of elements relative to the regions of fields that were detected when the main FlexiLayout from the invoice project was applied.
  • Identifiers of vendors and business units can be used in requests to the Data Set of the Document Definition.
  • Lists of keywords and other parameters of a FlexiLayout can be exported to an XML file, allowing you to edit them without editing the FlexiLayout or the Document Definition.
Collapsed How to create an additional FlexiLayout
  1. Open a batch with recognized invoices in ABBYY FlexiCapture.
  2. Create a new project in ABBYY FlexiLayout Studio and then in ABBYY FlexiCapture click Create New FLS Project… on the Options menu.

Note: This command is only available for ABBYY FlexiCapture projects that are stored on your computer. If you are using the Distributed version of ABBYY FlexiCapture and the project is stored on the server, you will first have to download it to your computer by clicking Export Project… on the Project menu.

Note: The suffix of the ABBYY FlexiLayout studio project indicates the version of the Document Definition at the time of the project's creation.

The ABBYY FlexiLayout Studio project you just created contains all of the documents from the ABBYY FlexiCapture batch, and the regions of fields detected during recognition in ABBYY FlexiCapture in the form of a reference layout.

The SearchElements tree contains the following nodes:

CommonBlockRegions

This node contains elements that correspond to all fields of the Document Definition. The coordinates of all regions of blocks that were detected when FlexiLayouts were applied to each document in ABBYY FlexiCapture are saved in the ABBYY FlexiLayout Studio project. By default, regions with these coordinates will be assigned to elements that have the same name as fields in the Document Definition. This allows them to be used to specify relative locations of elements and for creating new elements.

CustomSearchElements

This node contains sample elements. They are disabled by default in order to avoid interference when the FlexiLayout is applied.

DataSetRequestSample
An example of a request to the Data Set of vendors and business units that are stored in the Document Definition. This Data Set includes identifiers of vendors and business units.

XMLSettingsSample
An example of how to get a list of keywords from the KeywordsCustom.xml. This file can be found in the Settings subfolder of the ABBYY FlexiLayout Studio project folder.

Collapsed How to add a field to an additional FlexiLayout

To add a field to an additional FlexiLayout, you will have to create a block for this field and specify its search element.

Fields in the Document Definition have to have unique names. This means that:

  • To describe the search logic for a field, you have to create a block with a unique name.
  • To change the search logic for a field that already exists in the Document Definition, you have to create a block with the same name.
Collapsed How to make requests to Data Sets from the Document Definition

You can find a sample request in the DataSetRequestSample element. This element is disabled by default.

Type | Description
NamedValue | A named value
Constructor |
NamedValue( String, String ) |
Methods |
String Name() | Returns the name of a named value
String Value() | Returns the value of a named value
NamedValueArray | An array of named values
Constructors |
NamedValueArray() |
NamedValueArray( NamedValue namedValue ) |
Methods |
Int Count() | Returns the total number of elements in the array.
NamedValue GetAt( Int index ) | Returns the element with the specified index number.
Void Add( NamedValue namedValue ) | Adds a named value to the array.
Void Add( NamedValueArray namedValueArray ) | Adds a named value array to a named value array.
Void InsertAt( Int index, NamedValue namedValue ) | Inserts the namedValue into the position index.
Void DeleteAll() | Deletes all elements in an array.
Void DeleteAt( Int index ) | Deletes an element in the position index.
Int FindByName( String name ) | Returns the position of the value named name.

Functions

Syntax:

  • The path to the Document Definition and the name of the Data Set will be used to access the Data Set when working with a FlexiLayout in ABBYY FlexiLayout studio.
  • After a compiled FlexiLayout is added to a Document Definition in ABBYY FlexiCapture, only its name will be used when accessing the Data Set.
  • connectionString format:

"dbtype=FCDataset;fcTemplate=path_to_Document_Definition;datasetName=name_of_Data_Set;" (parts of the path need to be separated by double backslashes "\\")

  • searchFields
    Array of names of columns from which values need to be retrieved.

  • searchCriteria
    Array of Column-Entry pairs, returns all values if empty.
    • If a request contains multiple values for one field, use the OR operator
    • If a request contains multiple values each of which corresponds to only one field, use the AND operator
    • If a request contains multiple values for one field and values for multiple fields, use the OR operator to disjunct multiple values for one field and the AND operator to conjunct values for various fields.
Definition | Description
Logic TestAccessToFCDataSet( String connectionString ) | Tests connection to the Data Set
Logic TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Tests search conditions for Data Set
StringArray FieldNamesOfFCDataset( String connectionString ) | Returns a list of all fields from the Data Set sorted in ascending order of their index numbers.
StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) | Returns a list of Data Set fields from the specified Data Set in ascending order of their index numbers. Should be used in conjunction with the RecordOfFCDataset function when there are complex columns.
Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Returns the amount of entries from the Data Set that is specified in the search conditions. Used for finding out how many entries may be returned using the RecordOfFCDataset function.
Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Prepares data for a query to the Data Set. This needs to be performed for every new set of search conditions before calling the RecordOfFCDataset function.
StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) | Returns an array of values from the entry with the number rowIndex from results returned by a query to the Data Set. The number of values is equal to the number of fields passed in searchFields (this includes the case of complex columns).
Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ); | Returns the quality of the string word. Accepts index numbers of fields. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.
Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | This function is used to specify search conditions for words for the Static Text function. When this function is called, existing search conditions are replaced with new ones. Accepts field index numbers. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.
Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | This function is used to specify search conditions using regular expressions for the CharString function. When this function is called, existing search conditions are replaced with new ones. Accepts field index numbers. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.

How to search for rows from a column from an external database on an image

  1. Use FieldNamesOfFCDataset to get a list of columns sorted in ascending order of their index numbers.
  2. Determine the index number of the column from which you need to find data.
  3. Create an array of conditions for filtering data from the Data Set.
  4. Pass the index numbers of the column and the filter conditions to SearchTextFromFCDataSet (or RegularExpressionFromFCDataSet, if you need to use regular expressions).

This code will be automatically generated when a recognized batch is exported from ABBYY FlexiCapture

How to search an image for entries from multiple columns of an external database

Since search parameters are replaced each time you call the SearchTextFromFCDataSet function, calling this function several times over is pointless. There is a workaround for this: you can get strings from an external database and pass them in the SearchText function. Calling this function adds the string to existing search parameters instead of replacing them.

To do so, complete the following steps:

  1. Create an array of names of columns from which you need to find data.
  2. Create an array of filter conditions for filtering data from the Data Set.
  3. Determine the amount of entries that will be returned using the RecordCountOfFCDataset function.
  4. Prepare query data using the PrepareRecordsetOfFCDataset function.
  5. Go through all records and get the array for each record using the RecordOfFCDataset method.
  6. Pass the value of each element in the array to the SearchText function.

Additional considerations when dealing with complex columns

  • The FieldNamesOfFCDataset function returns an array that will contain multiple occurrences of the name of the complex column. The number of occurrences will be the same as the number of column instances in an encoded external database.

Example: {VendorId, VATID, Name, Name, Name, City}. In this case the external database contains 3 columns for the one complex column Name in Data Set.

  • If SearchCriteria contains a condition for a field that corresponds to complex column (like in the example above), this condition will be used to check all of these column instances.
  • If searchFields contains a condition for a field that corresponds to complex column (like in the example above), the result will contain the array of values from each column instance.

For example, if for {VendorId, VATID, Name, Name, Name, City} you request

searchFields = { VATID, Name, Сity}, you will receive

{VATID_value, Name_valueInColumn1, Name_valueInColumn2, Name_valueInColumn3, City_value}

  • You can get a list of columns that will be returned by passing the searchFields array to the FieldNamesOfFCDataset function.
Collapsed How to make a request to an XML file that contains FlexiLayout settings

You can make requests to an XML file with FlexiLayout settings using two standard functions that are described in documentation for ABBYY FlexiLayout studio:

StringArray ReadFromXML(String filename, String xPathQuery)

String ReadSingleStringFromXML(String filename, String xPathQuery)

The XMLSettingsSample element contains sample code that retrieves lists of keywords from the KeywordsCustom.xml file. This file is located in the Settings subfolder of the ABBYY FlexiLayout Studio project folder.

This file has to be located in the ABBYY FlexiLayout Studio project folder subfolders if you want to use it when working on a FlexiLayout in ABBYY FlexiLayout studio. The path to this file is relative to the ABBYY FlexiLayout Studio project file.

If you load a compiled FlexiLayout to a Document Definition in ABBYY FlexiCapture and use it as an additional FlexiLayout, the XML file will be placed in the Templates folder and you will be able to edit it. When the FlexiLayout is applied, the program will manage access to this file automatically.


How FlexiLayout matching results are merged

This article describes the order in which FlexiLayouts are matched with documents and how field regions are selected.

ABBYY FlexiCapture for Invoices can use several types of FlexiLayout when matching the Document Definition:

  1. generic FlexiLayout, which is used to process all invoices and which, in turn, may include two types of FlexiLayout:
    1. main FlexiLayout, which is used to detect the standard invoice fields that already defined in the program. This FlexiLayout is provided together with ABBYY FlexiCapture for Invoices and cannot be modified by the user.
    2. additional FlexiLayout, which is used to detect user-defined fields and standard invoice fields whose detection algorithm has been changed by the user. This FlexiLayout is created by the user.
  2. FlexiLayout variant, which is used to process a specific variety of invoices, i.e. invoices from a specific vendor. This FlexiLayout can be used to detect any fields defined in the respective Document Definition. This FlexiLayout can be created by the user or by the program as a result of training ABBYY FlexiCapture for Invoices on invoices from a specific vendor.

After matching the Document Definition with an invoice, the program obtains a set of field regions, which come from the different FlexiLayouts included in the Document Definition.

1. Matching a generic FlexiLayout

  1. First, the program will match the main FlexiLayout, which is the principal part of the generic FlexiLayout.

Pre-recognition parameters

A document image is pre-recognized using the parameters specified in the Document Definition:

  • the languages to be used are specified on the Invoice Settings tab) of the Document Definition Properties dialog box (Countries and Languages
  • the pre-recognition mode (Very fast / Fast / Balanced / Full) on the FlexiLayout tab of the Document Definition Properties dialog box.

Results obtained by matching the main FlexiLayout

After matching the main FlexiLayout with an invoice, the program obtains:

  • the ID of the vendor and the ID of the business unit, if detected
  • the regions of the standard fields. (See "Список полей определения документа для обработки инвойсов" for details.)
  2. Next, the program will match the additional FlexiLayout, if it is available in the generic FlexiLayout.

Pre-recognition parameters

A document image is pre-recognized using the parameters (i.e. the languages and the pre-recognition mode to be used) specified in the FlexiLayout. We recommend specifying in the additional FlexiLayout the same pre-recognition parameters that are specified in the Document Definition, so that instead of pre-recognizing a document twice the program can use the pre-recognition result obtained at step A.

To process some unusual fields, you may want to specify in the additional FlexiLayout pre-recognition parameters that are different from those of the Document Definition, but this will slow down the processing.

Results obtained by matching the additional FlexiLayout

After matching the main FlexiLayout with the invoice, the program obtains the regions of all the fields defined in the additional FlexiLayout. These may be standard invoice fields whose detection algorithm had to be changed, or additional fields not defined in the main FlexiLayout.

  3. Next, the program generates the aggregate result of matching the generic FlexiLayout.

If the Document Definition includes an additional FlexiLayout, at this step the program will merge the results obtained by matching the main FlexiLayout and the results obtained by matching the additional FlexiLayout.

The fields are identified by their names. The result is a collection of unique fields derived from the main and the additional FlexiLayouts. If there are fields with identical names in the main and in the additional FlexiLayout, the program will use the field region obtained by matching the additional FlexiLayout.

This approach allows you to define new fields or to change the logic of capturing any of the standard invoice fields.

2. Matching a FlexiLayout variant

If after matching the generic FlexiLayout the program managed to detect the vendor (step A) and there is a FlexiLayout variant for this vendor, this variant will be matched at this step.

Pre-recognition parameters

The pre-recognition parameters from the Document Definition are used. These are the same pre-recognition parameters that were used when matching the main FlexiLayout included in the generic FlexiLayout. Therefore, no additional pre-recognition is required.

Results obtained by matching the FlexiLayout variant

After matching the FlexiLayout variant with the invoice, the program obtains the regions of all the fields defined in the FlexiLayout variant for this specific vendor. Note that if a FlexiLayout variant is obtained through training the program on a variety of invoices, it will include all the fields defined in the Document Definition. And if a FlexiLayout variant is created manually, only those fields should be left in the variant whose detection requires some actions specific to the given vendor.

3. Merging the results

At this step, the results obtained by matching the generic FlexiLayout are merged with the results obtained by matching the FlexiLayout variant.

If the FlexiLayout variant was obtained through training the program on a variety of invoices, it includes all the fields defined in the Document Definition. The Document Definition stores information about the fields whose regions had to be changed by the user during training, i.e. the fields that were detected poorly by the generic FlexiLayout. The program will rely on this information when deciding which field regions should be taken from the generic FlexiLayout and which regions should be taken from the FlexiLayout variant trained on invoices from this particular vendor.

Note: Regions of Amount fields are selected differently. When matching the generic FlexiLayout, the program will specify the level of confidence with which the regions of the Amount fields have been detected. If the regions are detected unreliably, the Total field will require verification. If there is a FlexiLayout variant trained on invoices from the given vendor, the regions of the Amount fields will be taken from the FlexiLayout variant if the generic FlexiLayout fails to detect these fields or detected them unreliably.

If the FlexiLayout variant has been created manually, the program will use the regions of all the fields included in the FlexiLayout variant. The regions of the other fields will be taken from the results obtained by matching the generic FlexiLayout.

Information about which FlexiLayout was used to detect the region of a filed is recorded in the recognition log.

Collapsed Example

Lets us consider some of the fields defined in the Document Definition.

Consider two standard invoice fields, InvoiceDate and InvoiceNumber, and two-user defined fields, CustomFieldA and CustomFieldB.

  • InvoiceDate and InvoiceNumber are standard fields and the detection algorithm for these fields is specified in the main FlexiLayout included in the generic FlexiLayout.
  • CustomFieldA and CustomFieldB are user-defined fields and the detection algorithms for these fields are specified in the additional FlexiLayout included in the generic FlexiLayout.

Suppose the operator is not satisfied with the quality of detection of the InvoiceDate and CustomFieldB fields on invoices from a specific vendor and trains the program on invoices from this vendor.

The field regions from invoices from this vendor will be merged as follows:

  • InvoiceNumber — This region will come from the results obtained with the main FlexiLayout
  • CustomFieldA — This region will come from the results obtained with the additional FlexiLayout
  • InvoiceDate and CustomFieldB — These regions will come from the results obtained with the FlexiLayout variant generated by training the program on invoices from this vendor.

In the case of invoices from other vendors, the field regions will be merged as follows:

  • InvoiceDate and InvoiceNumber — These regions will come from the results obtained with the main FlexiLayout.
  • CustomFieldA and CustomFieldB — These regions will come from the results obtained with the additional FlexiLayout.


Enabling additional program features for operators

The administrator may enable additional features for operators that will be processing invoices. Note that these additional features are always available to users with administrator permissions.

Training the program while processing invoices

If the quality of data capture is inferior, e.g. on invoices with unusual field positions, the operator can additionally train the program to capture data from such invoices.

To train the program to capture data from unusually positioned fields, the operator needs to indicate the correct position of the fields on the image and click the [image] button. Once the program has collected at least three images with such unusual field positions, it will learn to capture data from those locations. Data from all subsequent invoices will be captured using this knowledge. See "Training ABBYY FlexiCapture for Invoices" for more information.

By default, the training feature is enabled and is available to operators. To disable the training feature for operators:

  1. In the main window of the Document Definition editor, select Document Definition>Document Definition Properties….
  2. In the dialog box that opens click the Invoice Settings tab.
  3. Click the Edit… button next to the Additional Fields and Features group to open the Invoice Features dialog box.
  4. Clear the Training during invoice processing option.

To enable the training feature for operators (if it was disabled), select the Training during invoice processing option.

Modifying and adding vendor and business unit records

When setting up your invoice capture project, you connected vendor and business unit databases to the corresponding Data Sets of the project. These Data Sets specify the structure of data and store a copy of the data inside the project, periodically synchronizing them with your external database. See "Connecting vendor and business unit databases".

Invoice recognition starts with finding the vendor and the business unit. These field groups can be found on an image only if they are present in the Data Set. It is important that the program find the vendor and the business unit because these data are used to select the country of the invoice, which determines the tax rates used in finding the Amounts fields on the image and the choice of validation rules.

As a rule, all vendors and business units will be already included in the corresponding Data Sets. However, if you get an invoice from a new vendor which is not in the database, the group of Vendor fields will not be detected. Depending on the business process, adding the new vendor to the vendor database and synchronizing it with the Data Sets may take a long time, and the program will not be able to process invoices from that vendor until it finds the vendor in the Data Set.

A further example involves the change of address or account number of an existing vendor. Updating the vendor database and synchronizing it with the Data Set may take a long time, and the operator needs the up-to-date information to be able to process invoices.

To resolve the above issues, the administrator may enable the operators to add or modify records in the Data Sets. Changes will be made to the Data Sets stored in the project, not to the external vendor and business unit databases.

If an operator adds a new vendor to the Data Set, the program will be able to detect the Vendor group of fields on subsequent invoices from that vendor, just as if there was a record for the vendor in the external vendor database. However, the validation rules will detect that the vendor is missing in the external database and assign the Exception status to the invoice.

Next time the Data Set is synchronized with the external database, all vendors added by the operators will be replaced with the appropriate records from the database or removed from the Data Set. See "Updating Data Sets" for more about updating Data Sets.

By default, operators cannot add new records to Data Sets. To enable this feature for operators:

  1. In the main window of the Document Definition editor, select Document Definition>Document Definition Properties….
  2. In the dialog box that opens click the Data Sets tab.
  3. Select a Data Set from the list and click the Set Up… button.
  4. Enable the Operators can add records and/or Operators can edit records option.

If you do not want operators to add or edit Data Sets, make sure these options are disabled.


Использование более одного определения документа

You are here: ABBYY FlexiCapture for Invoices > How to set up an invoice capture project > Использование более одного определения документа

Using multiple Document Definitions

You can use several Document Definitions for processing invoices in an ABBYY FlexiCapture for Invoices project. This can be quite useful if you need to process several different types of invoices with different amounts and locations of fields within one project.

To get a new Document Definition, open the Document Definitions dialog box, select the existing European InvoiceDocument Definition and click the Duplicate button to duplicate it.

Important!

Для корректной работы определения документа должны быть разделены по типам пакета. Every batch must have only one Document Definition for invoices. For more information on batch types, see See "Batch types".


Редактирование настроек обработки инвойсов в XML

You are here: ABBYY FlexiCapture for Invoices > How to set up an invoice capture project > Редактирование настроек обработки инвойсов в XML

Editing invoice processing settings in XML files

Invoice processing settings can be exported to an XML file, edited, and imported back into the program, or used in another project.

Contents of an XML configuration file

An XML configuration file contains:

  • Keywords and other language- and country-specific settings enclosed in the following tags: <Countries> <Country>< /Countries> and <Languages> <Language></Languages>
  • Regular expressions for order numbers enclosed in the following tags: <OrderNumber><Value><RegularExpression></RegularExpression></Value></OrderNumber>;
  • A list of additional Document Definition features for processing invoices (seeSee "Additional fields" and See "Enabling additional program features for operators" for details) and their status (enabled/disabled) in the AdditionalFeatures tag.
  • A list of invoice recognition languages in the PrimaryLanguages tag.
  • Settings for the invoice status additional feature (see See "The status of documents in ABBYY FlexiCapture for Invoices projects" for details) in the DocumentStatus tag.

How to save current settings to an XML file

  1. In the Document Definition Editor, click Document Definition Properties… on the Document Definition menu.
  2. Click the Invoice Settings tab.
  3. Click the Export Settings… button.
  4. Save the file.

The resulting file can be edited in a text editor.

How to import settings from an XML configuration file

  1. In the Document Definition Editor, click Document Definition Properties… on the Document Definition menu.
  2. Click the Invoice Settings tab.
  3. Click the Export Settings… button.
  4. Open the file with invoice settings.

Important! If an XML file contains an error in a tag, contains an invalid value, or has an incorrect structure, a notification containing the number of the line with the error will be displayed when you import settings from this file. Any unknown file sections or parameters will be ignored.


Updating the Document Definition for invoices

ABBYY FlexiCapture for Invoices ships with a built-in Document Definition designed specifically for processing invoices. Each time a new version of ABBYY FlexiCapture for Invoices is released, the built-in Document Definition is also updated.

Users who created an invoice processing project in earlier versions of ABBYY FlexiCapture for Invoices may update their Document Definition for invoices, preserving all their custom settings (the appearance of the data form, custom fields, rules etc.) and benefiting from the improvements introduced in the newer version of ABBYY FlexiCapture for Invoices.

The following will be updated or added | The following will remain unchanged
Fields

The settings used for the main fields of the ABBYY FlexiCapture for Invoices Document Definition will be updated (see the list of fields).

Any new fields introduced in the new version of the ABBYY FlexiCapture for Invoices Document Definition will be added to the user's Document Definition.

If the user has created a new field in his own Document Definition and there is a rule with the same name in the new version of the ABBYY FlexiCapture for Invoices Document Definition, the update will be interrupted and an error message will be displayed. To continue with the update, the user needs to rename the conflicting field in the Document Definition.

The fields created by the user.

The settings used for the main fields of the ABBYY FlexiCapture for Invoices Document Definition (see the list of fields) if they have been changed by the user.

Rules

The settings used for the main rules of the ABBYY FlexiCapture for Invoices Document Definition will be updated (see the list of rules).

Any new rules introduced in the new version of the ABBYY FlexiCapture for Invoices Document Definition will be added to the user's Document Definition.

The rules created by the user. In the event of conflict of rule names: the conflicting rules created by the user will be automatically renamed (the suffix "_1" will be added to each conflicting name).

The user's scripts for all fields.

Data Sets | The standard and the user's Data Sets.
FlexiLayouts | The main FlexiLayout. | The additional FlexiLayout.
Invoice processing settings Any new keywords, tax rates, and country- and language-specific field formats will be added to the user's Document Definition.

The invoice processing features enabled by the user.

The countries and languages enabled by the user.

Any keywords, tax rates, and field formats specified by the user.

Event handlers | Any event handlers disabled in the user's Document Definition will be updated. | Any event handlers enabled in the user's Document Definition.
External assemblies | The standard assemblies included in the ABBYY FlexiCapture for Invoices Document Definition. | Any assemblies added by the user.

The export settings, the data form, and the localization of the Document Definition will remain unchanged.

How to update

  1. On the main menu, click Project> Document Definitions…. The Document Definitions dialog box will be displayed, where you can manage your Document Definitions.

Note: We recommend backing up your Document Definition before updating it. To create a back-up copy of a Document Definition, select it in the list and click Duplicate.

  2. To update a Document Definition, select it in the list and click Update.
  3. Click Publish to publish the changes.

If you want to discard the changes made by the update, click Discard Changes.

Possible errors and warnings

Your Document Definition will be updated even if error messages and warnings are displayed during the updating process. You can open, edit, and publish your updated Document Definition, or you can discard the changes made by the update.

If an error occurs when you update your Document Definition, the cause of the error will be indicated in the corresponding error message. The changes that cause the error will not be included in the updated Document Definition.

If you see error messages and warnings while updating your Document Definition, this means that some manual editing will be required. We do not recommend using a Document Definition that was updated with errors and warnings.


Specifications

This section contains information about the ABBYY FlexiCapture for Invoices project:

See "Supported countries and languages"

See "Список полей определения документа для обработки инвойсов"

See "Available rules"

See "Keywords"

See "Extended regular expressions"

See "Glossary "


Supported countries and languages

Supported countries:

  • Austria
  • Belgium
  • Czech Republic
  • France
  • Germany
  • Great Britain
  • Ireland
  • Italy
  • Netherlands
  • Poland
  • Spain
  • Switzerland

Supported languages:

  • Czech
  • English
  • German
  • Dutch
  • French
  • Italian
  • Polish
  • Spanish

Note: You can add more countries. For details, See "Country and language settings".


Captured fields

You are here: ABBYY FlexiCapture for Invoices > Specifications > Captured fields

Список полей определения документа для обработки инвойсов

Field group Field names
Business Unit
  • Business Unit ID
  • Street
  • Postal Code
  • City
  • Country
  • VATID
  • Name
Vendor
  • Vendor ID
  • VATID
  • National VAT
  • IBAN
  • Bank Code
  • Bank Account
  • Street
  • ZIP
  • City
  • Country
  • Name
Invoice Header Data
  • Invoice Type (Invoice/Credit Note)
  • Invoice Number
  • Invoice Date

  • Delivery Date*

  • Delivery Date Indicator*

  • Due Date*

  • Purchaser Name*
Amounts
  • Total
  • Currency
  • Reversed Charge
  • Summary
  • Taxes
  • Net Amount 0

  • Net Amount 1
  • Tax Rate 1
  • Tax Amount 1

  • Net Amount 2
  • Tax Rate 2
  • Tax Amount 2

  • Total Tax Amount
  • Total Net Amount
  • Additional Tax Groups
  • NetAmount
  • Tax Amount
  • Tax Rate
  • Additional Costs
  • Additional Cost 1
  • Additional Cost 2
  • Total Additional Cost

Purchase Order*
  • Order Number
  • Total
Line Items*
  • Order Number
  • Order Date
  • Position
  • Article Number
  • Article NumberBU
  • Material Number
  • Material NumberBU
  • Description
  • Quantity
  • Quantity Undelivered
  • Quantity Ordered
  • Unit of Measurement
  • Unit Price
  • Unit Price Denominator
  • Discount Percentage
  • Discount Value
  • Total Price Netto
  • VAT Percentage
  • VAT Value
  • VAT Code
  • Total Price Brutto
  • Currency
  • Delievery Date
  • Order Item Id

* marks additional fields which are not captured by default. See "Capturing additional invoice fields" for more information about additional fields.

Note: You can also train ABBYY FlexiCapture for Invoices to capture custom fields. See "Capturing additional invoice fields" for more information about training.


Detecting the main fields

This article describes how the main fields of an invoice are detected and captured.

The program starts processing an invoice by pre-recognizing its text in accordance with the Document Definition settings:

  • Pre-recognition mode (Very fast / Fast / Balanced / Full) determines the speed of pre-recognition and the quality of the text layer obtained as a result. To specify a pre-recognition mode, in the Document Definition Editor, click Document Definition > Document Definition Properties… > FlexiLayout.)
  • Pre-recognition languages are the languages to be used for pre-recognition. To specify pre-recognition languages, in the Document Definition Editor, click Document Definition > Document Definition Properties… > Invoice Settings, and then click Edit in the Countries and Languages group to select the required languages.

Once an invoice is pre-recognized, the program starts capturing its fields.

Collapsed Business unit and vendor

Once the program detects the business unit and the vendor on an invoice, it obtains:

  • the identifier of the corresponding business unit record in the BusinessUnits Data Set
  • the identifier of the corresponding vendor record in the Vendors Data Set

The program use the following to detect the vendor (or business unit):

  • the following fields of the record in the Data Set: IBAN, VATID, National VATID, Name, Street, City, ZIP
  • the settings of the Document Definition: IBAN, VATID, and National VATID formats and their corresponding keywords

For more about the columns in the BusinessUnits and Vendors Data Sets and how they are used, see See "Columns in the BusinessUnits Data Set" and See "Columns in the Vendors Data Set"

Company detection algorithm

  1. Looking for the unique company IDs

The fields that uniquely identify a company are:

  • VATID
  • National VATID
  • IBAN

ABBYY FlexiCapture for Invoices will first look for the company that fits the invoice in the Data Set, relying on the above fields. For this search to be successful, the corresponding columns of the company record in the Data Set must be completed, and their values must be present on the image.

The formats of VATID, National VATID, and IBAN are specified by means of regular expressions in the properties of the Document Definition (click Document Definition > Document Definition Properties… > Invoice Settings, click Edit in the Countries and Languages,select the required country in the Countries list, click Edit, and then click the Formats tab). The keywords are specified in the same dialog box on the Keywords tab.

For these fields to be detected, the program must find their exact matches on the image. You can use extended regular expressions to give the program some leeway and make allowances for possible recognition errors (See "Extended regular expressions").

The detected values of the VATID, National VATID, and IBAN fields are then normalized:

  • all letters are changed to upper case,
  • spaces and the following characters are removed: ., ,, —, /, \.

If, on the Formats tab, a regular expression is used to specify a letter prefix of a field value, the recognized prefix will be replaced by the primary prefix specified on the same tab.

For example, the identifier DE12345 may be recognized as OE12345, but normalization will replace the OE with the correct DE.

The program will use the VATID, National VATID, and IBAN fields detected on the image to query the Data Set. The values of the VATID, National VATID, and IBAN columns received from the Data Set are normalized in the same manner as the values of the fields detected on the image. Next, the values from the Data Set are matched against the values on the image (fuzzy matching is used) and the number of discrepancies is counted.

A company record from the Data Set is considered to be a reliable match for the company on the image, if:

  • at least two identifiers in the record are identical to those detected on the image, with no more than one discrepancy

    or

  • all the three identifiers of the record (VATID, National VATID, and IBAN ) are identical to those detected on the image, with no more than two discrepancies

If a reliable match is found, the search stops.

Otherwise, the program looks for the name and the address of the company, using as hypotheses the records it has retrieved from the Data Set.

  2. Looking for the company name and address

The program uses the records it retrieved from the Data set as hypotheses when looking for the name and address of the company.

If searching for the unique IDs the program gets a non-empty set of records from the Data Set, this set of records is used.

If the program fails to find the company name and address relying on this set of records or if this set of records is empty:

  • the VATID, National VATID, and IBAN fields have not been detected on the image

    or

  • the VATID, National VATID, and IBAN columns of the matching record in the Data Set have no values

the program will query the Data Set using the entire text of the page. As a result, the company records that best match the text on the page are returned and are then used as hypotheses.

The program will search the image for the Name field and the Street, ZIP, and City components of the address from each record serving as a hypothesis:

  1. The program looks for the Name and Street fields both as one string with 25% of errors allowed or as individual words (in the latter case, the clustering of words on the image is taken into account).
  2. The program looks for the ZIP and City fields as a single component, expecting both fields to be positioned on the same line.

The detected values of the Name, Street, ZIP, and City fields are compared with the values in the Data Set record and the number of discrepancies is counted.

The decision about which Data Set record best matches the image is made as follows:

  • The record is considered to be a reliable match if, besides the unique identifiers (VATID, National VATID, IBAN), the Name field and at least one address component (i.e. Street or the combination of ZIP and City) match the text on the image and there are no more than four discrepancies.
  • The record is considered to be an unreliable match if, besides the unique identifiers (VATID, National VATID, IBAN), all the address components match the text on the image, but the Name field does not match the image text.
  • If the Data Set record has no unique identifiers (VATID, National VATID, IBAN), or if they have not been detected on the image, the program will select as the reliable match the record with a matching Name and at least one matching address component (i.e. Street or the combination of ZIP and City), and there no more than eight discrepancies in total.

Otherwise the record with the highest number fields matching the values detected on the images is considered to be an unreliable match.

Results of detecting the vendor and business unit

The main results of detecting the vendor and business unit on the invoice are:

  • the identifier of the vendor record in the Vendors Data Set

  • the identifier of the business unit record in the BusinessUnits Data Set

Note: If the Vendors Data Set specifies that Id depends on BusinessUnitId (see See "Columns in the Vendors Data Set" for details), the result of vendor detection will contain the Id that corresponds to the BusinessUnitId.

A business unit may be detected unreliably. In this case, the document's registration parameter fc_Predefined:InvoiceIsVendorSuspicious (fc_Predefined:InvoiceIsBusinessUnitSuspicious) will be set to true.

The regions of the following fields may be found as a result of vendor and business unit detection:

For the vendor:

  • Name
  • VatID
  • NationalVatID
  • IBAN
  • Street
  • Zip
  • City

For the business unit:

  • Name
  • VatID
  • Street
  • Zip
  • City

Be examining the locations of these regions on the image you can see where exactly on the image the program has found the fields of the Vendor and Business Unit groups, which enabled it to detect the vendor and the business unit.

Note: If the IBAN field has no value in the Vendors Data Set, its region can be found by a separate bank details capture mechanism, based on its keywords and format. This can be done after the vendor has been detected.

Note: Search for any field region can be modified through training or by applying an additional FlexiLayout (See "Capturing additional invoice fields".) This will have no effect on vendor and business unit detection, but may affect the location of the regions of the fields in these groups after matching the Document Definition with the invoices.

An important result of detecting the vendor and business unit is that information about their respective countries is retrieved from the CountryCode field of the records found in the Data Set. This information is then used to select keywords and tax rates and to capture other invoice fields. It is also used as a condition for launching validation rules for the invoice.

How to change the way the program determines the vendor or business unit

The closer the Vendor and Business Unit in Data Set entries match the text extracted from the image, the more accurately the program is able to determine the Vendor and Business Unit.

First, the program has to identify data that corresponds to Data Set columns that are used for finding the company on the invoice in the external database. The external database and the Data Set have to be properly connected (See "Connecting vendor and business unit databases").

To compensate for possible variations of values of fields on the image:

  • Normalization of Data Set columns (See "Normalization of Values in Data Sets"),
  • "multiplied" values of columns in the Data Set (see "Complex columns in a Data Set").

Using pre-determined vendor and business unit values in conjunction with extracted values

The vendor or the business unit of the invoice's company can be determined in advanced based on the invoice's source (name of the scanning operator or the e-mail address of the message's sender).

You can specify the vendor and/or the business unit explicitly prior to automatic detection.

To do so, set the value of the documents registration parameter fc_Predefined:InvoicePredefinedVendorId (fc_Predefined:InvoicePredefinedBusinessUnitId) to the identifier (Id) of an entry in the Vendors or BusinessUnits Data Set.

Doing this does not prevent automatic detection of the vendor and/or the business unit from taking place. Thanks to this, in addition to the pre-determined vendor and/or business unit, you will get a confidence value (this value indicates how well the pre-determined values match values extracted from the image), as well as the regions of fields from the Vendor and/or Business Unit groups.

Collapsed Group of fields in the Invoice Header

InvoiceNumber, InvoiceDate

An invoice's header includes, among others, the InvoiceNumber and InvoiceDate fields.

These fields are detected using keywords that are specified in the language properties of the Document Definition. The vendor and the business unit are detected first, providing information about the countries of the vendor and business unit. The countries determine languages (languages that correspond to a country are specified in the Document Definition). The set of keywords for finding fields is taken from the countries of the vendor and the business unit.

You can change the way the program looks for regions of fields by editing keywords (See "Keywords") and by using training (See "Training ABBYY FlexiCapture for Invoices").

How does the program detect that document is an invoice?

ABBYY FlexiCapture determines whether a document is an invoice when applying the FlexiLayout.

The conditions listed below indicate that a document is an invoice. Not all of these conditions have to be met, but each one caries a certain weight.

  • InvoiceNumber and InvoiceDate fields were detected.
  • Keywords from the InvoiceIdentifiers Located element were detected (See "Keywords").
  • A vendor or a business unit was detected on the document.

A document can be identified as a Credit note if keywords from the CreditNoreKeyword element were detected on the image or if the document has a negative Total.

Collapsed The Amounts group of fields

ABBYY FlexiCapture for Invoices captures the following fields from an invoice:

  • Total
    The total sum of the invoice
  • Currency
    The currency of the invoice
  • The sum of the invoice prior to taxation (TotalNetto) and the amount of payable tax (TotalTax),
  • tax groups: tax rates and the corresponding sums (prior to taxation) and amounts of payable tax.

Information from the Document Definition is used to find sums and tax rates:

  • Rates of taxes payable in the vendor's country (you can specify these on the Tax Rates tab of a countrie's properties)
  • Keywords for tax rates (you can specify these in the properties of a tax rate).

ABBYY FlexiCapture for Invoices will search the image for three numbers that are located in the same row and are part of an expression that uses the tax rate. Keywords are used to filter false tax group hypothesis.

Keywords from the Document Definition's settings are used to find the Total, TotalNetto and TotalTax fields. The program will look for:

  • Numbers that occur 2 or 3 times in the same line or in the same column on the image in cases when no taxes have to be paid.
  • Numbers that are sums of the numbers located above them in the same column.
  • The largest (by absolute value) numbers located in the end of the document.

The program will search for the Currency field only if a Total field has been detected. Keywords from the properties of the country in the Document Definition will be used.

Fields from the Amounts group that could not be detected on the image will be calculated automatically, except for the Total field. This field must be detected on the image.

If fields from the total group were detected with a low degree of confidence and require verification, the Total field will also be marked as requiring verification. If the program fails to detect the total with a high degree of confidence, you can try to improve detection accuracy by training.

Collapsed The Purchase Order group of fields

ABBYY FlexiCapture for Invoices can extract all purchase order numbers and their corresponding sums from the invoice.

This feature is disabled by default (See "Purchase Order Matching").

To extract Purchase Order numbers, you will need a Data Set with a list of possible Purchase Order numbers and their sums (See "Columns in the PurchaseOrders Data Set").

The Purchase Order field can be extracted using:

  • a regular expression;
  • A data set containing possible purchase order numbers (see See "Columns in the PurchaseOrders Data Set").

If a data set with possible purchase order numbers is used, ABBYY FlexiCapture for Invoices will search images for numbers from this data set. It is best to have as few purchase order numbers as possible in the database, and there are several things you can do to decrease their amount:

  • Use the VendorId column of the Data Set. In this case the program will only use Purchase Order numbers from the invoice's vendor.
  • Filter out purchase orders for which an invoice has already been received and only add the numbers of purchase orders for which no invoice has been received yet to the data set.

The program will search the database for sums that correspond to detected Purchase Order numbers.

The program will also search the image for all Purchase Order numbers, including those that are in the invoice's line items.

Purchase orders are usually generated by the buyer's ERP system, so invoices billed to a specific Business Unit tend to be similar. It is usually possible to describe them using a regular expression.

If there is a regular expression for purchase order numbers, the program will detect all numbers that satisfy the expression on images. The regular expression can be specified in an XML configuration file using the following tags:

<OrderNumber>

<Value>

<RegularExpression></RegularExpression>

</Value>

</OrderNumber>

For more on XML configuration files, see See "Editing invoice processing settings in XML files"

Collapsed The Line Items group of fields

ABBYY FlexiCapture for Invoices can extract invoice line items from images.

Extraction of invoice line items is disabled by default (See "Additional fields").

For a list of fields which the program extracts automatically, See "Список полей определения документа для обработки инвойсов".

ABBYY FlexiCapture for Invoices first searches the image for a table. During this search, it uses the keywords for column titles which are specified for every language in the Document Definition's properties. Keywords for columns of invoice line items are also used for classifying items, i.e. for determining the type of each invoice line item column.

After this, the program uses information about detected columns and mathematical expressions to find invoice line items in the invoice's table.

Finally, the program searches invoice line items for fields from columns.

Training can be used to improve the quality of automatic line item extraction.


Columns in the BusinessUnits Data Set

This Data Set contains information about business units. It is used to automatically determine the business unit (the division of the company that received the invoice) and check information about the business unit against a database.

Name | Text | Description
Id | Text, no normalization | Required field. The program selects values from these fields when determining the Business Unit and identifier in an external database. Ids are not used for finding the business unit on the image. Unique key of the entry in the Data Set.
VATID | Text, normalization: Alphanumeric code | Optional field. The unique identifier assigned to a company for tax purposes. This field is used to detect business units on images and greatly affects detection.
Name | Text, normalization: Text | Optional field. The name of the business unit. This field is used to detect business units on images.
Street | Text, normalization: Text | Optional field. Part of the address of the business unit. This field is used to detect business units on images.
ZIP | Text, normalization: Alphanumeric code | Optional field. Part of the address of the business unit. This field is used to detect business units on images.
City | Text, normalization: Text | Optional field. Part of the address of the business unit. This field is used to detect business units on images.
CountryCode | Text, normalization: Alphanumeric code | Required field. Part of the address of the business unit. Used to find the business unit on the image. The program does not use the CountryCode when searching for the business unit. CountryCodes are ISO 3166-1 alpha-2 two-letter codes. This field is required because the program uses the country of the business unit to determine the way the FlexiLayout is applied to invoices and the way fields are checked.


Columns in the Vendors Data Set

This Data Set contains information about the vendors and is used to detect the issuer of an invoice and to check vendor details against a database.

Name | Type | Description
Id Text, without normalization

Required field. This is the result of detecting the vendor. It also serves to identify the vendor in an external information system. This field is not used for detecting the vendor on an invoice image.

Note: If the BusinessUnitId field is not used, the Id field is the unique key of the record in the Data Set.

BusinessUnitId Text, without normalization

Optional field. The identifier of the business unit of the company that received the invoice. This field is not used for detecting the vendor on an invoice image.

Note: If this field is specified, the Id field is not treated as unique and is deemed to be dependent on the BusinessUnitId field. The idea is that each business unit (BusinessUnitId) of a company has its own unique list of vendors (Id). The pair BusinessUnitId + Id is the unique key of the vendor's record in the Data Set.

VATID | Text, normalization: Alphanumeric code | Optional field. The unique identifier of the vendor for tax payment purposes. This field is used for detecting the vendor on an invoice image and greatly affects detection.
NationalVATID | Text, normalization: Alphanumeric code | Optional field. The unique national identifier of the vendor for tax payment purposes. This field is used for detecting the vendor on an invoice image and greatly affects detection.
IBAN | Text, normalization: Alphanumeric code | Optional field. The international bank account number of the vendor. This field is used for detecting the vendor on an invoice image and greatly affects detection. This field is used for checking the captured bank details of the vendor against the database.
BankAccount | Text, normalization: Alphanumeric code | Optional field. The bank account of the vendor. This field is not used for detecting the vendor on the invoice image. This field is used for checking the captured bank details of the vendor against the database.
BankCode | Text, normalization: Alphanumeric code | Optional field. The bank account of the vendor. This field is not used for detecting the vendor on the invoice image. This field is used for checking the captured bank details of the vendor against the database.
Name | Text, normalization: Text | Optional field. The name of the vendor. This field is used for detecting the vendor on the invoice image.
Street | Text, normalization: Text | Optional field. The street component of the vendor's address. This field is used for detecting the vendor on the invoice image
ZIP | Text, normalization: Alphanumeric code | Optional field. The postal code component of the vendor's address. This field is used for detecting the vendor on the invoice image.
City | Text, normalization: Text | Optional field. The city component of the vendor's address. This field is used for detecting the vendor on the invoice image.
CountryCode Text, normalization: Alphanumeric code

Required field. The country component of the vendor's address. This field is not used for detecting the vendor on the invoice image.

Note: This field contains the two-letter code of the country as specified in ISO 3166-1 alpha-2. This field must not be empty, as the vendor's country determines the rules of matching Document Definitions with invoices and checking captured fields.


Columns in the PurchaseOrders Data Set

This Data Set contains information about orders. It is used to capture order numbers and amounts from invoices and for matching invoices with their respective orders.

Name | Type | Description
PONumber | Text, without normalization | Required field. Order number. Used for detecting the order number on images.
Netto | Double, without normalization | Required field. The amount of the order. Used for detecting the amount of the order on images.
VendorId | Text, without normalization | Optional field. The ID of the vendor which corresponds to the order number. If the values of this column are specified, once the vendor is detected, the list of orders will be filtered and the program will work only with orders from this vendor's Data Set.
BUId | Text, without normalization | Опциональное поле. Идентификатор подразделения компании (Business Unit). Данное поле требуется определять, если одновременно происходит обработка инвойсов, выставленных разным подразделениям компании. При этом каждое подразделение компании может иметь свой список PO-номеров. Поле BUId используется для объединения в один Набор данных PO-номеров разных подразделений компании. В этом случае поля BUId и PONumber уникально идентифицируют заказ.


Columns in the PurchaseOrdersItems Data Set

This Data Set contains information about order items and is connected with the PurchaseOrders Data Set via the PONumber key (order number). This Data Set is used for displaying order items to a verification operator.

Name | Type | Description
PONumber | Text, without normalization | Required field. Order number. Connects order items with the corresponding records in the PurchaseOrders Data Set.
Article | Text, without normalization | Optional field. Order item code.
Description | Text, without normalization | Optional field. Order item description.
Quantity | Integer, without normalization | Optional field. Order item quantity.
UnitPrice | Double, without normalization | Optional field. Order item price.
Discount | Double, without normalization | Optional field. Order item discount.
TaxSum | Double, without normalization | Optional field. Order item tax amount.
TotalPriceNetto | Double, without normalization | Optional field. Order item amount before tax.
TotalPriceBrutto | Double, without normalization | Optional field. Order item amount.
ItemId | Text, without normalization | Уникальный идентификатор позиции заказа. Данное поле требуется определять, если при сопоставлении инвойса с заказом (PO Matching) каждой позиции инвойса необходимо сопоставить конкретную позицию заказа, в этом случае результатом сопоставления является значение поля ItemId, записанное в одно из полей позиции инвойса.
BUId | Text, without normalization | Опциональное поле. Идентификатор подразделения компании (Business Unit). Данное поле требуется определять, если одновременно происходит обработка инвойсов, выставленных разным подразделениям компании. При этом каждое подразделение компании может иметь свой список PO-номеров. Поле BUId используется для объединения в один Набор данных PO-номеров разных подразделений компании. В этом случае поля BUId и PONumber уникально идентифицируют заказ.


Available rules

Invoice validation rules

Any preconfigured rules can be disabled by the user in the properties of the Document Definition. It is also possible to create user-defined rules.

Field groups | Rule | Description | Effect on invoice status | Enabled by default
Business Unit | Information about business units must be added to database | This rule checks if a new business unit that was found on the image and was saved to the BU Data Set has been added to the database. | Rejected | Yes
 | Business Unit's address is required | This rule checks to make sure that the field BU\Street is not empty. | Rejected | Yes
 | Business Unit's name is required | This rule checks to make sure that the field BU\Name is not empty. | Rejected | Yes
 | Business Unit's VATID is required | This rule checks to make sure that the field BU\VATID is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected | Yes
 | Business Unit must be found in database | This rule checks if the business unit found on the invoice image is found in the BU Data Set. | Rejected | Yes
 | Business Unit's Country is required | This rule checks to make sure that the field BU\Country is not empty. | Rejected | No
 | Check tax rates on national invoices | Checks that the applied tax rates are correct for invoices from the same country. The possible tax rates and their validity periods are known for each country. | Rejected | Yes
 | Check tax rate field on international invoices | Checks that the applied tax rates are correct for international invoices. The possible tax rates and their validity periods are known for each country. | Exception | Yes
Vendor | Vendor address is required | This rule checks to make sure that the field Vendor\Street is not empty. | Rejected | Yes
 | Vendor name is required | This rule checks to make sure that the field Vendor\Name is not empty. | Rejected | Yes
 | Vendor VATID is required | This rule checks to make sure that the field Vendor\VATID is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected | Yes
 | Vendor must be found in database | This rule checks if the vendor that was found on the invoice image is also present in the Vendor Data Set. | Exception | Yes
 | Vendor details must be added to database | This rule checks if a new vendor that was found on the image and was saved to the vendor Data Set has been added to the database. | Exception | Yes
 | Vendor's bank details are required | This rule checks if IBAN, Bank code, and Bank Account correspond to values in the vendor Data Set. | No influence | Yes
 | Check vendor's bank details against database | Checks that the vendor's bank details detected on the invoice image are the same as the bank details in the Vendor Data Set. | No influence | Yes
Invoice Header Data | Invoice number is required | This rule checks to make sure that the field Invoice Number is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected | Yes
 | Invoice date is required | This rule checks to make sure that the field Invoice Date is not empty. | Rejected | Yes
 | Delivery date is required | This rule checks to make sure that the field Delivery Date is not empty. The rule has no effect if Delivery Date Indicator is set. | Rejected | No
 | Delivery date must not be earlier than Invoice date | The following check is performed: delivery date is within the interval Delivery Date <= Invoice Date. | Exception | No
 | Delivery date must not be earlier than a year ago | The following check is performed: delivery date is within the interval Today - 360 days <= Delivery Date | Exception | No
 | Check currency value | Проверяет, что валюта соответствует списку допустимых настройками проекта валют. | Rejected | Yes
Amounts | Total is a required field | This rule checks to make sure that the field Total is not empty. | Rejected | Yes
 | Currency is required | This rule checks to make sure that the field Currency is not empty. | Rejected | Yes
 | VAT rates check for national invoice | This rule checks to make sure that the VAT rates found on the invoice image correspond to the VAT rates of the country (according to the specified country setting). | Rejected | Yes
 | Tax Rate field must not be empty | If either Net Amount or Tax Amount is not empty, then the respective Tax Rate should not be empty. | Rejected | Yes
 | If tax rate is detected, pre-tax amount is required | This rule checks if for each found tax rate, the respective Net Amount and Tax Amount are not empty and also checks to make sure that Tax Amount = (Tax Rate/100) × Net Amount. * The rule is applied only to invoices from Germany. | Rejected | Yes
 | If tax rate is found, tax amount is required | This rule checks if for each found tax rate, the respective Tax Amount is not empty | Rejected | Yes
 | Total Tax is required field | This rule checks to make sure that the field Amounts\Total Tax Amount is not empty. * The rule is applied to invoices from all supported countries except Germany. | Rejected | Yes
 | Check Tax field | This rule checks if for each found tax rate, the respective Tax Amount is correct for respective NetAmount and TaxRate (that the arithmetic equality TaxAmount = NetAmount * TaxRate is true). | Exception | Yes
 | Check Total Tax field | The following check is performed: Total Tax Amount = Tax Amount 1 + Tax Amount 2. * The rule is applied to invoices from all supported countries except Germany. | Exception | Yes
 | Check Net Total field | The following check is done: Total Net Amount = Net Amount 0 + Net Amount 1 + Net Amount 2. If the Total Net Amount field is empty, this rule enters data into the field according to the calculations. | Exception | Yes
 | Check Total field if total tax amount is required | This rule checks that the sum of each found net amounts, tax amounts and additional costs is equal to Total. * The rule is applied to invoices from all countries, except Germany. | Exception | Yes
 | Check Total field if total tax amount is optional | This rule checks that the sum of each found net amounts, tax amounts and additional costs is equal to Total * The rule is applied to invoices from Germany. | Exception | Yes
 | Verify net total against order items | Checks the sum total of the values in the TotalPriceNetto coulmn of the LineItems table against the invoice amount prior to taxes (TotalNetAmount). | No influence | No
Purchase Order | Check against database of orders | Checks the value of the detected number (PONumber) and amount(Netto) of the order against the PurchaseOrders Data Set. | No influence | No
 | Collect matched order items (necessary for proper work of PO Matching at items level) | Cобирает список позиций заказа, которые уже сопоставлены позициям инвойса. Это необходимо, чтобы при ручном сопоставлении позиций показывать оператору список только еще не сопоставленных позиций заказа. | No influence | Yes
 | Check invoice line items count against order items count | Проверяет, что количество позиций в заказе равно количеству позиций инвойса, связанных с данным заказом. | No influence |
 | Check purchase order number and amount | Проверяет соответствие номера заказа и суммы, извлечённых с инвойса, с заказами в Наборе данных PurchaseOrders. | Rejected | Yes
 | Check if invoice line items are matched with unique order items | Проверяет, что несколько позиций инвойса не сопоставлены с одной и той же позицией заказа. | Rejected | No
Line Items | Check item amount | For each invoice item, checks that the following is true: Quantity * UnitPrice is the same as TotalPriceNetto for the item after DiscountPercentage is applied. | No influence | No
 | Match invoice line item with order item | This rule checks that each line item from an invoice has corresponding item in the PurchaseOrderItems Data Set. | Rejected | Yes
 | Check LineItems currency value | Проверяет, что валюта позиции соответствует списку допустимых настройками проекта валют. | Rejected | Да, при включении дополнительной возможности Извлечение позиций (See "Additional fields")

Service rules

These rules do not affect the status of a document and do not issue any messages to operators. They are required for the correct operation of the ABBYY FlexiCapture for Invoices Document Definition.

Any preconfigured rules can be disabled by the user at document definition properties. Also it is possible to create user-defined rules.

Field groups | Rule | Description | Enabled by default
Invoice Header Data | Detect invoice type | If Invoice Amount is negative or the words "Credit note" are found, the invoice type will be changed to Credit note. | Yes
 | Delivery Date field is empty or completed | This rule sets/clears the value of Delivery Date Indicator field depending on whether the Delivery Date field is filled or not (if Delivery Date is empty, then Delivery Date Indicator is not set). This rule has no effect if Delivery Date Indicator has been verified. | No
Amounts | Reversed Charge field is empty or completed | If the only found VAT rate is equal to 0, or the words "Reverse Charge" are found, the value of the Reversed Charge field will be set to Yes. | Yes
 | Detect national currency | This rule automatically enters data into the Currency field (if it is empty) in invoices from France, Great Britain, and Spain. | Yes
 | Complete Total Additional Cost field | Computers the total amount of additional costs. | Yes
 | Complete Tax Rate field if it is empty | Computes the value of the tax rate, if it is not found on the invoice image and provided that the other tax fields have been found. | Yes
 | Complete Total Tax field if it is optional | This rule automatically enters data into the Amounts\Total Tax Amount field for countries where this field is not obligatory. * The rule is applied only to invoices from Germany. | Yes
 | Complete Total Tax if only one tax rate is found | This rule automatically enters data into the Amounts\Total Tax Amount if there is only one tax on the invoice. | Yes
 | Get summary information for Amounts group | This rule enters data into the Amounts\Summary field based on the following values: Net0, Net1, Net2, Tax Amount 1, Tax Amount 2, Tax Rate 1, Tax Rate 2. Format: Sum (= Net0 + Net1 + Net2 + Tax Amount 1 + Tax Amount 2); and VAT rates which are found on the invoice. Example: 256; 0% | Yes
 | Copy currency from LineItems | If the Currency column of the Line Items table is not matched, the currency value will be copied into this table from the Currency field (the currency value bis indicated next to the Total field). | No
 | Separate currency from amount in <Field Name> field (for 15 fields) | This rule splits an amount and a currency and copies the currency to the Currency field if it is empty. | Yes


Keywords

Keywords for the Vendor / Business Unit and Invoice Header Data groups of fields

ABBYY FlexiCapture for Invoices uses keywords to search for fields on an image: if a keyword is detected, the program will look for a field in its vicinity. Common examples of keywords include field titles and captions.

For example, let us say an invoice contains the following text: Invoice Date: <value>. In this case "Invoice Date" will be the keyword used to find the InvoiceDate field.

Keywords can be specified using Located elements. Each Located element can only be attributed to one field in the Document Definition, but each field can have more than one Located element, each of which describes a separate model of the relationship between the keyword and the field on the invoice.

  • Keywords are specific to languages and countries. When a Document Definition is applied, the program takes keywords from the vendor's country, the business unit's country, and from the languages of these countries.
  • Normalization is applied to keywords.
    • tabs, spaces, line break characters and diacritical marks are ignored
    • letter case is ignored (the program makes no distinction between lower-case and upper-case letters)

      For example, for keyword purposes Tax point is the same as taxpoint.

  • The program allows for 2 or 3 recognition errors in keywords (depending on the element).

  • Sometimes a keyword appears in more than one language, for example Quantity/Anzahl. We recommend adding the whole keyword (Quantity/Anzahl) to both languages.
Field group | Located Elements | Description | Specified in the properties of
Vendor / Business Unit | Bank Account | Keywords for the Bank Account field | Country (the Keywords tab)
 | Banc Code | Keywords for the Bank Code field | Country (the Keywords tab)
 | IBAN | Keywords for the IBAN field | Country (the Keywords tab)
 | National VATID | Keywords for the National VATID field | Country (the Keywords tab)
 | Total | Keywords for the Total field | Country (the Keywords tab)
 | Total tax | Keywords for the Total tax field | Country (the Keywords tab)
 | VATID | Keywords for the VATID field | Country (the Keywords tab)
Invoice Header Data | PurchaserNameLabels | Different possible names of the PurchaserName field in the language. | Language
 | PurchaserNameFalseFieldPrefixes | Different possible names of fields that may be incorrectly identified as the PurchaserName field. We recommend specifying these only if you see specific cases. | Language
 | CreditNoteKeywords | Words in the language that may be used to identify the language as a Credit Note. | Language
 | InvoiceIdentifiers | Words which indicate that the document is an invoice. | Language
 | OrderNumberLabels | Possible names of the OrderNumber field in the language. | Language
 | InvoiceNumberExcludePreffixes | Words that are placed before numbers and may be omitted, such as “No.” | Language
 | InvoiceNumberExcludeSuffixes | Words that are placed after numbers and may be omitted. We recommend specifying these only if you see specific examples. | Language
 | InvoiceNumberWithDateLabels | Text that may precede an invoice's number, if that name is written in the same line as the date and they are separated by a slash or other character. Examples: Invoice Number / date 23061336 / 07.07.2013 Rechnungsnr./ -datum 23061336 / 07.07.2013 | Language
 | InvoiceNumberHighConfidenceLabels InvoiceNumberLowConfidenceLabels | The InvoiceNumberHighConfidenceLabels list contains fragments of text that unambiguously identify the field, such as “Invoice number" and "Document number". More ambiguous fragments of text such as "No." and "Bill" are listed in InvoiceNumberLowConfidenceLabels. | Language
 | DueDateLabels | Possible names of the DueDate field in the language. | Language
 | DeliveryDateLabels | Possible names of the DeliveryDate field in the language. | Language
 | InvoiceDateLabelsNearCity | Any fragment of text that may be used to separate the name of a city and the date if they are in the same line, such as a comma. | Language
 | InvoiceDateLabelsNearInvoiceNumber | Any fragment of text that may be used to separate the number of the invoice and the date if they are in the same line. | Language
 | InvoiceDateHighConfidenceLabels InvoiceDateLowConfidenceLabels | The InvoiceDateHighConfidenceLabels list contains fragments of text that unambiguously identify the field, such as “Invoice date" and "Document date". More ambiguous fragments of text such as "Tax Date" and "Tax Point" are listed in InvoiceDateLowConfidenceLabels. | Language

Keywords for the Amounts group of fields

ABBYY FlexiCapture is capable of determining when a word is part of a word combination. For example, if you add the keywords total and total netto, and the image contains total netto, it will be identified as total netto and not total.

  • The program allows for up to 3 recognition errors in keywords.
  • This limitation can lead to errors. For example, the program may mix up the words brutto and netto. To avoid these errors, if you add a value (such as total netto) to AmountTotalNettoLabels, add the corresponding value (such as total brutto) to AmountTotalLabels.
Field group | Located Elements | Description | Specified in the properties of
Amounts | AmountTotalHighConfidenceLabels AmountTotalLowConfidenceLabels | Подписи поля Total. Подписи, которые встречаются только у итоговой суммы инвойса, стоит помещать в группу HighConfidence. Подписи, которые могут быть встречены и у других сумм инвойса, — в LowConfindence. | Language
 | AmountTotalNettoLabels | The keyword that may be to the left or on the top of the Total Netto field | Language
 | AmountTotalTaxLabels | The keyword that may be to the left or on the top of the Total Tax field | Language, Country (the Keywords tab)
 | ReversedChargeKeywords | Words that can be used to indicate “Reversed Charge” in the language | Language
 | Tax Rates | Keywords for tax rates | Country (the Tax Rates tab)
 | Currency | Keywords or characters that indicate currencies. | Country (the Currency tab)

Note: It is usually a bad idea to add the same word to Total Netto and Total.

Keywords for the Line Items group of fields

Keywords are used to find table titles that contain invoice fields, and for finding specific columns in tables. Words that are frequently used in titles of columns that correspond to Located Elements work best in this capacity.
If the same word can be found in titles of different columns, we recommend adding it to the Located Elements of these columns. In this case the program will be able to tell the columns apart by the contents of cells in these columns.

If the program still fails to tell the columns apart, or if the word is used frequently in one column and infrequently in other columns, leave the word in the Located Element of the column where it is used the most frequently and remove it from the Located Elements of the other columns.

  • The program allows for up to 3 recognition errors in keywords.
  • Keywords cannot take up more than one line.
  • The contents of a column must be located directly beneath the title of the column.
  • Keywords on images must be surrounded by spaces, commas or periods. So Quantity/Anzahl is one keyword, and Quantity / Anzahl is two.

    If a keyword may be written in more than one way, add all of the different ways it can be written, for example Quantity/Anzahl, Quantity and Anzahl.

Field group | Located Elements | Description | Specified in the properties of
Line Items | LineItemsArticleNumberLabels | Keyword for the Article Number column | Language
LineItemsArticleNumberBULabels | Keyword for the Article Number BU column | Language
LineItemsCurrencyLabels | Keyword for the Currency column | Language
LineItemsDeliveryDateLabels | Keyword for the Delivery Date column | Language
LineItemsDescriptionLabels | Keyword for the Description column | Language
LineItemsDiscountAmountLabels | Keyword for the Discount Amount column | Language
LineItemsDiscountPercentageLabels | Keyword for the Discount Percentage column | Language
LineItemsMaterialNumberBULabels | Keyword for the Material Number BU column | Language
LineItemsMaterialNumberLabels | Keyword for the Material Number column | Language
LineItemsOrderDateLabels | Keyword for the Order Date column | Language
LineItemsOrderNumberLabels | Keyword for the Order Number column | Language
LineItemsPositionLabels | Keyword for the Position column | Language
LineItemsQuantityLabels | Keyword for the Quantity column | Language
LineItemsQuantityOrderedLabels | Keyword for the Quantity Ordered column | Language
LineItemsQuantityUndeliveredLabels | Keyword for the Quantity Undelivered column | Language
LineItemsSubtotalVariants | Зарезервировано, не используется. | Language
LineItemsTotalPriceBruttoLabels | Keyword for the Total Price Brutto column | Language
LineItemsTotalPriceNettoLabels | Keyword for the Total Price Netto column | Language
LineItemsUnitsOfMeasureLabels | Keyword for the Units of Measure column | Language
LineItemsUnitsOfMeasureVariants | Возможные значения полей в столбце Unit Of Measure | Language
LineItemsUnitPriceDenominatorLabels

Подписи в заголовке столбца, который используется как множитель для столбца Unit Price при вычислении равенства для позиции инвойса: Unit Price * Denominator * Quantity = Total Netto.

Например, если UnittPrice указано за одно изделие, а Quantity указывает число упаковок, то логическому столбцу UnitPriceDenoinator будет соответствовать столбец с количеством изделий в упаковке.

Language
LineItemsUnitPriceLabels | Keyword for the UnitPrice column | Language
LineItemsVATAmountLabels | Keyword for the VAT Amount column | Language
LineItemsVATCodeLabels | Keyword for the VAT Code column | Language
LineItemsVATPercentageLabels | Keyword for the VAT Percentage column | Language

Note: The quality of keyword detection depends on the quality of full-text recpgnition.

You can change the pre-recognition mode on the FlexiLayout tab of the Document Definition Properties dialog box. The higher the quality of pre-recognition, the more time it will take.


Extended regular expressions

Formats are specified by means of extended regular expressions.

Extended regular expressions include the following additions:

  1. Special brackets [% and %]. Characters inside the brackets are supplemented with popular OCR errors.

For example, [%S%] may allow S, $, and 5.

  2. Special words inside [%...%] for common character sets and OCR errors:
    1. LETTERS — Capital Latin letters and characters commonly recognized as capital Latin letters
    2. DIGITS — Digits and characters commonly recognized as digits
    3. LETERSANDDIGITS — Capital Latin letters, digits, and characters commonly recognized as capital Latin letters and digits

For example, [%DIGITS%]{9} specifies nine consecutive digits or common OCR errors for digits, e.g. "OI234Sb7B9".


Glossary

ABBYY FlexiCapture for Invoices

An ABBYY FlexiCapture component that captures data from invoices.

Additional FlexiLayout

An additional FlexiLayout used in conjunction with the main FlexiLayout to capture additional document fields.

Business unit

An invoiced legal entity.

Credit note

A "negative invoice" issued by a vendor and aimed at correcting the amount or quantity stated in the previously issued invoice. A credit note may be issued, for instance, in the case of undelivered, incomplete, damaged or incorrect goods, or if a buyer has been overcharged. A vendor can either repay the money to the buyer or credit it against future payments.

Database lookup

Comparing captured data against database records.

Document variant

Invoices with unusually located fields but belonging to the same class, e.g. invoices from the same vendor.

FlexiLayout variant

A FlexiLayout for a document variant that was either developed specifically for this document variant or was trained on this document variant. Used in conjunction with a generic FlexiLayout.

Generic FlexiLayout

The default FlexiLayout that is used to process all documents of a given type. For documents variants, FlexiLayout variants may be used.

Invoice

A document that lists goods that have been supplied, their quantity, price, characteristics (such as color, weight, etc.), shipment conditions, and details of the parties.

Invoice features

Additional invoice processing features, such as capture of additional fields and data checks performed on such fields.

Invoice line item

A line in an invoice that describes a product or service and states its price and quantity.

Keywords

Words which are associated with certain invoice fields and which may be used to detect invoice fields. Different languages and countries may have different keywords.

Located element

A FlexiLayout element that is used for locating invoice fields.

Main FlexiLayout

A FlexiLayout that is used to capture the main fields of a document.

Normalization

Converting differently formatted but essentially identical values to a "normal" format for subsequent comparisons. For example, you can set up the program to ignore spaces and letter case so that it treats "Invoice Number" and "invoicenumber" as one and the same value.

Purchase order

An official offer to buy goods or services that states the kinds of goods and services, their quantity, and agreed price.

Purchase order matching

A feature in ABBYY FlexiCapture for Invoices that helps operators to verify invoices by comparing them with their respective purchase orders.

Status

The status assigned to an invoice after applying the validation rules to the captured data. One of the following three statuses may be assigned

  • Valid — Means that the invoice complies with all requirements and can be exported to a data processing system.
  • Rejected — Means that the invoice does not comply with all requirements.
  • Exception — Means that the invoice complies with all requirements but still cannot be treated as "Valid" for some reason. Exceptions require special handling by a data processing system.

Training batch

A batch of documents used for training and testing a Document Definition for a specific document variant. Training a Document Definition on a training batch creates a FlexiLayout variant. See also document batch, document variant, FlexiLayout variant.

Training [a Document Definition]

A feature in ABBYY FlexiCapture for Invoices that allows users to train the program to capture data from specific kinds of invoices. Training improves the quality of data capture and can be done either when setting up the program or while processing invoices.

Vendor

A legal entity or a physical person that sells goods or services. Vendors issue invoices for their goods and services. Data from invoices can be captured by means of ABBYY FlexiCapture for Invoices.


Appendix

Using scripts in ABBYY FlexiCapture
Designing machine-readable forms
Hot keys
FormReader 6.5 and FlexiCapture rules compared
Supported recognition languages
Fonts for correct rendering of characters
Supported text types
Supported barcode types
Supported graphic formats
Export file formats
Alphabet used in regular expressions
Technologies provided by other companies


Using scripts in ABBYY FlexiCapture

This section describes how to use scripts for customizing processing stages and the stations interface in ABBYY FlexiCapture.

Supported scripting languages

ABBYY FlexiCapture supports the following scripting languages: C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact and VBScript.

Specifics of scripts written in .Net languages

Specifics of usage

In VBScript it is mandatory to use the keyword "Me" when passing a NULL value (the alternative of "this" in JScript), while in .Net languages the NULL value is passed as an ordinary parameter.

For each script, access permissions for all its parameters are originally known. Access permissions determine the subset of methods that are available from scripts. When addressing the object methods, permissions for returned objects are always inherited from the source object (exceptions from this rule are described in comments to the corresponding methods).

Note: Script objects cannot be used after completion of the script because of indeterminate object behavior.

Note: For debugging scripts written in ABBYY FlexiCapture script editor, the MessageBox method can be used.

Custom functions

The script editor allows users to create their own functions and procedures and then to call them from the code of scripts.

Custom functions and procedures should be written to the global module, which can be accessed from the Script Editor. For this, from the drop-down list on the toolbar of the script editor, select an available global module: Rule Global Script Module, Export Global Script Module, Events or NonInteractiveProcessor.

All functions within one module must be written in the same language. The core code of a script can be written in a language different from that used in the corresponding global module.

Global functions written in JScript®, JScript.Compact and VBScript scripting languages can be called from scripts also written in one of these languages. For example, from the code of a rule written in VBScript you can call a function contained in the global module that is written in JScript.

Global functions written in .Net languages can be called from scripts which are written in one of .Net languages (C#.Net, VisualBasic.Net or JScript.Net).

To call a function from its global module, a corresponding prefix (Rules, Export, Events or NonInteractiveProcessor) must be used. For example, the function DoSomething from the Rule Global Script Module module must be called as follows: Rules.DoSomething ().

Note: For scripts written in .Net languages, functions from global modules are called by their names without using prefixes.

Script execution timeout

The default timeouts are 30 seconds for export and 10 seconds for other scripts.

To change the default timeouts, specify the following value in the registry:

HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller\ScriptSupport\DefaultScriptTimeout

The value of a timeout in the registry is specified in milliseconds. If a script takes longer to execute than the specified timeout, it will be terminated and an error message will be returned "Script execution timeout". If the script is a part of import, recognition or export task, a similar error message will be recorded in the log.

Important! Script execution timeout applies for scripts written in JScript and VBScript only.

Important! To change timeouts for scripts executed under the NetworkService, you need to modify the registry branch for the corresponding user profile.

Object model

The object model is compatible with scripts created in earlier versions of ABBYY FlexiCapture.

Read more about the object model


Specifics of scripts written in .Net languages

This section describes specifics of scripts written in .Net languages.

  • Additional keywords are not used to access object members. For example, in rules written in .Net languages the context of the rule is passed as a parameter with the name "Context".
  • .Net assemblies should be compiled using Microsoft .Net Framework 3.5 (or earlier). You can specify a desired .Net Framework version in the properties of your Visual Studio project..
  • It is possible to add an external assembly that can be used in scripts and global modules. Both standard and compiled user assemblies can be used. All classes of the added assemblies will be available in scripts and global modules. See External Assemblies for details.
  • Once the script is compiled, a compiled script body is stored in the same location where the script is defined. Thus .Net script can occupy more space than other scripts.
  • All FlexiCapture objects are defined as COM-objects, so functioning of .Net scripts can be slowed down when addressing object fields frequently because of managed-unmanaged transitions.
  • FlexiCapture objects do not support multithreading.
  • For debugging .Net scripts, the System.Diagnostics.Debugger.Break method is used.
  • When debugging .Net scripts, you also need a *.pdb file with debugging information. This file can be very large and we do not recommend storing it in the project together with your scripts. However, when debugging a .Net script, you must specify that the script should be compiled using certain debugging information.
    If you use Microsoft Visual Studio 2010, you can attach to the process where the .Net code is executed.
  • FlexiCapture script objects are stored in the ControllerInterop.dll and ShellInterop.dll assemblies and belong to the ABBYY.FlexiCapture and ABBYY.FlexiCapture.ClientUI namespaces, accordingly. The assemblies are located in the root folder of the program.
  • All ABBYY FlexiCapture script objects are accessible under their own names from the ABBYY.FlexiCapture and ABBYY.FlexiCapture.ClientUI namespaces. For example:

    ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>

    ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;

  • The "Using" directives can be written in the beginning of the script body together with comments and empty strings. The same syntax as in the programming language is used (using for C#.Net, Import for JScript.Net and Imports for VisualBasic.Net). For example:

    using System.Drawing;

    Image img = Image.FromFile( @"D:\2.png" );

    FCTools.ShowMessage( img.VerticalResolution.ToString(), false );

    Note: You can use the using directive in the script editor, provided that the keyword using occurs before the first line of the executable code. For example:

    using ABBYY.FlexiCapture;

    using ABBYY.FlexiCapture.ClientUI;

  • In .Net scripts, functions from all global modules are called directly without using the name of the global module.
    Note: Classes defined in the Rule Global Script Module and in the Export Global Script Module must have different names. Otherwise, when creating an instance of class in the code of rule, an error will occur.
  • If you do not want to specify the value of an optional parameter of the function (for functions with optional parameters), you must pass System.null or System.Type.Missing instead.

Note: For scripts, that are executed noninteractively (that is by FlexiEx.exe process instad of FlexiCapture.exe), the Debug button is not displayed for the FlexiEx.exe process in the Checking for solution" window by default (for scripts, that contain a breakpoint). For the button to be displayed, click on the Action Center icon on your task bar and select Change Action Center settings > Problem reporting settings > Never check for solutions.


External assemblies

It is possible to use external assemblies in scripts and global modules. Both standard and compiled user assemblies can be used.

Adding external assemblies

An assembly can be added on the .Net References tab of the batch type properties, project properties or Document Definition properties. All classes of the added assemblies are available in scripts and global modules.
Assemblies added in batch type properties and Document Definition properties are available to a particular batch type or Document Definition respectively. Assemblies added in project properties are shared assemblies which are available to all batch types and Document Definitions of the given project. So if you need to use the same assembly for different batch types and Document Definitions, you can use a shared assembly. If a shared assembly must be updated, you need to update it in project properties only.
To add an assembly in project properties, do the following:

  1. On the .Net References of the project properties, click Add…
  2. In the Add Assembly dialog box that opens select the type: Standard assembly name or Attached file.
  3. Depending on the selected type either enter the standard assembly name or browse to an assembly file.

A shared assembly is added to newly created batch types automatically. To add a shared to Document Definitions and existing batch types, do the following:

  1. On the .Net References of batch type or Document Definition properties, click Add…
  2. In the Add Assembly dialog box that opens select Shared assembly.
  3. Select the assembly name from the Reference list.

    4. Note: You cannot add a shared assembly with a name which is similar to the name of an existing standard assembly.

Below is a sample code of the user assembly that contains a namespace, a class and a method of this class:

namespace TestNameSpace

{

public class Test

{

public void Show(string text)

{

// will show text by standard FlexiCapture means – static method void ShowMessage(string text, bool IsError) from static class FCTools ABBYY.FlexiCapture.FCTools.ShowMessage(text, false);

}

}

}

For classes and methods of an added assembly to be accessible to the event handler scripts, it must be added on the .Net References tab of the batch type properties (for a particular batch type) or project properties (for the Default batch type).

For the following scripts, external assemblies are added on the .Net References tab of the Document Definition properties:

  • script rule
  • autocorrection script
  • export script
  • user script
  • document assembly script
  • custom recognition script

The script using classes and methods from the external assembly must contain the following code:

TestNameSpace.Test test = new TestNameSpace.Test(); // creates an object of Test class

test.Show(“hello world”); // calls void Show() method from Test class

Debugging external assemblies

When debugging external assemblies, both the assembly file and a .pdb-file with symbolic information are required. Only assemblies with loaded .pbd files can be debugged. As pbd-files are rather large, it is better to disable loading symbolic information in the working project.

Registry keys that control the loading of symbolic information

You can use the following registry keys to specify whether .pdb-files should be loaded:

  • HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller\ScriptSupport\ [LoadSymbolsFromOriginalPath] - specifies whether to load pdb-files from the original folders of the assembly files (set the key value to "true" to load .pdb-files);
  • HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller\ScriptSupport\ [PDBSearchLocations] = <path to the folder with PDB-files> - sets the search paths for .pbd-files (paths must be listed separated by semicolons; the search result is a .pdb-file with symbolic information whose name coincides with an assembly name).

These keys are not created in the registry by default. If required, the administrator may add these keys into the registry of the user's operating system.

For the changes in the registry to take effect, you need to restart the program.

For debugging an assembly, connection to managed code must be used.


Object model

Specifics of the used object model are described below.

Working with collections

All collections in the object model support the following methods:

Name | Type | Access | Description
Count | int | Read only | The number of items in the collection
Item( index : int ) | ItemInterface | Read only | Retrieves an item of the collection with the given index. Enumeration begins with "0".

Note: Instead of using the method Item you can also address items of the collection using parentheses or square brackets depending on the selected language. In JScript, VBScript and Visual Basic.Net languages, parentheses are used. In C#.Net it is only possible to use square brackets. In JScript.Net both parentheses and square brackets can be used.

For example, Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello".

All collections can be used in "for each" and similar constructs.

Working with recurring fields and tables

All document fields except tables can be recurring.

In the document structure recurring fields are represented with a special prototype field which has a nonempty Items collection.

A prototype field has neither child items nor value. It is used only for storing the set of the field iterations. Child fields and/or field values can be attributes of the field instances only, which are available through the Items method of the IField object.

Tables always have the Rows collection (Rows is the synonym of Items). The Rows collection contains only those rows of the table whose cells can be accessed through the method Children of the rows.

Composing paths to fields

Field, HasField and IndexedItemValue methods of the IDocument object use paths to the fields on the form as their parameters. The formal way to represent the path with a BNF (Backus-Naur Form) is as follows:

<Path> ::= <Path_component> | <Path> "\" <Path_component>

<Path_component> ::= <Field_name> | <Field_name> "["<Field_iteration_number>"]"

Where Field_name indicates the names of the document fields as they are defined in Document Definition and Field_iteration_number is the iteration number of the recurring field (the row number for tables) beginning from "0".

The path can be full or relative. Full paths are constructed beginning with the name of the document section, while relative paths are constructed beginning with the name of the child item in the group.

For example, to address the third row of the column "Total" in the table "Table", which is located in the section "Section" you should write the following:

"Section\Table[2]\Total"

Such a full name can be constructed by means of the FullName method of the IField object.


Scripts for customizing processing stages

This section describes how to use scripts to create custom rules, to run an export, and to create event handlers in ABBYY FlexiCapture.

Types of scripts
Objects
Sample scripts


Types of scripts

In FlexiCapture you can create scripts of the following types:

Script rule

Autocorrection script

Export script

User script (custom action)

Document assembly script

Custom recognition script

Event handlers

Скрипт обновления набора данных
Скрипт валидации набора данных

To view sample scripts of the above types, please refer to the Sample scripts section.


Script rule

Rules based on scripts enable you to create complex custom algorithms for document validation and normalization.

The script rule is configured on the Rules tab of the Document Definition properties.

Parameters

Name | Type | Access | Description
Context | IRuleContext | According to the rule settings | The context of the rule

Procedures that you wish to use in more than one rule should be written to the global rule module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Rule Global Script Module. The global rule module can also be accessed from the Document Definition editor (Document Definition>Script Modules>Rule Script…).

Существует возможность получить доступ к записям кэшированного набора данных из скриптовых правил, например, для ручного создания правил проверки значений. Для этого выполните следующие действия:

  1. Произведите подключение к набору данных с помощью метода IRuleContext.DataSet.
  2. Создайте запрос с помощью метода IDataSet.CreateQuery.
  3. Добавьте одно или несколько условий методом IDataSetQuery.AddValue.
  4. Чтобы получить данные, соответствующие запросу, используйте метод IDataSet.GetRecords. Для получения количества записей, соответствующих запросу, в числовом значении используйте метод IDataSet.GetRecordsCount.
  5. Получить отдельные записи по их номеру можно с помощью метода IRecordset.GetRecord.

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also A rule set with the help of a script.


Autocorrection script

This script allows you to convert field values and run context-independent format checks.

The script is configured on the Data tab of the field properties dialog box.

Parameters

Name | Type | Access | Description
Value | IValue | Read/write | Field value

Note: If the Apply AutoCorrect only once after recognition option is selected, a format error message specified in IValue.ErrorMessage is not displayed because such errors can not be fixed.
Unless this option is selected, the script can run several times even within a stage.

Note: The script is launched when confirming a field in the Data Verification station. When confirming a field in the Web Data Verification station, the script is not launched.

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also Processing entered values.


Export script

This script allows you to customize export.

The script rule is configured on the Export Destinations tab of the Document Definition properties.

Parameters

Name | Type | Access | Description
Document | IDocument | Read only | The document to be exported
Processing | IProcessingCallback | Read only | The object for logging the information about processing

Note: Information on export results must be written to the Document.Action field.

Procedures that you wish to use in more than one export script be written to the global export module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Export Global Script Module. The global export module can also be accessed from the Document Definition editor (Document Definition>Script Modules>Export Script…).

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

For details on configuring export script, see Export described with a script.


User script (custom action)

This is a custom scripting rule triggered by the user when viewing a field during field verification or in the document editor.

The script is configured on the Custom Action tab of the field properties dialog box.

Parameters

Name | Type | Access | Description
Context | IRuleContext | According to the rule settings | The context of the rule

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also User Script.


Document assembly script

This script is used to determine whether the array of documents passed to the user can be merged into one document.

For this, assembly errors for the result document are generated. The condition of a successful assembly is as follows: two documents will be merged into one, if the result document contains no more assembly errors than any of the source documents.

The script is configured on the Assembly tab of the Document Definition properties. To open the script editor window, click the Edit Assembling Script… button under the Use custom assembling rules option.

This script is executed either automatically after recognition or it can be run manually to refresh the assembly (for this, select Tools > Refresh Assembly command).
In the first case the script will contain a number of assembly errors generated during the standard check.

Parameters

Name | Type | Access | Description
AssemblingErrors | IAssemblingErrors | Full control | Resultant assembly errors
Documents | IDocuments | Read only | A set of documents whose pages are combined

Note: For better optimization of the assembly process, it is recommended to avoid addressing documents internal fields. When addressing documents internal fields, the whole document is loaded which can cause a slowdown of the assembly process. If you need to address the document fields, it is preferable to use index fields when possible.

Note: The AssemblingErrors parameter of the script can contain different assembly errors depending on the way of getting this parameter:

  1. AssemblingErrors can be passed to the script as one of input parameters. In this case it will contain the error of the current check.
  2. One of input parameters of the script is a collection of documents for which the assembly script is launched. Each document has its own assembly errors, which can be retrived the following way: document.AssemblingErrors. In this case the AssemblingErrors parameter will contain errors of the last check carried out for the given document.

Procedures that you wish to use in more than one rule should be written to the global rule module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Rule Global Script Module. The global rule module can also be accessed from the Document Definition editor (Document Definition>Script Modules>Rule Script…).

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also Creating Document Definitions for multipage documents.


Custom recognition script

With this script you can define a custom recognition (or initialization) algorithm for fields which have regions.

The custom recognition script is configured on the Recognition tab of the field properties dialog box.

The script is launched when a field value is initialized from the results of the recognizer. The image area being recognized is passed to the script as an input parameter. The document layout is not initialized at the moment, so access to the document fields is denied (however access to registration and other parameters is allowed).

With this script you can specify which symbols are suspicious and must be verified (IsSuspicious and NeedVerification properties).

Parameters

Name | Type | Access | Description
FieldRegion | IFieldRegion | Read only. Internal* fields of batch documents and pages are unavailable. (Applies to all parents as well.) | The region to be recognized
Result IValue / ICheckmarkValue / ICheckmarkGroupValue Full control.
Access to the CharacterParams.NeedVerification flag is denied.
CharacterParams.IsSuspicious flag is available with read/write permissions. 		The resultant recognized value. Depending on the field type the received parameters can be of the following types:
  • IValue - for text fields
  • ICheckmarkValue - for checkmarks
  • ICheckmarkGroupValue - for checkmark groups

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

* - The internal field requires loading the object into memory.

See also Text field recognition options.


Скрипт обновления набора данных

Назначение

С помощью этого скрипта можно добавлять записи в набор данных.

Скрипт задается в диалоге настроек наборов данных. Для этого в выпадающем списке Источник выберите Скрипт и нажмите кнопку Правка... справа от окна отображения. Откроется редактор скрипта.

Parameters

Name | Type | Access | Description
Dataset | IDataSet | Read only | Dataset


Event Handlers

FlexiCapture lets you create handlers for events that affect batches, documents and fields.

Event handlers are stored in batch types and Document Definitions. You can find their settings on the Event Handlers tab of the Properties dialog of:

  • Batch Types (for specific batch types).
  • Projects (for all batch types in the project except for those for which event handlers have been set up in batch type properties).
  • Document Definitions (for documents of the current type).

Batch events

After batch created
Before batch delete
Before batch parameter change
After page added
Before page delete
After document created
Before document delete
Before pages move
After batch opened
Before batch close
Batch integrity check

Document events for batch types

These event handlers are set up in a batch's properties or in a batch type's properties.

Before document parameter change
After document state changed
After export completed
Before matching

Document event for the current batch type

These event handlers are set up in a Document Definition's properties.

Before document parameter change
After document state changed
After document rules are checked

Event handlers for fields can also be set up in a Document Definition's properties (see below).

Field events

Field verification request

Note: If the same event handler is set up for batch types and the current document type, the event handler for the document will be executed first, followed by the event handler for batch types.

Collapsed Storing procedures in global modules

We recommend adding procedures that you plan to use in sever event handlers to a global module. To do so, select Events from the drop-down list on the toolbar of the script editor.

Note: Global modules are not available for event handlers in the Document Definition editor.

Collapsed Adding external assemblies

If a script or a global module is using methods from an external assembly, you can add this external assembly on the .Net References tab of the properties dialog of an object (a batch type, a project or a Document Definition)


Batch created

What it does

The handler of this event is used when you need to do some manipulations on the batch, e.g., to save data to the batch registration parameters.

When it is launched

The script is launched upon adding a batch to the project.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read only. Document and page internal* fields are available. | A newly added batch

* - The internal field requires loading the object into memory.


Batch deleted

What it does

The handler of this event is used if you need to clear some data relating to the batch.

When it is launched

The script is launched prior to deleting the batch.

Note: Deleting a batch does not initiate the event of deleting batch documents and pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read only. Internal* fields of batch documents and pages are unavailable. | The batch being deleted

* - The internal field requires loading the object into memory.


Batch parameter change

What it does

The handler of this event can be used for formatting some of the batch properties.

Properties

  • Batch type (name of the batch type)
  • Batch name
  • Batch description
  • Value of the registration parameter
  • Batch priority (in form of a string). For the list of admissible values, see the description of the TProcessingPriority object.

When it is launched

The script is launched prior to changing a batch property.

Note: This script does not allow specifying a new value of the batch type.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read only. Internal* fields of batch documents and pages are unavailable. | The batch whose property is being changed
PropertyModification | IPropertyModificationInfo | Full control | Stores information on the property being changed. Allows substituting the set value.

* - The internal field requires loading the object into memory.


Batch structure change (page added/page deleted/document added/document deleted)

What it does

The handler of this event can be used if you need to do some manipulations on the batch, the document or the page depending on a new image. For example, to count the number of pages added to the batch to ensure that no pages are missing.

When it is launched

The script is launched upon adding pages (or documents) or prior to deleting them.

Note: Deleting a document does not initiate the event of deleting document pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Internal* fields of batch documents and pages are unavailable | The batch being manipulated
Document (or Page) | IDocument (or IPage) | External fields of the changed document (or page) can be modified. Access to the deleted document (or page) and other documents and pages of the batch is read-only. | The item being deleted (or added).

* - The internal field requires loading the object into memory.


Pages moved

Note: Pages can be moved during the document assembly as well.

What it does

The handler of this event can be used if you need to do some manipulation on the new document based on the source documents, for example, to save the merged registration parameters.

If one document is fully embedded into another one, then in the Pages array its pages will go in succession and in the same order as they go in the target document.

Note: After merging pages the layout of the target document can change.

When it is launched

The script is launched prior to moving pages from one document to another.

Parameters

Name | Type | Access | Description
Batch | IBatch | Internal* fields of batch documents and pages are unavailable | The batch
InsertionPosition | int | Read only | The position in the document where pages are inserted
Pages | IPages | Read only | The array of pages being moved
TargetDocument | IDocument | Full control | The target document pages are moved into

* - The internal field requires loading the object into memory.


Batch opened/closed

When it is launched

The script is launched upon opening or prior to closing the batch.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read only. Internal* fields of batch documents and pages are unavailable. | The batch

* - The internal field requires loading the object into memory.


Batch integrity check

What it does

Checks the batch structure. For example, you can check whether the batch contains obligatory documents or whether the number of documents specified on the control page coincides with the number of documents actually processed.

When it is launched

The script is launched prior to export (if the corresponding option is sellected in workflow settings) or by an explicit user command.

Parameters

Name | Type | Access | Description
CheckResults | IBatchCheckResults | Read only. Internal* fields of batch documents and pages are unavailable. | The object that provides access to the batch being checked. Also used to set the check results.

Note: In this script, the following methods are unavailable: HasField, Field, SaveAs, ExcludedFromDocumentImage, Page.Rect, Document.Children (to address document fields, the IndexedItemValue must be used).

* - The internal field requires loading the object into memory.


Document parameter changed

What it does

The handler of this event can be used for formatting some of document properties.

Document properties

  • Comment
  • Value of the registration parameter
  • ExternalID
  • Document priority (specified in form of a string). For the list of admissible values, see the description of the TProcessingPriority object.

When it is launched

The script is launched prior to changing a document property.

Parameters

Name | Type | Access | Description
Document | IDocument | Internal* fields of batch documents and pages are unavailable | The document
PropertyModification | IPropertyModificationInfo | Full control | Stores information on the property being changed

* - The internal field requires loading the object into memory.


Document state changed

What it does

At any moment the document state can be described with an array of flags. The event occurs every time when the state changes. A set of flags describing changes in the document state are passed to the event as input parameters.

Flags that determine the document state

  • Preprocessed
  • Analyzed
  • Recognized
  • HasErrors
  • Assembled
  • Verified
  • Exported
  • HasLayout

When it is launched

The script is launched on document export provided the document state has changed since it was read.

Parameters

Name | Type | Access | Description
Document | IDocument | Full control | The document
ChangedStates | IScriptBinaryAttributes <TStateType> | Read only | Stores information about changes of the document state


Export completed

Export results are passed to this script as input parameters.

When it launched

The script is launched after the export task is completed. If the Process whole batches option is selected for the Export stage, the task will contain all documents of the batch. If the option is deselected, the number of documents in the task can vary from one document to all documents of the batch. The script is launched irrespective of the export result (whether it succeeded or failed). This is the main difference of this script from the event "Document state changed".

If some export targets are omitted (as the document has been exported to those targets earlier), then for the corresponding export results, the value of the Applied flag will be false.

Parameters

Name | Type | Access | Description
ExportResults | IDocumentsExportResults | Read only. Internal* fields of batch documents and pages are unavailable. | Export results for all documents and all export targets
Processing | IProcesingCallback | Full control | The object for logging the information about processing

* - The internal field requires loading the object into memory.


Check Rules

You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Script that is run after rule checks

Script that is run after rule checks

What it does

The handler of this event is used after rule checks.

Parameters

Name | Type | Access | Description
Document | IDocument | Read/write | Represents the document.


Before matching

What it does

The handler of this event allows you to control what sections or Document Definitions will be matched on each subsequent page and specify the matching order.

With this script you can accelerate matching the Document Definition if sections to be matched are known in advance. For example:

  • it is known that only the first page of the batch may have the Document Definition "Contents";
  • it is known that the given page belongs to a particular section type;
  • the order of sections in the documents is known.

The script allows you to disable recognition of document after a Document Definition is matched. For this, set the IMatchingInfo.NeedRecognition parameter to false. It can be useful if field values are supposed to be entered manually.

It is also possible to mark the page as an annex page which does not need recognition. For this, it is necessary to specify an empty list of sections and set the IMatchingInfo.ForceMatch parameter to true.

When it is launched

The script is launched prior to matching sections on each subsequent page.

Parameters

Name | Type | Access | Description
Document | IDocument | Read only. Internal* fields of batch documents and pages are unavailable. | The document whose pages are being analyzed
Matching | IMatchingInfo | Full control | The object that specifies some of the matching parameters
PageIndex | int | Read only. Internal* fields of batch documents and pages are unavailable. | The index of the document page to be analyzed

* - The internal field requires loading the object into memory.

Note: It is also possible to specify Document Definitions and sections to be matched by using named registration parameters. For details, see Registration Parameters.


Field verification request

What it does

This script allows you to specify which fields will not be submitted to the context verification. Can be used to verify different fields at different processing stages.

The input parameters for the script are a field and a document.

When it is launched

The script is triggered for all fields before they are submitted to the context verification. For the fields which skip the context verification, the script is not executed.

Parameters

Name | Type | Access | Description
Field | IField | Read only | The field being checked
Document | IDocument | Read only | The document that contains the field
NeedVerification | IBoxedBoolean | Full control | Specifies whether to verify the field. If the value is set to "false", the field is not verified.


Objects

This section contains the description of objects used in scripts, their properties and methods.

Note: Some methods extend the functionality of methods available in the previous version. However, the old methods have been retained to ensure backward compatibility.
Names of such methods begin with the word [Obsolete] in square brackets.

IActionResult
IAssemblingError
IAssemblingErrors
IBatch
IBatchCheckResults
IBoxedBooleanValue
ICharacterParams
ICharactersParams
ICheckmarkGroupValue
ICheckmarkValue
IDocument
IDocumentDefinitionInfo
IDocumentDefinitionInfoArray
IDocumentExportResults
IDocuments
IDocumentsExportResults
IEditablePictureObject
IExportFieldsToRedact
IExportImageSavingOptions
IField
IFieldRegion
IFieldRegions
IFields
IFlexiCaptureTools
IMatchedSectionInfo
IMatchingInfo
IPage
IPageClassificationResult
IPages
IPictureObject
IPictureObjectsInfo
IPrincipal
IPrincipals
IProcessingCallback
IProject
IProperties
IProperty
IPropertyModificationInfo
IRect
IRects
IRuleContext
IRuleError
IRuleErrors
IScriptBinaryAttributes
IScriptDefinitionContext
ISectionDefinitionInfo
ISectionDefinitionInfoArray
IStageInfo
IUserAttachment
IUserAttachments
IValue
IVARIANTArray
TAssemlingErrorType
TExportFieldType
TExportType
TPageClassificationType
TPrincipalType
TProcessingPriority
TPropertyType
TRuleErrorType
TStateType


IActionResult

What it does

A special object that is used to describe whether the export (or a post-export event) of a particular document succeded.

Properties

Name | Type | Access | Description
Applied bool Read only Specifies whether the document has been exported to the target during the current export session. For the false value of the flag:
  • if the Succeeded flag value is true, it means that the document has exported to the target earlier;
  • if the Succeeded flag value is false, it means that the document is not suitable for export to this target (e.g. because of errors).
ErrorMessage | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | An error message
Name | string | Read only | The name of an export profile
Result | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Formal description of the operation result. In the event of export, a description of the path where the document was exported (for example, a path to the file).
Type | TExportType | Read only | The type of export profile (applies in Export completed script)
Succeeded | bool | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Specifies whether the operation succeeded


IAssemblingError

What it does

Represents a document assembly error.

Properties

Name | Type | Access | Description
Description | string | Read only | The description
Position | int | Read only | The position in the document
Type | TAssemblingErrorType | Read only | The type of an assembling error
SectionName | string | Read only | The name of a missing section (in case of the AET_ObligatoryItemOmitted error). For annex pages, the section name is empty.
Weight | string | Read only | The weight of an error


IAssemblingErrors

What it does

A collection of IAssemblingError objects.

Can be modified in the document assembly script only.

Methods

Definition | Description
AddCustomError( description : string, [optional] weight : int ) | Adds a custom assembling error.
AddRedundantPageError( int position, [optional] description ) | Adds an error concerning an extra page.
AddSectionOmittedError( int position, sectionName : string, [optional] description ) | Adds an error concerning a missing section.

Important! The AddCustomError method should be used with caution and only if there are no other suitable methods. As document assembly is fully determined by the number of errors, the error weight must be set correctly when adding such errors. And setting the weight correctly can cause difficulties.

It is recommended not to combine several standard errors in one CustomError that will produce one common error message.


IBatch

What it does

Represents the batch.

Methods

Important! For methods below permissions for changing batch structure are required. These methods can be called only from the batch processing script.

Definition | Description
CleanRecognitionResults( document : IDocument ) | Cleans recognition results of the document.
CreateDocumentFromPage( targetPosition : int, page : IPage ): IDocument | Retrieves a page from the document to create a new document from it.
CreatePageFromImage( page : IPictureObject, [optional] target : IDocument, [optional] position : int, [optional] sourceInfo : string ) : IPage | Creates a page from the IPictureObject object and returns the created page. If a target document is specified, the page is added to this document. To create a one-page document, specify "null" as a target document. If a position is specified, the page is added to the specified position of the document. Otherwise a one-page document is added to the specified position of the batch. The initial position corresponds to the "0" value, the end of the document or batch corresponds to "-1". If the "sourceInfo" parameter is specified it is written to the information of the page source. Otherwise, information about the page source is received from IPictureObject.
DeleteDocument( document : IDocument ) | Deletes the document.
DeletePage( page : IPage ) | Deletes the page.
MoveDocument( source : IDocument, targetPosition : int ) | Moves the document to a specified position in the batch.
MovePage( source : IDocument, target : IDocument, sourcePageIndex : int, int targetPageIndex : int ) | Moves the page with the index "sourcePageIndex" from the document "source" to the document "target" to the position "targetPageIndex".
[Obsolete] RegistrationProperty( name : string ) : string | Retrieves a registration parameter by the name. Retained for backward compatibility.

Properties

Name | Type | Access | Description
Attachments | IUserAttachments | Read only | User attachments
BatchTypeName | string | Read only | The name of the batch type
Comment | string | Read/write | The comment
CreatedBy | IPrincipal | Read only | The author of the newly created batch. For the Standalone version of ABBYY FlexiCapture, returns null.
Documents | IDocuments | Read only | Documents the batch consists of
Id | int | Read only | The batch identifier. The parameter is unique within the batch.
Name | string | Read/write | The name of the batch
Priority | TProcessingPriority | Read/write | The priority of the batch
Properties | IProperties | Read only | Named parameters of the batch
Project | IProject | Read only | The project containing the batch
[Obsolete] RegistrationProperties | IProperties | Read/write | Registration parameters of the batch. Retained for backward compatibility.


IBatchCheckResults

What it does

Represents the context of the batch integrity check event.

Properties

Name | Type | Access | Description
Batch | IBatch | Read only | The batch
CheckSucceeded | bool | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Specifies whether the check succeeded
ErrorMessage | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The error message


IBoxedBoolean

What it does

Passes in-out boolean values to scripts.

Properties

Name | Type | Access | Description
Value | bool | Read/write | The value


ICharacterParams

What it does

Stores information about character properties.

Methods

Definition | Description
SetRect( newRect : string, [optional] pageId : int ) | Sets a new rectangle of the character. The newRect parameter must be passed in the form of the string "[left, top, right, bottom]". The set rectangle must be completely inside the region of the field that contains the character. Note: The method is not available in the autocorrection script.

Properties

Name | Type | Access | Description
Confidence int Read only Confidence level for a batch type. Returns a value from 0 to 100.

Important! Using this property requires storing some additional data, which may increase the size of a document and additional disk space. By default, no additional data are saved and the property is disabled. For the correct operation of the property, set the registry key [HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Controller] “ForceSaveConfidenceLevel” = “true”. Instead of HKEY_CURRENT_USER, select the branch of the user account that will recognize documents.
IsSuspicious bool Read/write Specifies whether a character is certainly recognized. This flag is effective only in the custom recognition script.

Note: When the IsSuspicious property is assigned to a character by a recognition script, the program will check the field containing this character against the field verification threshold. If the percentage of characters with the IsSuspicious property in the field exceeds the specified threshold, the NeedVerification property will be added to the field.
NeedVerification bool Read/write

Specifies whether any additional verification is required for the character. The value of this flag determines whether the character will be highlighted in the document editor.

Note: When the NeedVerification property is assigned to a field by any script other than a recognition script, the field is automatically marked as sent to verification. The program checks the field verification threshold (see the note for the IsSuspicious property) prior to allocating the NeedVerification property.

To specify, whether the whole field (not particular characters) needs verification, use the NeedVerification property of the IField interface.
PageId | int | Read only | Identifies the page on which the rectangle of the character is located. Required for multi-page fields.
Rect | IRect | Read only | A rectangle that contains the character. If the rectangle is not specified, null is returned.
Symbol | string | Read/write | A character (a string consisting of one character).


ICharactersParams

What it does

An array of ICharacterParams objects.

Methods

Definition | Description
Add( value : Object, [optional] position : int ) | Inserts a new value element into the text in the specified position. If the position is not set, the value is added to the end of text. Note: The value parameter can be a character, a string, an ICharacterParams object or an ICharactersParams object. Thus characters or text can be copied from other fields with preserved layout and highlighting. If characters regions are larger than the region of a new field, they are not copied.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > ICheckmarkGroupValue

ICheckmarkGroupValue

What it does

A collection of ICheckmarkValue objects.


ICheckmarkValue

What it does

Represents a checkmark value.

Properties

Name | Type | Access | Description
Name | string | Read only | Checkmark name (field name in the Document Definition)
Value | bool | Read/write | Checkmark value
IsSuspicious | bool | Read/write | Whether a checkmark value is certainly recognized. By default all checkmark values are considered uncertain.
Rect | IRect | Read only | A rectangle of the checkmark


IDataSet

Represents a data set.

Methods

Definition | Description
CreateRecord () : IDataSetRecord | Creates a record that can be added to the data set later.
AddRecord ( dataSetRecord : IDataSetRecord ) | Adds the record to the data set.
CreateQuery () : IDataSetQuery | Creates a data set query object.
GetRecords (IDataSetQuery : query) : IRecordset | Gets records that satisfy query parameters from the data set.
GetRecordsCount (IDataSetQuery : query) : int | Gets the number of records from the data set that satisfy query parameters.


IDataSetQuery

Represents a data set query.

Methods

Definition | Description
AddValue ( column : string, value : object ) | Lets you add one or more conditions to the query by specifying a column's name and value.


IDataSetRecord

Represents a record from a data set.

Methods

Definition | Description
AddValue ( column : string, value : object ) | Adds a value to a data set record. The name and value of the column must be specified.
GetColumnName ( index : int ) : string | Gets the name of a column. Note: since a column can have multiple names, IDataSetRecord can include the name item multiple times with different values.
GetValue ( index : int ) : object | Gets the value of a field.

Properties

Name | Type | Access | Description
ColumnCount | Int | Read only | The amount of fields in a record


IDocument

What it does

Represents the document.

Methods

Definition | Description
CheckRules( ) | Checks all rules in the document. Write permissions for the document are required.
Field( name : string ) : IField Gets access to a document field by the full path to the field. Full paths are used.
Is an internal* field. Cannot be used in rules.
HasField( name : string ) : bool Checks whether a field with the specified path exists. Relative paths are used.
Is an internal* field. Cannot be used in rules.
IndexedItemValue( name : string ) : VARIANT | Retrieves the field value by the name or the path to the field. Available from external fields of documents and pages. Both a field name and a full path to the field can be used. Cannot be used in rules.
IndexedItemValues( name : string ) : IVARIANTArray | Retrieves a set of index values corresponding to a field in the Document Definition by the name or the path to the field. If a field is marked as an index field in the recurring section, the method returns all values of the field from all sections. Available from external fields of documents and pages. Both a field name and a full path to the field can be used. Cannot be used in rules.
Property( name : string ) : VARIANT Retrieves the value of a specified property by its name. The returned value can be in the form of a string, a number or time.

Properties names and returned values:
  • Exported - when the document was exported
  • ExportedBy - who exported the document
  • Created - when the document was created
  • CreatedBy - who created the document
  • Recognized - when the document was recognized
  • RecognizedBy - who recognized the document
  • Modified - when the document was modified last
  • ModifiedBy - who modified the document
  • TotalSymbolsCount - the total number of symbols
  • UncertainSymbolsCount - the total number of uncertain symbols
  • RecognizedSymbolsCount - the number of recognized symbols
  • Comment - the comment on the document
  • ProcessingErrors - document processing errors
  • ProcessingWarnings - document processing warnings
Repair( [optional] Object reserved ) : IDocument Updates the Document Definition to the latest version. When updating, all edited and verified data in the documents are preserved.
Updating the Document Definition may be required, for example, due to the changed export settings.
Note: The method is hidden, it is not displayed in Visual Studio.
SaveAs( filename : string, [optional] options : IExportImageSavingOptions ) Saves the image of a one-page or multi-page document. If no saving format is specified in the saving options, the image is saved in a *.tif file. This is an internal* field.
SaveAsStream( [optional ]options: IExportImageSavingOptions ) : byte[] Saves the document to a memory stream and returns it as a byte array (COM SafeArray).

Note: JScript and VBScript do not support iteration over this array.

Important! The Property method should not be confused with the Properties collection which contains document properties specified by the user.

Properties

Name | Type | Access | Description
Action | IActionResult | Read only | Is effective in export and post export scripts only.
AssemblingErrors | IAssemblingErrors | Read only | A collection of assembly errors. Access to the collection is always read-only.
Attachments | IUserAttachments | Read only | User attachments
Batch | IBatch | Read only | The batch. Irrespective of permissions of the script for the document, access to the batch is read-only and internal* fields of documents and pages are unavailable.
BatchName | string | Read only | The batch name.
Children | IFields | Read only | Child fields (document sections). Unlike the property Sections, section order corresponds to their order in Document Definition. Recurring sections are represented as one item and the instances are available through the Items method of that item. Is an internal* field. Cannot be used in rules.
Comment | string | Read/write | A comment of the document.
DefinitionName | string | Read only | The name of the Document Definition.
DocumentDefinition | IDocumentDefinitionInfo | Read only | Detailed information about the Document Definition which is matched on the document. For unprocessed and unrecognized documents, the property returns an empty string.
HasErrors | bool | Read only | Specifies whether the document has rule or format errors.
HasUnpreparedImages | bool | Read only | Specifies whether the document contains un-preprocessed pages.
HasWarnings | bool | Read only | Specifies whether the document has rule or format warnings.
MarkedNextStage | IStageInfo | Read only | Returns the IStageInfo object, i.e. the processing stage of the document. If the document is not marked up, the IStageInfo.StageName property is null.
Id | string | Read only | Document identifier (External Id).
Index | int | Read only | The index of the document in the batch.
IsAnalyzed | bool | Read only | Specifies whether the document is analyzed. The document is considered analyzed if all pages of the document are analyzed.
IsAssembled | bool | Read only | Specifies whether the document is assembled.
IsExcludedFromAutomaticAssembling | bool | Read/write | Checks if the document is included into automatic assembly.
IsExported | bool | Read only | Specifies whether the document is exported.
IsRecognized | bool | Read only | Specifies whether the document is recognized. The document is considered recognized if each page of the document is either recognized or this is an annex page.
IsVerified | bool | Read only | Specifies whether the document is verified.
Pages | IPages | Read only | Document pages.
Priority | TProcessingPriority | Read only | A priority of the document.
ProcessingErrors | string | Read only | Processing errors divided by line breaks.
ProcessingWarnings | string | Read only | Processing warnings divided by line breaks.
ProhibitedUserId | int | Read only | A task created from the document will not be available to the user with the given identifier. By default the value is "0" which means that the task is available to all users.
Properties | IProperties | Read only | Registration parameters of the document.
RecognizedSymbolsCount | int | Read only | The number of recognized symbols.
RuleErrors | IRuleErrors | Read only | A collection of document errors (format errors, rule errors, errors of merging double verification results). Available for open documents only.
Sections | IFields | Read only | A flat list of document sections. If there is a recurring section, the list contains all replications of the section. Sections in the list go in the same order as the first pages of the document sections. Sections without pages close the list. Is an internal* field. Cannot be used in rules.
StageInfo | IStageInfo | Read only | Information about the processing stage on the application server.
SymbolsForVerificationCount | int | Read only | The number of symbols that need verification.
TotalSymbolsCount | int | Read only | The total number of symbols.
UncertainSymbolsCount | int | Read only | The number of uncertain symbols.
[Obsolete]TemplateName | string | Read only | The name of the Document Definition. Retained for backward compatibility.
[Obsolete]RegistrationProperty( name : string ) | string | Read only | Retrieves a registration parameter by the name. Retained for backward compatibility.
[Obsolete]RegistrationProperties | IProperties | Read only | Registration parameters of the batch. Retained for backward compatibility.

* - The internal field requires loading the object into memory.


IDocumentDefinitionInfo

What it does

Contains detailed information about the Document Definition matched with the document.

Properties

Name | Type | Access | Description
Name | string | Read only | The name of the Document Definition.
SectionsInDefinition | ISectionDefinitionInfoArray | Read only | An array of sections in the Document Definition. Returns only included sections.
Version | int | Read only | The version of the Document Definition.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IDocumentDefinitionInfoArray

IDocumentDefinitionInfoArray

What it does

A collection of objects of type IDocumentDefinitionInfo.


IDocumentExportResults

Description

The object represents a set of export results of a document to different targets. This is a collection of the IActionResult objects which contain information about export for particular targets.

Properties

Name | Type | Access | Description
Document | IDocument | Read only | The document exported with the given results
ErrorMessage | string | Read only | The message that describes why the export failed
Succeeded | bool | Read only | Specifies whether the document export succeeded


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IDocuments

IDocuments

What it does

A collection of IDocument objects.


IDocumentsExportResults

What it does

A collection of IDocumentExportResults objects.

The object represents export results for a set of documents.


IEditablePictureObject

What it does

Represents a picture that can be edited in ABBYY FlexiCapture. The object is the extension of the IPictureObject interface.

Methods

Definition | Description
ConvertToBW( [optional] threshold : int ) | Converts the image to black-and-white. You can specify brightness threshold. Values above the threshold level will be considered white, those below the threshold level will be considered black. The brightness threshold can range from 0 to 255.
Crop( rect : string ) | Crops the image outside the specified rectangle.
CutOut( rect : string ) : IEditablePictureObject | Cuts a specified rectangle from the image and returns this rectangle.
Deskew( [optional] byLines : bool, [optional] byBlackSquares : bool, [optional] byText : bool ) | Deskews the image. Image skew can be corrected based on straight lines, black squares or text. By default, byText parameter is set to true.
Despeckle( [optional] garbageSize : int ) | Removes noise from black-and-white images. Speckles up to the size specified will be removed. If the garbageSize parameter is not specified, the size is detected automatically. Important! The method applies to black-and-white images only.
Erase( rectangle : string, [optional] red : int, [optional] green : int, [optional] blue : int ) | Erases an area on the image. You can specify the color to erase the area with. By default the black color is used.
FlipHorizontal() | Flips the image horizontally.
FlipVertical() | Flips the image vertically.
FreeScale( newWidth : int, newHeight : int, newResolution : int ) | Resizes the page according to the new values.
Invert( [optional] rectString : string ) | Inverts the image. You can specify a string with coordinates of the rectangle to be inverted.
Rotate( angle : int ) | Rotates the image clockwise to the given angle.
Scale( ratio : int ) | Stretches or compresses the image relative to the base size of 100%. The method applies to image pixel size only. Image physical size remains unchanged.

Note: The rect parameter which is passed to the CutOut and Crop methods is a string in the form of «[left, top, right, bottom]». To get this string you can either call the ToString method for any object of the IRect type, or use the FCTools::Rect method.


IExportFieldsToRedact

What it does

The list of fields to be redacted in the resulting image.

Methods

Definition | Description
Add( field : IField ) | Adds a field to the list.
Clean() | Clears the list.

Properties

Name | Type | Access | Description
PlainList | string | Read only | The list of fields to be redacted in the resulting image. Fields should be listed in a single line and separated by a semicolon.


IExportImageSavingOptions

What it does

Describes image saving options.

Methods

Definition Description
Add( value : Object, [optional] position : int ) Places the value element in the text at certain position. If no position is specified, the element is placed at the end of the text.
Note: The value parameter may be a character, a string, an ICharacterParams object, or an ICharactersParams object. Thus, you can copy character or text from other fields, preserving the markup and highlighting. If the regions of the characters you attempt to copy do not fit within the region of the new field, they will not be copied.
SetPdfDocumentInfo( type: TPdfDocumentInfoType, value: string ) The metadata of the PDF file.

TPdfDocumentInfoType – the types of the fields in the PDF document.

PDIT_Author = 0 – the author of the document

PDIT_Title = 1 – the title of the document

PDIT_Subject = 2 – the subject of the document

PDIT_KeyWords = 3 – the keywords of the document

Properties

Name | Type | Access | Description
AddProperFileExt | bool | Read/write | If the value is set to "true", the extension is set according to the image format during image saving. By default, the value is set to "false".
ColorType | string | Read/write | Color scheme. Admissible values: "FullColor", "GrayScale", "BlackAndWhite". Strings are not sensitive to the letter case.
FieldsToRedact | IExportFieldsToRedact | Read/write | The list of fields to be redacted in the resulting image.
Format | string | Read/write | Image saving format. Admissible expressions: "tif", "jpg", "bmp", "jpg2000", "pcx", "png", "pdf" plus "-s" (for PDF Searchable) and "-a" (for PDF/A) parameters. Strings are not sensitive to the letter case. Parameters begin with "-". They can be separated with spaces, tabs or no delimiters can be used. For example: "pdf -s", "pdf-a-s".
ImageCompressionType TImageCompressionType Read/write Sets a compression method for the exported image. By default, a compression method is selected automatically based on the format and colors.

Possible values:

  • ICT_Auto = -1. The type of compression is selected automatically.
  • IFC_Lzw = 1
  • IFC_Jpeg = 2
  • IFC_PackBits = 3
  • IFC_Png = 4
  • IFC_Uncompressed = 5
  • IFC_Zip = 6
  • IFC_CcittGroup4 = 7

Note: If an incompatible compression method is selected, the task will be placed in the Exceptions folder.
PdfTextSearchArea TPdfTextSearchAreaType Read/write Specifies where a text layer should be created for purposes of export to PDF-S.
Possible values:
  • PTSAT_AttachmentsOnly = 0 – Only in annexes
  • PTSAT_FormsOnly = 1 – Only in pages with a form
  • PTSAT_AllPages = 2 – In all pages
Quality | int | Read/write | Image quality for JPEG-compression (in percentage terms).
RecognitionLanguages string Read/write The list of languages that can be used for recognition of documents intended for export to searchable PDF. Consists of the internal names of languages in English divided by semicolons without spaces. If the list is empty, the language of the Document Definition applied to the document is used.
Is effective for annex pages only, as for pages with matched sections, only recognized fields have a text layer. As such fields are recognized in the recognition stage (not in the export stage), specifying this property does not influence recognition results for these fields.
Resolution | int | Read/write | Image resolution (measured in DPI).
ShouldOverwrite | bool | Read/write | Specifies if the existing file can be overwritten.
UseMRC bool Read/write Enables compression using Mixed Raster Content (MRC) technology when exporting to PDF or PDF/A. MRC provides better compression for some images than the commonly used JPEG method, for example, for good quality images with high-contrast text against a uniform background. Use MRC to reduce the size of the resulting PDF file.
Note: By default the flag is true when exporting to PDF and false when exporting to PDF/A.


IField

What it does

A document field. The type of the field can be determined from the property Type. For table fields the Rows and the Cell object methods are available.

Methods

Definition | Description
AddRegion( page : IPage, rect : string ) : IFieldRegion

Adds a region with the specified coordinates to the field. rect is a description of a rectangle formatted as [left,top,right,bottom]. This method requires write permissions for the IField object.

Code sample that copies the region of field 1 to field 2:
field2.AddRegion( field1.Regions[0].Page, field1.Regions[0].SurroundingRect.ToString() );

(missing or bad snippet) This method isn't available for tables. To delete a region, use the IFieldRegion.Delete() method.
Cell( columnName : string, rowNum : int ) : IField | Retrieves a table cell by the column name and the row number. Available for tables only. Unavailable in script rules.
CheckRules( ) | Checks rules for the given field and its children. Cannot be used in rules.
Field( Path : string) : IField | Search of the child element relative to the given element. Relative paths are used. Only synonyms of field names as they are defined in the rule settings can be used in rules.
HasField( parameter : string) : bool | Checks whether the field with the specified path exists. Relative paths are used. Only synonyms of field names as they are defined in the rule settings can be used in rules.
Suggest( VARIANT newSuggest ) Adds a prompt to the field.
Note: Can be in the form of value or string. Added values are written with four decimal places.
For exapmle, the method field.Suggest( "12.90" ) adds the prompt in the form of "12.90", while field.Suggest( 12.90 ) adds the prompt as 12.9000.

Properties

Name | Type | Access | Description
Caption | string | Read only | The name of the field displayed on the form. The value of this property may be the same as the Name property.
Children | IFields | Read only | Child items of the field (cells for tables). Unavailable in script rules.
FullName | string | Read only | A full field name relative to the document. A unique identifier of the field in the document. Can be used for search of document fields through the Field method. In script rules the returned value coincides with Name and is not unique.
HasRuleError | bool | Read/write | Specifies whether a rule warning or error is associated with the field. Note: In script rules this property specifies whether to display the field in the error message. A rule includes a collection of fields specified in the rule properties dialog box. If the rule check fails, an error message (specified in IRuleContext.ErrorMessage) and links to the fields from the collection are displayed in the document editor. Setting this property to False excludes the field from the list of links associated with the error.
IsExportable | bool | Read only | Specifies whether the field is intended for export (according to the Document Definition settings).
IsIndexed | bool | Read only | Specifies whether the field is indexable. If yes, the field value can be available from document and page external fields of the Document Definition.
IsMatched | bool | Read only | Specifies whether the field is matched.
IsSuspicious | bool | Read only | Specifies whether the field value is certainly recognized.
IsValid | bool | Read only | Specifies if the field has no format errors.
IsVerified | bool | Read/write | Specifies whether the field is verified. The property can be set to True in rules even without "write" permissions for the field. To deselect the flag, "write" permissions are required. If the flag is True, the field is displayed gray in the document editor, as if it were already confirmed. If the flag is False, the field is displayed white and needs to be confirmed. Once the field is verified, the flag is set to False. Note: Setting this flag to False does not provide routing the field to the Data Verification stage. For this, use the NeedVerification property of the IField or ICharacterParams interfaces.
IsVisible | bool | Read/write | Specifies whether the field should be reflected in document layout (according to the Document Definition settings).
Items | IFields | Read only | Instances of the field (rows of table fields).
Name | string | Read only | The field name in Document Definition.
NeedVerification | bool | Read/write | Specifies whether the field itself (not its characters) needs verification. If the flag is True, the field is displayed against a red background in the document editor which means that the field needs verification. If the Send to field verification option is selected in the field properties, the field will be routed to the Data Verification stage. Once the field is verified, the flag is set to False. To specify, whether particular characters, but not the whole field, need verification, use the NeedVerification property of the ICharacterParams interface.
ReadOnly | bool | Read only | Specifies whether the field has "read-only" permissions (according to the Document Definition settings). When used in rules, indicates that the rule has "write" permission for the field.
ReadOnlyInForm | bool | Read/write | Specifies whether the field on the form has "read-only" permissions (according to the Document Definition settings).
Regions* | IFieldRegions | Read only | An array of field regions. Overflowing fields can have several regions.
Rows | IFields | Read only | A set of table rows. Unavailable for non-table fields.
Symbols | ICharactersParams | Read only | Detailed information about the symbols properties.
Text | string | Read/write | The text representation of a field value.
Type | TExportFieldType | Read only | The type of a field.
Value | VARIANT | Read/write | The value of the field in the form of VARIANT. The property returns an object of type Int32, if the settings of the field state that it contains an integer and its absolute value is not greater than 2147483647. If the absolute value of the field is greater than 2147483647, the property returns an object of type double.
[Obsolete]IsCertain | bool | Read/write | Specifies whether the field is verified (similar to IsVerified property). The property is retained for backward compatibility.
[Obsolete]SuspiciousSymbols* | string | Read only | A string of "0" and "1" showing what symbols are certainly recognized. The property is retained for backward compatibility.

* - The property is unavailable if the Advanced XML Export option in the license properties is deselected.


IFieldRegion

What it does

Represents a region of the document field.

Methods

Definition | Description
Delete( ) | Deletes a field region.

Properties

Name | Type | Access | Description
Field | IField | Read only | The document field that corresponds to the region. The property value can be "0".
IsMatched | bool | Read only | Specifies whether the region is matched
Page | IPage | Read only | The page that contains the region
PageIndex | int | Read/write | The number of the page in the document the region is located on
Picture | IPictureObject | Read only | The picture that corresponds to the region
Rects | IRects | Read only | The array of rectangles the region consists of
SurroundingRect | IRect | Read only | The rectangle that describes the whole region

Note: In the custom recognition script the value of the Field property is always "0" as the field does not exist at the time of recognition.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IFieldRegions

IFieldRegions

What it does

A collection of IFieldRegion objects.


IFields

What it does

A collection of IField objects.

Methods

Definition | Description
AddNew( insertAt : int ) | Inserts a new instance of a recurring field. The insertAt parameter specifies the position of the new instance in collection. The method allows you to create strings for a table block without region. Cannot be used in script rules. Sample code: Document.Field( "Page 1\\Address" ).Items.AddNew( 0 );
Delete( what : Object ) | Deletes the instance of a field or a table row. The what parameter can be the item to be deleted from the collection or its index. Cannot be used in script rules.


IFlexiCaptureTools

What it does

The IFlexiCaptureTools interface is implemented with a FCTools global object which is available in scripts. All methods of the FCTools global object can be called as static methods, for example:
FCTools.ShowMessage( “Test” );

Methods

Definition | Description
ClassifyPage( page : IPage, [optional] callback : IProcessingCallback, [optional] detectClassesWithoutLayout : bool ) : IPageClassificationResult Classifies the page and in the event of successful classification returns the classification result. Classification result can be a name of the class from a batch type classifier or null.
This method can be used in the following cases:
  • pages must be classified and exported as searchable PDF to different folders according to classification results; recognition and matching Document Definitions is not needed;
  • depending on the classification results some actions should be performed with the document before recognition (e.g., correct page orientation).

Note: If the detectClassesWithoutLayout parameter is not specified, its value is set to false. If the value is true, classification is based only on classes from a classifier and available Document Definitions are not used for classification.
Note: You can either use the IProcessingCallback interface, or implement your own interface.
IsModuleAllowedByLicense( authorId : string, moduleName : string ) : bool | Checks whether the specified module is allowed by the license.
LoadImage( filePath : string, [optional] pageNumber : int ) : IEditablePictureObject | Loads an image from file. The loaded image will be available for editing. If the pageNumber parameter is not specified, its value is set to "1".
NewImageSavingOptions() : IExportImageSavingOptions | Creates a new object of the IExportImageSavingOptions class.
PictureFromHBitmap( bitmap : HBITMAP, [optional] resolution : int ) : IEditablePictureObject Generates an image from an HBITMAP object with the specified resolution. If the resolution parameter is not specified, image resolution is detected automatically. The generated image will be available for editing.
Sample code:
System.Drawing.Bitmap bitmap = System.Drawing.Image.FromHbitmap( handle );
<do something>
IPictureObject FinalPicture = FCTools.PictureFromHBitmap( bitmap.GetHbitmap().ToInt32(), 300 );
Note: As an HBITMAP object is taken into ownership, calling the CloseHandle method for it after generating the image is not needed.
Rect( left : int, right : int, top : int, bottom : int ) : string | Generates a string in the form of rectangle with specified coordinates.
ShowMessage( text : string, [optional] isError : bool ) Shows the message to the user. If the isError flag is not specified, its value is set to false.
If the isError flag is set to true, the message will be an error, otherwise a notification. If the script is executed within a handling process, the message will be written to the processing log.

Note: Unlike a classifier, the ClassifyPage method is used to analyze the page class, but the classification result is not matched. For example, if a classifier does not contain the Banking_eng Document Definition, the ClassifyPage method applied to the page can return a section of this Document Definition.

Properties

Name | Type | Access | Description
CurrentUserSession | IUserSessionInfo | Read only | Returns information about the current user's session. If routing is done after processing a document on a Web Station, the current user is the user who processed the document at this stage.
ScriptContext | IScriptDefinitionContext | Read only | Provides access to the object in which the script was created. This property allows you to access the project regardless of the parameters received by the script.


IMatchedSectionInfo

What it does

Contains detailed information about the Document Definition section which is matched on the page.

Definition | Description
FlexibleAlternativeName( ) : string | Returns the name of the FlexiLayout. Available only for documents that have already been opened.

Properties

Name | Type | Access | Description
DocumentDefinition | IDocumentDefinitionInfo | Read only | Information about the Document Definition the section belongs to.
FlexibleInstanceId | int | Read only | Index of a flexible section. A set of pages with the same index of the flexible section forms one document section. The field is effective for flexible sections only. If the value of FlexibleInstanceId is different for two pages on which the same definition of the flexible section is matched, it means that the pages belong to different document sections.
IsFlexible | bool | Read only | Specifies whether the section is flexible.
Name | string | Read only | The section name.
SectionDefinitionPageNumber | int | Read only | The page number in the definition of the fixed section matched on the page. The field is effective for fixed sections only.


IMatchingInfo

What it does

Stores parameters of matching document definitions and sections on a page.

Properties

Name | Type | Access | Description
DefinitionsList | string | Read/write | The list of sections and document definitions to be matched on the page divided by semicolon. Document definitions names and section names are specified in the form of <DefinitionName> or <DefinitionName>\<SectionName> respectively. Only existing sections and document definitions can be used. For example, the first section of the sample Banking_eng is specified as follows: Banking_eng\Page 1.
ForceMatch | bool | Read/write | Specifies whether to force-match the sections. The flag can be set to "true" only if no more than one section is set. If the section list is empty and the flag is set to "true", the page will be marked as an annex page which does not need recognition.
MaxPagesToMatch | int | Read/write | Specifies the maximum number of pages with which the multi-page sections may be matched. 0 means that there are no restrictions.
NeedRecognition | bool | Read/write | Specifies whether fields within the section need recognition. If the flag is set to "false", fields will not be recognized after matching.

Note: For the page to be recognized with all sections, do not modify the DefinitionsList property. If the DefinitionsList property is empty and the ForceMatch flag is not set, the page will not be recognized and the error message "No Document Definitions to match" will be logged. If the ForceMatch flag is set to "true", the page will be marked as an annex page.


IPage

What it does

Represents a page.

Methods

Definition | Description
MarkAsAnnex() | Marks the page as an attachment that does not require recognition.
ReplaceImage( newPicture : IPictureObject ) | Replaces the page image with a new one. The new image can be created by editing another IPictureObject object, loaded from file using the FCTools.LoadImage method or created from a bitmap file stored in memory (for example, .NET System.Drawing.Image) using the FCTools.PictureFromHBitmap method.
SaveAs( filename : string, [optional] options : IExportImageSavingOptions ) | Saves the page image depending on saving options. If options are not specified, the image is saved as *.tif. Is an internal* field.

Properties

Name | Type | Access | Description
Attachments | IUserAttachments | Read only | User attachments
Document | IDocument | Read only | The document that contains the page
ExcludedFromDocumentImage bool Read/write, Mutable (can be modified even in scripts with read-only permissions) Applies during export of the document image. Indicates that the current page image should not be exported when exporting the whole document.
Is an internal* field.
Id | string | Read only | The page identifier
ImageSource | string | Read only | A full path to the file (for files) or the source specified in ImageSourceDetails for other sources.
ImageSourceFileSubPath | string | Read only | The path of the source image relative to the root of Hot Folder or the folder they were imported from.
ImageSourcePageNumber | int | Read only | The number of the source page in the file.
ImageSourceType | string | Read only | String "File", "Scanner" or "Custom" depending on the source
Index | int | Read only | The page index in the document
IsAnalyzed | bool | Read only | Specified whether the page is analyzed.
MatchedSection | IMatchedSectionInfo | Read only | Detailed information about the section which is matched on the page. If there are no matched sections on the page, the value is null.
Picture IPictureObject Read only The page image.
Is an internal* field.
Rect IRect Read only The rectangle of the page.
Is an internal* field.
SectionName | string | Read only | The document section name.
SourceImageRotation int Read only The angle (in degrees) to which the source page image was rotated. Possible values: 0, 90, 180, 270. For pages rotated counter-clockwise, the value of clockwise rotation is returned (e.g. for image rotated 90˚ counter-clockwise, 270 is returned).
The property is available only if the document that contains the page is open.
Is an internal* field.
Returns the rotation angle for images:
  1. imported from a hot folder;
  2. loaded in the Project Setup Station or in the rich Verification Station;
  3. rotated during recognition;
  4. rotated manually in rich and remote stations;
  5. rotated manually in the Web Verification Station or during verification in the Web Capture Station.
Ignores the rotation value for images:
  1. rotated by scripts;
  2. rotated in the (Web-) Scanning Station or during scanning in the Web Capture Station;
  3. rotated automatically when correcting image skew.
[Obsolete] TemplateName string Read only Document section name (the same as SectionName).
The property is retained for backward compatibility.

* - The internal field requires loading the object into memory.


IPageClassificationResult

What it does

Stores information about results of classification of the page.

Properties

Name | Type | Access | Description
MatchedSections string Read only The list of section that can be matched. Contains entries in the form of <Document Definition Name>\<Section Name> divided by semicolon. This unmodified list can be passed to the IMatchingInfo object as the DefinitionsList parameter (IMatchingInfo::DefinitionsList). To pass the results, do the following:
  1. Create a custom stage based on script.
  2. In this stage, write a script which classifies pages and writes classification results to registration parameters.
  3. In the Before matching script, write the code which uses classification results from the registration parameter if the registration parameter is specified.
Note: When passing classification results to the Before matching script, set the IMatchingInfo.ForceMatch flag to false so that pages are not classified repeatedly with a script.
PageType | TPageClassificationType | Read only | The type of the page


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IPages

IPages

What it does

A collection of IPage objects.


IPictureObject

What it does

Represents the image of a page or a region.

The object implements the IPicture interface and provides access to some of its properties through the IDispatch interface.

For more details about the IPicture interface, see the corresponding article at MSDN.

Methods

Definition | Description
AnalyzePageObjects( [optional] reserved: Object ) : IPictureObjectsInfo | Defines objects on the page and returns the parameters of the page as seen by the recognition module. Some delay in the operation is possible.
CreateEditableCopy() : IEditablePictureObject | Creates an editable copy of the image.
DetectPageOrientation( [optional] language: string ) : int | Detects page orientation by the text on it. The internal name of the language is passed as the input parameter. If the language is not specified, the language of the current locale is used. Returns the angle (in degrees) to which the page must be rotated. The following values can be returned: 0, 90, 180 and 270.
SaveAs( filename : string, [optional] options : IExportImageSavingOptions ) | Saves the image. If no options are specified, the image is saved as *.tif.

Properties

Name | Type | Access | Description
Handle | OLE_HANDLE | Read only | The Windows GDI handle of the picture. In .Net this property can be used in System.Drawing.Image.FromHbitmap method to retrieve the picture object.
Height | int | Read only | The height of the picture in dots
hPal | OLE_HANDLE | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The Windows handle of the palette used by the picture. This property can be used in System.Drawing.Image.FromHbitmap as a second parameter.
IsBlackWhite | bool | Read only | Whether the picture is black-and-white
Type | SHORT | Read only | The type of picture.
Width | int | Read only | The width of the picture in dots
XResolution | int | Read only | The horizontal image resolution
YResolution | int | Read only | The vertical image resolution


IPictureObjectsInfo

What it does

An objects that stores the results of object detection.

Properties

Name | Type | Access | Description
BarcodesCount | int | Read only | The number of barcodes detected on the image (2-D barcodes are not counted).
BlacknessPercentage | int | Read only | The percentage of black on the page.
BlackSquaresCount | int | Read only | The number of detected black squares.
TextObjectsCount | int | Read only | The number of text objects.


IPrincipal

What it does

Represents a user or a user group in scripts.

Properties

Name | Type | Access | Description
Id | int | Read only | A unique identifier
Name | string | Read only | The name of a user or a group
Type | TPrincipalType | Read only | The type of principal


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IPrincipals

IPrincipals

What it does

A general collection of users and user groups (a collection of IPrincipal objects).


IProcessingCallback

What it does

Passes information about the processing progress.

Methods

Definition | Description
ReportError( error : string ) | Records an error message to the log. The operation that contains an error message is considered to have failed.
ReportMessage( message : string ) | Records an information message to the log.
ReportWarning( warning : string ) | Records a warning message to the log.

Properties

Name | Type | Access | Description
ShouldStop | bool | Read only | Checks if the task was cancelled or not (whether the user clicked "Cancel").


IProject

What it does

Represents the project in scripts.

Methods

Definition | Description
GetDocumentDefinitions( [optional] reserved :object ) : IDocumentDefinitionInfoArray | Returns information about the Document Definitions included in the project. The reserved parameter must be null or left unspecified.

Properties

Name | Type | Access | Description
EnvironmentVariables | IProperties | Read only | Returns an array of the environment variables used in the project.
ExportRootPath | string | Read only | The root export path as it is defined in the project settings. Can be an empty string.
Name | string | Read only | The name of the project
Principals | IPrincipals | Read only | An array of users or groups


IProperties

What it does

A collection of IProperty objects.

Methods

Definition | Description
Delete (name : string) | Deletes the property with the specified name.
Get (name : string) : string | Retrieves the property value by the name.
Has (name : string) : bool | Checks whether the set contains the property with the specified name.
Set (name : string, value : string) | Sets the value of a named property. Creates a property, if it does not exist. Note: For information on how to change document state, refer to the ITaskWindow interface.


IProperty

What it does

Represents a named property of a document or a batch.

Properties

Name | Type | Access | Description
Name | string | Read only | The property name
Value | string | Read only | The property value


IPropertyModificationInfo

What it does

Stores information about modification of a document (or a batch) property.

A set value can be corrected.

Properties

Name | Type | Access | Description
Name | string | Read only | The name of the named parameter (only for the type PT_NamedPropertyValue)
NewValue | string | Read/write | A new value of the property. The script allows to set the value in a different form, e.g. to normalize the value.
PropertyType | TPropertyType | Read only | The type of a property being modified


IRecordCheckResult

Represents the result of a check of a record in a data set (used during script checks).

Important! To enable script checks, enable the Проверять записи с помощью скрипта option in the data set's properties.

Properties

Name | Type | Access | Description
CheckSucceeded | bool | Read/write. Can be changed even in scripts with read permissions only. | Indicates that the check succeeded and the record is valid.
ErrorMessage | string | Read/write. Can be changed even in scripts with read permissions only. | Contains an error message and indicates that the record is invalid.


IRecordset

Represents the result of a search for a set of records in a data set.

Methods

Definition | Description
GetRecord ( index : int ) : IDataSetRecord | Returns a record with the specified index number. The resulting IDataSetRecord is available for reading only.

Propertie

Name | Type | Access | Description
Count | int | Read only | Number of records.


IRect

What it does

Represents a rectangle.

Methods

Definition | Description
ToString() : string | Represents a rectangle as a string of the form "[left,top,right,bottom]".

Properties

Name | Type | Access | Description
Bottom | int | Read only | Bottom coordinate
Left | int | Read only | Left coordinate
Right | int | Read only | Right coordinate
Top | int | Read only | Top coordinate


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IRects

IRects

What it does

A collection of IRect interfaces.


IRuleContext

What it does

A context object of rules. Represents the object, at whose level the rule was created.

The object implements IField interface (by means of providing access to the context field of the rule) and also has additional methods.

Methods

Definition | Description
DataSet ( dataSetName : string ) : IDataSet | Accesses the cached data set. The resulting IDataSet is available for reading only.

Properties

Name | Type | Access | Description
CheckSucceeded | bool | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Specifies whether the check succeeded
Document | IDocument | Read only | Access to the document
Fields | IFields | Read only | Collection of fields in the rule. Specified in rule settings.
FocusedField | IField | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The field to be focused when clicking a rule error (the field that caused a rule error).
FocusRect | IRect | Read only | A rectangle in screen coordinates, the executed action refers to (a rectangle of the window). Applies in the Custom Action script only.
ErrorMessage | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | A message concerning a rule error
ParentWindow | int | Read only | A handle of the parent window. Applies in the Custom Action script only.
[Obsolete] FieldsObject | IFR65Fields | Read only | An obsolete property. Retained for compatibility with scripts created in FormReader 6.5.
[Obsolete] ErrorObjectObject | IFR65Errors | Read only | An obsolete property. Retained for compatibility with scripts created in FormReader 6.5.


IRuleError

What it does

Represents a rule error, format error or merging error in the document.

Methods

Definition | Description
GetFields() : IFields | Returns the fields associated with the given field error.

Properties

Name | Type | Access | Description
IsWarning | bool | Read only | Specifies whether the message is a warning.
Message | string | Read only | The text of the error message.
RuleName | string | Read only | The name of the rule that caused the error. For format and merging errors, an empty string is returned.
Type | TRuleErrorType | Read only | The error type.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IRuleErrors

IRuleErrors

What it does

A collection of IRuleError interfaces.


IScriptBinaryAttributes

Description

A set of bool flags.

Methods

Definition | Description
Has( TStateType : int ) : bool | Checks whether the requested flag is set


IScriptDefinitionContext

What it does

Provides access to some properties of the objects that may be used in scripts.

Properties

Name | Type | Access | Description
Project | IProject | Read only | Provides access to information about the project.


ISectionDefinitionInfo

What it does

Describes a section in a Document Definition.

Properties

Name | Type | Access | Description
Name | string | Read only | Section name.
IsFlexible | bool | Read only | Whether the section is flexible or not.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > ISectionDefinitionInfoArray

ISectionDefinitionInfoArray

What it does

A collection of objects of type ISectionDefinitionInfo.


IStageInfo

What it does

Stores information about a processing stage of the document.

Properties

Name | Type | Access | Description
PrincipalId | int | Read only | The identifier of a user or a group which can receive a task with the given document. "0" indicated that the task is not assigned to any principal (user or group). For details, see IPrincipal.
StageId | int | Read only | The identifier of the current processing stage
StageName | string | Read only | The name of the current processing stage
TaskId | int | Read only | The identifier of the task. If there is no task, its value is "0".


IUserAttachment

What it does

The interface is used for working with the contents of user attachment. The object represents an array of bytes. Bytes can be accessed as objects in the collection. The byte value at any position can be changed.

Methods

Definition | Description
FromFile( fileName : string) | Replaces the attachment contents with a file from the specified path.
SetSize( newSize : int) : bool | Changes the size of the file. Files whose size is smaller than the specified value are increased, files with larger size are cut.
ToFile( fileName : string) | Saves the file to the specified path on a hard disk.
UploadAttachment( ) | Saves changes made to the attachment.

Properties

Name | Type | Access | Description
AsString | string | Read/write | Represents the file as one Unicode string. Files can be both written and read as Unicode strings.
Name | string | Read only | The name of the file


IUserAttachments

What it does

A collection of the IUserAttachment objects.

Methods

Definition | Description
AddNew( name : string) : IUserAttachment | Creates a new attachment file and starts editing it. Important! The method creates a new IUserAttachment item without adding it to the collection. To add the item to the collection and make it available for editing, the UploadAttachment( ) method must be called. Note: If a non-zero attachment with this name already exists, an exception will be returned.
Delete( name : string) | Deletes the attachment file with the given name. Note: When deleting an element, its existence is not checked. Thus the method succeeds even if the element being deleted is not in the collection.
Get( name : string) : IUserAttachment | Accesses the attachment file with the given name
Has( name : string) : bool | Checks whether the attachment file with the specified name exists

Properties

Name | Type | Access | Description
IsEmpty | bool | Read only | Checks whether the array contains any attachment files
Names | IVariantArray | Read only | The array with the names of attachment files


IUserSessionInfo

What it does

Information about the session of the current user of the Processing Station.

During verification, returns information about the session of the user doing the verification (including remote verification).

Properties

Name | Type | Access | Description
PrincipalId | int | Read only | The ID of the user on the Application Server. For the Standalone version ofABBYY FlexiCapture, returns null.
RoleId | int | Read only | The ID of the user's role. For the Standalone version ofABBYY FlexiCapture, returns null.
SessionId | int | Read only | The identifier of the connection to the Application Server. For the Standalone version of ABBYY FlexiCapture, returns null.
UserName | string | Read only | The user name. When working without the Application Server, the name of the user under which the process is running is returned. When connected to the Application Server, tries to retrieve the name of the user logged into the Application Server.


IValue

What it does

Represents a field value.

Properties

Name | Type | Access | Description
ErrorMessage | string | Read/write | Message concerning a value formatting error
Symbols | ICharactersParams | Read only | Detailed information about symbols properties
Text | string | Read/write | Text representation of the value
[Obsolete] SuspiciousSymbols | string | Read/write | Describes what symbols are suspicious for recognizer, consists of "0" and "1". Retained for backward compatibility.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > IVARIANTArray

IVARIANTArray

What it does

Represents a collection of items of Variant type.


TAssemlingErrorType

Description

The type of assembly error.

Admissible values:

  • AET_ObligatoryItemOmitted = 0 - A missing section
  • AET_RubbishItem = 1 - An extra page
  • AET_AssemblingRuleError = 2 - A custom assembly error
  • AET_KeyValuesMismatch = 3 - Values of the key fields mismatch (there can be no more than one error of this type within the document)


TExportFieldType

What it does

Enumeration of int type. Defines the type of the document fields.

Admissible values:

  • EFT_TextField = 0 - A text field
  • EFT_DateTimeField = 1 - A date field
  • EFT_NumberField = 2 - A number field
  • EFT_PictureField = 3 - A picture field
  • EFT_CurrencyField = 4 - A currency field
  • EFT_Checkmark = 5 - A checkmark
  • EFT_CheckmarkGroup = 6 - A checkmark group
  • EFT_Group = 7 - An ordinary group
  • EFT_Table = 8 - A table. You can access table rows through the Items or the Rows methods of the IField object.
  • EFT_Section = 9 - A document section
  • EFT_Document = 10 - A document. Fields of this type can occur only in rules written for the level of a document. Most parameters of such fields are unavailable.
  • EFT_TableRow = 11 - A table row. Table cells are the child fields of the row. They are available through the method Children.
  • EFT_TimeField = 12 - A time field


TExportType

Description

The type of the export target.

Admissible values:

  • ET_File = 1 - Export to file
  • ET_Database = 2 - Export to database
  • ET_Script = 3 - Script export
  • ET_SharePoint = 4 - Export to SharePoint
  • ET_Unknown = 5 - The type is not specified in the event of an error that does not concern any particular exporter


TPageClassificationType

Description

The type of the page defined by the Classifier. Applies in the IPageClassificationResult interface.

Types:

  • PCT_Unknown = 0 - An unknown page type.
  • PCT_Empty = 1 - An empty page.
  • PCT_FixedForm = 2 - A page with a fixed layout.
  • PCT_FlexibleMultiPageFormHeader = 3 - A header of a multipage flexible section.
  • PCT_FlexibleMultiPageFormNonHeader = 4 - A page in a multipage flexible section which is not a header.
  • PCT_FlexibleSinglePageForm = 5 - A one-page flexible section.
  • PCT_ClassWithoutDefinition = 6 - A page of the class without Document Definition.


TPrincipalType

Description

Types of principals.

Admissible values:

  • PT_User = 0 - A regular user
  • ST_Group = 1 - A user group


TProcessingPriority

Description

The processing priority of a document or a batch.

Note: The value is passed to the event "Document priority change" (or "Batch priority change") in the form of a string. A new value must be also specified in the form of a string.

Admissible values:

  • PP_Lowest = -2 - The lowest priority. Passed in the form of the string "lowest".
  • PP_Low = -1 - A low priority. Passed in the form of the string "low".
  • PP_Normal = 0 - A normal priority. Passed in the form of the string "normal".
  • PP_High = 1 - A high priority. Passed in the form of the string "high".
  • PP_Highest = 2 - The highest priority. Passed in the form of the string "highest".


TPropertyType

Description

The type of document (or batch) properties. Applies in the IPropertyModificationInfo interface.

Types:

  • PT_Name = 0 - The name. Applies for batches only.
  • PT_Comment = 1 - The comment.
  • PT_BatchType = 2 - The batch type. Applies for batches only.
  • PT_NamedPropertyValue = 3 - A named property (formerly a registration parameter)
  • PT_Id = 4 - The identifier (the ExternalId of the document). Its value changes occasionally and only for documents. The value changes mostly during import.


TRuleErrorType

Description

The type of the error. Applies in the IRuleError interface.

Types:

  • ET_RuleError = 0 - A rule error.
  • ET_FormatError = 1 - A format error.
  • ET_MergeVersionError = 2 - An error of merging different versions of the document.


TStateType

Description

Types of document states. Used in the event "Document state changed". The ChangedState parameter of this event can be used to get information on possible changes of each state type.

Admissible values:

  • ST_Preprocessed = 0 - Whether the document is preprocessed. The value can be changed only from "false" to "true".
  • ST_Analyzed = 1 - Whether the document is analyzed
  • ST_Recognized = 2 - Whether the document is recognized (a document is considered recognized if there is at least one recognized section in it)
  • ST_HasErrors = 3 - Whether the document has errors (including format errors)
  • ST_Assembled = 4 - Whether the document is assembled
  • ST_Verifyed = 5 - Whether the document is verified completely
  • ST_Exported = 6 - Whether the document is exported
  • ST_HasLayout = 7 - Whether the document has a layout. (In analyzed document a layout can also be missing, e.g, if the page has an unknown type.)


Sample scripts

This section contains sample scripts written in JScript® and VBScript scripting languages.

Sample scripts for creating custom rules
Sample scripts describing export
Other sample scripts


Sample scripts for creating custom rules

Collapsed Automation rule

This example demonstrates a table data check. The rule checks whether the table data matches the value in the resulting field. The table has columns with prices and quantities of certain goods. The rule has been written at the level of a section containing the table and the resulting field.

[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 );

Code of an ActiveX component

The code provided here is a CheckDoc class code from the AutomationRule project, which is used in the scripts mentioned above.

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 AsObject, numItems AsObject

Dim curCost AsDouble, curNum AsLong, sum AsDouble

Dim result AsDouble

Dim i AsLong

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

Collapsed Search in the variants list

The rule code provided below checks whether the field value matches one of the values in the list. If not, a rule error flag appears, and the field receives a list of suggested values. Depending on the check result, the field is marked as certainly or uncertainly recognized.

[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").IsVerified = 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").IsVerified = 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;

Collapsed Field match check

The rule code provided below checks whether the checked field has matched.

[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";

}

Collapsed Checkmark check

The rule code provided below checks whether the checkmark has been selected or not

[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";

}

Collapsed Checkmark group check

The rule code provided below iterates all the checkmarks in the group and if none are selected, selects the first one. The rule is written for the checkmark group level. All the checkmarks in the group have been added to the list of fields included into the rule. The group itself has been excluded from the list. For the default checkmark (the first one), the Readonly flag has been disabled. If there are no checkmarks in the group, a rule error flag is enabled.

This sample code iterates all the fields included in the rule. Since field names are not specified in the code, this code can be used for any checkmark group.

[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;

}

Collapsed Field reliability check

The rule code provided below checks the number of uncertain characters in the field and clears the field if the number of uncertain characters is greater than or equals three. This is an Autocorrection script.

[VBScript]

Dim totQty, suspQty

Dim i

totQty = me.Symbols.Count

suspQty = 0

for i = 0 to totQty - 1

if me.Symbols.Item(i).IsSuspicious = true then

suspQty = suspQty + 1

end if

next

if suspQty >= 3 then

me.Text = ""

end if

[JScript]

var susp, qty, strpos, i, SC, strposPrev

strposPrev = 1

qty = 0

SC = "1"

susp = SuspiciousSymbols

for ( i = 0; i < susp.length; i++) {

strpos = susp.indexOf (SC,i)

if ((strpos != strposPrev) && (strpos != -1)) {

qty = qty + 1

strposPrev = strpos

}

}

if (qty >= 3) {

text = ""

}

Collapsed Character replacement without loosing regions and verification flags

The script replaces "+" with "&" without loosing information about regions and verification flags. This is an Autocorrection script.

[VBScript]

Dim totQty

Dim i

totQty = me.Symbols.Count

for i = 0 to totQty - 1

if me.Symbols(i).Symbol = "+" then

me.Symbols(i).Symbol = "&"

end if

next

Collapsed Batch integrity check

Checks if the number of documents specified on the control page coincides with the inventory in the batch and with the number of documents actually processed. If the numbers do not match, an error is returned.

[VBScript]

dim DQty

dim i

for i = 0 to me.Batch.Documents.Count - 1

if me.Batch.Documents.Item(i).DefinitionName = "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

[JScript]

for ( i = 0; i < [Batch.Documents.Count - 1]; i++ ) {

var TemplName = Batch.Documents.Item(0).DefinitionName;

if (TemplName = "Inv") {

var DQty = Batch.Documents.Item(i).IndexedItemValue("DocQty");

break ;

}

}

var AcQty = Batch.Documents.Count -1

if (AcQty != DQty) {

CheckSucceeded = false;

ErrorMessage = "Incorrect number of documents in the batch:" + " " + AcQty + "." + "Expected number:" + " " + DQty +"!" ;

}


Sample scripts describing export

Collapsed Getting field values during export

This sample code shows how you can get the value of a field during export. You may use this value to name the files into which images or date are exported. If there is no such field in the document, an error will occur.

The structure of the document to be exported:

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;

}

}

}

}

}

Collapsed Exporting page images

The code in this example shows how to export images of all document pages using the required file format, color scheme and resolution. Images are saved by the page, i.e. every page in a separate file.

The files in this example are named "page1.tif," "page2.tif," etc. You can change the file naming mechanism if required. For example, you can create file names based on the value of a field.

[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 = FCTools.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 = FCTools.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 );

}

Collapsed Exporting a table

This example shows how to export a table to a *.txt file.

[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();

Collapsed Exporting a document of any nesting level

This example shows how to export fields of a document of any nesting level using custom-made functions from the global export module. If you need to export document fields of variable nesting, it is recommended to use an external COM component (see next example)

Core export code

[VBScript]

Export.ExportDocument me, FCTools

[JScript]

Export.ExportDocument( this, FCTools );

The code of the functions of the global export module

[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 FCTools)

    Dim folderNameme

    Dim txtFile, fileName

    Dim fso

    On Error Resume Next

    set fso = CreateObject("Scripting.FileSystemObject")

    ' creating the export folder

    folderName = CreateExportFolder(docObj.DefinitionName, 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, FCTools, folderName, fso

    if Err.Number <> 0 then

        docObj.Action.Succeeded = false

        docObj.Action.ErrorMessage = "Error during export images: " + Err.Description

        Err.Clear

        Exit Subub

    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 FCTools, ByVal exportFolder, ByRef fso )

    Dim pages, page, , , , , , , , , imageOptions

    Dim fileName, pageNum

    ' specifyingng export settings

    Set imageOptions = FCTools.NewImageSavingOptions

    imageOptions.Format = "bmp"

    imageOptions.ColorType = "FullColor"

    imageOptions.Resolution = 100

    ' ' page-by-page export

    Set pages = docObj.Pages

    pageNum = 1

    For Each page In pageses

        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 t t

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 definitionName, 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, definitionName)

    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.DefinitionName, 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;n;

    }

    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 exportrt

    var pages = docObj.Pages;

    var i 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(definitionName, 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, definitionName);

    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;

}

Collapsed Using an external COM component

[VBScript]

dim autoExport

set autoExport = CreateObject( "AutomationExport.Exporter" )

autoExport.Export me, FCTools

[JScript]

var autoExport = new ActiveXObject("AutomationExport.Exporter");

autoExport.Export( this, FCTools );

Code of an ActiveX component in VisualBasic

Provided below is an Exporter class code from the AutomationExport project, which is used in the above mentioned scripts.

OptionExplicit

Dim mFso AsNew 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

PublicSub Export(ByRef docObj As Object, ByRef FCTools As Object)

OnErrorGoTo err_h

    Dim folderName AsString

    Dim txtFile As TextStream, fileName AsString

    Dim imageExportResult AsString, errMessage AsString

    ' creating export folder

    folderName = createExportFolder(docObj.definitionName)

    If folderName = "" Then

        docObj.Action.Succeeded = False

        docObj.Action.ErrorMessage = "Cannot create export folder"

        ExitSub

    EndIf

    ' exporting images

    imageExportResult = exportImages(docObj, FCTools, 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

    EndIf

    ' exporting info about document

    exportDocInfo docObj, txtFile

    ' exporting fields

    txtFile.WriteLine "Fields:"

    IfNot exportFields(docObj.Children, txtFile, "") Then

       errMessage = errMessage & " Error during export data"

    EndIf

    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

    EndIf

    Set txtFile = Nothing

    Set mFso = Nothing

ExitSub

err_h:

    docObj.Action.Succeeded = False

    docObj.Action.ErrorMessage = Err.Description

    txtFile.Close

    Set mFso = Nothing

EndSub

' Image export function. If an error occurs when exporting images,

' it returns a message about the error, otherwise it returns an empty string

PrivateFunction exportImages(ByRef docObj As Object, ByRef FCTools As Object, _

    ByVal exportFolder AsString) AsString

OnErrorGoTo err_h

    Dim pages As Object, page As Object, imageOptions As Object

    Dim fileName AsString, pageNum AsLong

    exportImages = ""

    ' specifying export settings

    Set imageOptions = FCTools.NewImageSavingOptions

    imageOptions.Format = "png"

    imageOptions.ColorType = "GrayScale"

    imageOptions.Resolution = 300

    ' page-by-page export

    Set pages = docObj.pages

    pageNum = 1

    ForEach page In pages

        fileName = mFso.BuildPath(exportFolder, page.definitionName + "_page" & pageNum & "." & imageOptions.Format)

        page.SaveAs fileName, imageOptions

        pageNum = pageNum + 1

    Next page

ExitFunction

err_h:

    exportImages = Err.Description

EndFunction

' The procedure that exports info about the document

PrivateSub exportDocInfo(ByRef docObj As Object, ByRef txtFile As TextStream)

OnErrorGoTo 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

ExitSub

err_h:

    txtFile.WriteLine Err.Description

EndSub

' The procedure that exports fields from the fields collection

PrivateFunction exportFields(ByRef fields As Object, ByRef txtFile As TextStream, ByVal indent As String) As Boolean

OnErrorGoTo err_h

    Dim curField As Object

    exportFields = True

    ForEach curField In fields

        IfNot exportField(curField, txtFile, indent) Then

            exportFields = False

        EndIf

    Next curField

ExitFunction

err_h:

    txtFile.WriteLine Err.Description

    exportFields = False

EndFunction

' 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) AsBoolean

OnErrorGoTo err_h

    IsNullFieldValue = IsNull(field.Value)

ExitFunction

err_h:

    IsNullFieldValue = True

EndFunction

' Field export function

PrivateFunction exportField(ByRef field As Object, ByRef txtFile As TextStream, _

    ByVal indent AsString) AsBoolean

OnErrorGoTo err_h

    Dim result AsBoolean

    result = True

    ' saving field name

    txtFile.Write (indent & field.Name)

    ' saving field value if it can be accessed

    IfNot IsNullFieldValue(field) Then

        txtFile.WriteLine ("    " & field.Value)

    Else

        txtFile.WriteLine

    EndIf

    IfNot field.Children Is NothingThen

        ' exporting child fields

        result = result And exportFields(field.Children, txtFile, indent & "    ")

    ElseIfNot field.Items IsNothingThen

        ' exporting field instances

        result = result And exportFields(field.Items, txtFile, indent & "    ")

    EndIf

    exportField = result

ExitFunction

err_h:

    txtFile.WriteLine Err.Description

    exportField = False

EndFunction

' The function creates an export folder and returns a full path to this folder

PrivateFunction createExportFolder(ByVal definitionName AsString) AsString

OnErrorGoTo err_h

    Dim docFolder AsString, folderName AsString

    ' main folder

    Const exportFolder = "d:\AutomationExport"

    If mFso.FolderExists(exportFolder) = FalseThen

        mFso.CreateFolder (exportFolder)

    EndIf

    ' the folder of the specified Document Definition

    docFolder = mFso.BuildPath(exportFolder, definitionName)

    If mFso.FolderExists(docFolder) = FalseThen

        mFso.CreateFolder (docFolder)

    EndIf

    ' the folder of the exported document

    Dim i AsLong

    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

ExitFunction

err_h:

    createExportFolder = ""

EndFunction

Using an external component written in .Net( C# )

To use an external component written in .Net, do the following:

  1. Create a project of type ClassLibrary
  2. Add ControllerInterop.dll to the References of the project – ABBYY.FlexiCapture will appear in the References list and all the interfaces of the script objects will become available in the project.
  3. Define the disp interface and the class that implements this interface, as well as ProgId (this will make it possible to work with the .Net component just like with ActiveX from the code of the script).
  4. After building the project, register the generated types library (this can be done automatically by enabling the corresponding option in the project properties).
  5. From the export code, call the method of the component in the usual manner:

[VBScript]

dim autoExport

set autoExport = CreateObject( "ExportLibrary1.Export" )

autoExport.ExportDocument me, FCTools

[JScript]

var autoExport = new ActiveXObject("ExportLibrary1.Export");

autoExport.ExportDocument( this, FCTools );

Below follows the code of such a component:

using System;

using System.Runtime.InteropServices;

using System.IO;

using ABBYY.FlexiCapture;

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 FCTools 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 FCTools FCTools )

{

try

{

string exportFolder = createExportFolder( docRef.DefinitionName );

exportImages( docRef, FCTools, 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

privatestring createExportFolder( string definitionName )

{

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 + "\\" + definitionName;

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.

privatevoid exportImages( IExportDocument docRef, FCTools FCTools, string exportFolder )

{

string baseFileName = exportFolder + "\\page_";

IExportImageSavingOptions imageOptions = FCTools.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

privatebool IsNullFieldValue( IExportField field )

{

try

{

return ( field.Value == null );

}

catch( Exception e )

{

returntrue;

}

}

// 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 + " " );

}

}

}

}
Collapsed Export handler

This sample code demonstrates a simple export handler which saves information about exported documents and export results to text files. Two text files are used in this example: one containing the list of successfully exported documents and one containing the list of documents that returned errors during export.

[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 i, exprortResult, docInfo

' iterating the collection of exported documents

for i = 0 Tome.Count - 1

    set exportResult = me.Item(i)

    docInfo = "DocumentId:" & exportResult.Document.Id

    if exportResult.Succeeded then

        docInfo = docInfo & " - Exported successfully."

        txtSucceedFile.WriteLine docInfo

    else

        docInfo = docInfo & " - Export error: " & exportResult.ErrorMessage

        txtErrorFile.WriteLine docInfo

    endif

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();


Other sample scripts

Collapsed Field value assembly

Type: document assembly script

This sample code demonstrates how to assemble a document with one-page recurring section without annex pages. Pages are merged into one document in ascending order of the "PageIndex" field value.

[VBScript]

dim lastValue, pageIndex, sections, field, validPages(), validPagesSize, pageIsValid

lastValue = ""

pageIndex = 0

for i = 0 to me.Count - 1

set sections = me.Item( i ).Sections

redim validPages( 0 )

validPagesSize = 0

' Check fields in sections

for j = 0 to sections.Count - 1

if sections.Item( j ).HasField( " PageIndex " ) then

set field = sections.Item( j ).Field( " PageIndex " )

if not( field.Text = "" ) then

if lastValue = "" or field.Text > lastValue then

' Valid page order

' Mark all pages of the section as valid

for k = 0 to sections.Item( j ).Regions.Count - 1

validPagesSize = validPagesSize + 1

redim preserve validPages( validPagesSize )

validPages(validPagesSize - 1) = sections.Item( j ).Regions.Item( k ).PageIndex

next

end if

lastValue = field.Text

end if

end if

next

' Now mark all invalid pages

for j = 0 to me.Item( i ).Pages.Count - 1

pageIsValid = false

' Check if this page is valid

for k = 0 to validPagesSize - 1

if validPages(k) = j then

pageIsValid = true

exit for

end if

next

if not pageIsValid then

AssemblingErrors.AddRedundantPageError( pageIndex )

end if

pageIndex = pageIndex + 1

next

next

[JScript]

var lastValue = "";

var pageIndex = 0;

for( i = 0; i < this.Count; i++ ) {

var sections = this.Item( i ).Sections;

var validPages = new Array();

// Check fields in sections

for( j = 0; j < sections.Count; j++ ) {

if( sections.Item( j ).HasField( "PageIndex" ) ) {

var field = sections.Item( j ).Field( " PageIndex " )

if( field.Text != "" ) {

if( lastValue == "" || field.Text > lastValue ) {

// Valid page order

// Mark all pages of the section as valid

for( k = 0; k < sections.Item( j ).Regions.Count; k++ ) {

validPages.push( sections.Item( j ).Regions.Item( k ).PageIndex );

}

}

lastValue = field.Text;

}

}

}

// Now mark all invalid pages

for( j = 0; j < this.Item( i ).Pages.Count; j ++ ) {

var pageIsValid = false;

// Check if this page is valid

for( k = 0; k < validPages.length; k++ ) {

if( validPages[k] == j ) {

pageIsValid = true;

break;

}

}

if( !pageIsValid ) {

AssemblingErrors.AddRedundantPageError( pageIndex );

}

pageIndex ++;

}

}

Collapsed Document merge event

Type: a handler of the Pages moved event

This sample code demonstrates how the "Pages moved" event can be transformed into the "Document merge" event. The logic of this script is as follows: if all pages of the document are moved, then this document is fully embedded into the target document.

The script is launched on the event Pages moved. The Events.OnDocumentsMerge procedure is a procedure that handles the "Document merge" event.

[VBScript]

dim currentDocument, currentDocumentPagesMoved

set currentDocument = Pages( 0 ).Document

currentDocumentPagesMoved = 0

for i = 0 to Pages.Count - 1

if Pages( i ).Document.Id <> currentDocument.Id then

' The next document

if currentDocument.Pages.Count = currentDocumentPagesMoved then

' All pages are moved from the previous document. The event is triggered.

Events.OnDocumentsMerge TargetDocument, currentDocument

end if

Set currentDocument = Pages( i ).Document

else

next

if currentDocument.Pages.Count = currentDocumentPagesMoved Then

' All pages are moved from the last document. The event is spawned.

Events.OnDocumentsMerge TargetDocument, currentDocument

end if

[JScript]

var currentDocument = Pages( 0 ).Document;

var currentDocumentPagesMoved = 0;

for( i = 0; i < Pages.Count - 1; i++ ) {

if( Pages( i ).Document.Id != currentDocument.Id ) {

// The next document

if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {

// All pages are moved from the previous document. The event is spawned.

Events.OnDocumentsMerge( TargetDocument, currentDocument );

}

currentDocument = Pages( i ).Document;

} else {

currentDocumentPagesMoved = currentDocumentPagesMoved + 1;

}

}

if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {

// All pages are moved from the last document. The event is spawned.

Events.OnDocumentsMerge( TargetDocument, currentDocument )

}

Collapsed Merging document registration parameters on document merge

Type: a handler of the Document merge event

This sample code demonstates the easiest way to merge document registration parameters on document merge. When merging documents into a target document, only those parameters from new documents are added which were missing in it.

The code should be stored in a shared module. The OnDocumentsMerge procedure must called at the moment of merging documents. For details, see the description of the Document merge event.

[VBScript]

Sub MergeProperty(ByVal TargetDocument, ByVal propertyName, ByVal propertyValue)

If TargetDocument.Properties.Get(propertyName) = "" Then

' There is no such a parameter in the document.

TargetDocument.Properties.Set(propertyName, propertyValue)

End If

End Sub

Sub OnDocumentsMerge(ByVal Target, ByVal Document)

' Merging registration parameters.

For i = 0 To Document.Properties.Count - 1

MergeProperty(Target, Document.Properties(i).Name,

Document.Properties(i).Value)

Next

End Sub

[JScript]

function MergeProperty( TargetDocument, propertyName, propertyValue )

{

if( TargetDocument.Properties.Get( propertyName ) == "" ) {

// There is no such a paremeter in the document.

TargetDocument.Properties.Set( propertyName, propertyValue );

}

}

function OnDocumentsMerge( Target, Document )

{

// Merging registration parameters.

for( i = 0; i < Document.Properties.Count - 1; i++ ) {

MergeProperty( Target, Document.Properties(i).Name, Document.Properties(i).Value );

}

}


Migrating from FormReader 6.5 rules and export to FlexiCapture scripts

Migrating from FormReader rules to FlexiCapture script rules

If-Then rules

Changes in functions and methods:

  1. Error(field, message). Instead of this function, use the combination of the following properties of the unit to be checked: CheckSucceeded, ErrorMessage, and FocusedField.

    For example, this FormReader 6.5 code

    if [City].IsEmpty() then Error( [City] , "the city name should be filled")

    should be changed to

    [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. String operations. Listed below are the instructions for implementing in FlexiCapture the string operations that were available in If-Then rules.

    [VBScript]

    .Length() – Use the analogous function Len(string)

    .CmpNoCase(str) – For non-case-sensitive string comparisons, use the LCase(string) or UCase(string) functions

    .Mid(position, count) – Use the analogous function Mid(string, pos, count)

    [JScript]

    .Length() – Use the analogous length property of the string variable

    .CmpNoCase(str) – For non-case-sensitive string comparisons, use the toLowerCase() or toUpperCase() methods of the string variables

    .Mid(position, count) – Use the analogous substr(start, [length]) methods of the string variable

  3. Real number operations.

    [VBScript]

    Floor(d), Ceil(d) – There are no ready-made equivalents in VBScript, you can create your own implementation if required

    Round(d),Round(d, i) – Use the analogous function Round(d, [i])

    [JScript]

    Floor(d), Ceil(d) – Use the floor(d) and ceil(d) methods of the Math object

    Round(d) – Use the round(d) methods of the Math object

    Round(d, i) – There is no ready-made equivalent in JScript, you can create your own implementation if required.

  4. Text field operations

    IsEmpty() – Compare the text value of the field Field("fieldName").Text with an empty string

    Text() – Use Field("fieldName").Text

    Length() – Get the text value of the field and then determine the length of the resulting string value as described in 2 above.

    SetText(text) – Use Field("fieldName").Text = text

  5. Checkmark operations

    IsValid() – You can use the IsVerified property

    Value() – Field("fieldName").Value now returns a Boolean value and not 0 or 1 as in FormReader 6.5

    SetValue(newValue) – Use Field("fieldName").Value = newValue

  6. Checkmark group operations

    IsValid() – You can use the IsVerified property to determine the certainty of a field in a group. To find out how many check boxes have been selected, iterate the checkmarks in the group as shown in the example "Checkmark group check." (See Sample scripts for creating custom rules).

    Value() – To obtain the number of the selected checkmark, you can use one of the two methods below:

    1. Assign number names to the checkmarks in the group: 0, 1, etc. Then Field("groupName").Value will contain either the number of the selected checkmark or the list of numbers (more than one is selected), or an empty string (none is selected).
    2. Add to the rule only the checkmarks in the given group in the order in which they follow one another in the group. Then iterate the checkmarks in the group as shown in the example "Checkmark group check."

    Text() - Use Field("groupName").Value

    SetValue(newValue) – To change the value of a checkmark group, you need to set/reset the required checkmarks in this group. The checkmarks must be included in the rule and the ReadOnly flag must be enabled for them.

Automation rules

To be able to use in FlexiCapture Automation components created in FormReader 6.5 you need to make the following changes in your Automation components.

  1. The method of an external component that implements rule logic should be called from a script rule as shown in the examples. There are no specific requirements for the signature of this method. Note, however, that the parameters passed from the script rule to the method of the external component must correspond to the selected signature of the method, which can look like this:

    Public Sub Check(ByRef docObj As Object)

    2. docObj – This is a reference to the document unit to be checked.

  2. The methods of the fieldsObj object that was used in FormReader 6.5 should be replaced with methods supported in FlexiCapture. The table below lists the correspondences between the old and new methods of the fieldsObj object.
fieldsObj method | Samples of code in VisualBasic that can substitute the old method
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) | Not supported
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) To be able to work with table columns, add the column fields into the rule. Checking whether the column has been matched successfully is the same as for any other field:

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) To be able to work with table cells, add the column fields into the rule.

Operations with these fields depend on the level of the rule. If the rule has been created for the column level or table level, it will apply to each row and use the values of the columns in the row being checked (i.e. operates on cells):

Dim cell As Object
Set cell = docObj.Field("ColumnName")
Dim cellValue as String
cellValue = cell.Value

Thus, you can create a rule which, for example, uses the data in the first two columns of a table to complete a third column:

Dim cellResult As Object
Set cellResult = docObj.Field("ColumnResult")
cellResult.Value = docObj.Field("Column1").Value + docObj.Field("Column2").Value

If the rule has been created for the level of a unit which contains a table (group, section, document), you will need to iterate a column as described in the "Automation rule" example to access its cells.
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) Cell fields can be accessed in the same way as described for the SetTableCellValue method.

Then you will be able to work with the accessed cell just like with any other field. Setting a suggestion will look like this:

cell.Suggest cellSuggest

  3. The methods of the errorsObj object that was used in FormReader 6.5 should be replaced with methods supported in FlexiCapture. The table below lists the correspondences between the old and new methods of the errorsObj object.
errorsObj method Samples of code in VisualBasic that can substitute the old method
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

If the rule has been created for the table or column level, the program will mark as errors all the cells in the checked row whose fields (columns) have been added into the rule. To move the focus on a particular cell, write the following code:

docObj.FocusedField = docObj.Field("ColumnName")

If the rule has been created for a higher level, the program will not mark any cells or move the focus onto them.

Migrating from FormReader Automation export to FlexiCapture script export

The method of an external component that implements rule logic should be called from a script rule as shown in the examples. There are no specific requirements for the signature of this method. Note, however, that the parameters passed from the script rule to the method of the external component must correspond to the selected signature of the method, which can look like this:

Public Sub Check(ByRef docObj As Object, ByRef exportTools As Object)

docObj – This is a reference to the document to be exported

exportTools – This is a reference to the ExportTools object

The methods of the fieldsObj object that was used in FormReader 6.5 should be replaced with methods supported by the current version of the application. The table below lists the correspondences between the methods of the fieldsObj object and the new means of working with documents to be exported:

Methods of the fieldsObj object | Possible implementations in the new object model
GetFieldsCount As
Integer 		To get the number of fields in the document that is being exported, iterate the tree of fields as shown in the example "Using an external COM component" and make the calculation.
GetFieldsNames(Names As Variant) | To get the names of the fields in the document that is being exported, iterate the tree of fields as shown in the example "Using an external COM component" and fill the array with the names of the field.
GetFieldsTypes(FieldTypes As Variant) | Not supported.
GetFieldByIndex(Index As Integer, FieldValue As Variant) Access through the index makes no sense, as the new document model has a hierarchical structure.
The tree of fields can be easily iterated as shown in the example "Using an external COM component" and fill the array with the names of the field.
GetFieldByName(Name As String, FieldValue As Variant) Dim fieldValue
fieldValue = docObj.Field(Name).Value


Scripts for processing interface events

In ABBYY FlexiCapture, you can use scripts to process interface events. This allows you to configure the operation of a station, customize its interface, change a station's behavior under certain conditions, implement user commands, etc.

These scripts can be added when configuring batch type tools.

All script objects are available for reading and writing.

Access rights to objects of the ControllerInterop used in scripts depend on the objects' state. The current document's state is returned by the DocumentState() method of the ITaskWindow interface. If the document's state is DS_Opened, then the ControllerInterop objects of the document are available for reading and writing. For other states, the objects of ControllerInterop are read-only.

Events that can be handled by means of scripts and their parameters are described below.

Events
Objects

Note: Any changes you make to the interface by means of scripts will be discarded in the following cases:

  • When you enter a batch type other than the default batch type
  • When you exit a batch type other than the default batch type
  • When you open or close a project
  • When you close the station


Event handlers

Program shell events, that can be handled by using scripts, are listed below:

On Activate Document
On Closing Document
On Closing Project
On Document Closed
On Field Control Activate
On Field Control Deactivate
On Open Document
On Project Closed
On Region Change
On Region Control Draw
On Text Field Validating
On User Command


On Activate Document

When it is launched

The script is launched prior to activating the document in the task window (by a double-click, by using menu commands, etc.).

If the CanOpen parameter is set to true, the document will be opened in the document editor after the script execution. If the CanOpen parameter is set to false, the document will not be opened.

By default, the value of the CanOpen parameter is true.

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window
DocumentItem | IDocumentItem | Read/write | The document being processed
CanOpen | IBoolean | Read/write | Specifies whether to open the document


On Closing Document

When it is launched

The script is launched when the document is being closed in the document editor (when going to a new document or closing the document editor) and prior to confirmation of changes.

If the CanClose parameter is set to false, the document will remain open. If the CanClose parameter is set to true, the document will be closed after the script execution.

By default, the value of the CanClose parameter is true.

Parameters

Name | Type | Access | Description
Context | IDocumentEditor | Read/write | The document editor
CanClose | IBoolean | Read/write | Specifies whether to close the document


On Closing Project

When it is launched

The script is launched when the project is being closed and prior to showing an inquiry dialog. The inquiry box appears if the user must confirm the action before proceeding.

If the CanClose parameter is set to false, the main window will remain open. If the CanClose parameter is set to true, the main window will be closed.

By default, the value of the CanClose parameter is true.

Parameters

Name | Type | Access | Description
Context | IMainWindow | Read/write | The main window
CanClose | IBoolean | Read/write | Specifies whether to close the main window


On Document Closed

When it is launched

The script is launched after confirming the changes when closing a document in the document editor.

Parameters

Name | Type | Access | Description
Context | IDocumentEditor | Read/write | The document editor


On Field Control Activate

When it is launched

The script is launched upon activating a field.

Parameters

Name | Type | Access | Description
Context | IFieldControl | Read/write | The activated field

Note: You cannot activate a different field by this script.


On Field Control Deactivate

When it is launched

The script is launched before a field stops being active.

The field that is going to be activated next is passed to the script as an input parameter. This parameter can be changed.

Parameters

Name | Type | Access | Description
Context | IFieldControl | Read/write | The field being deactivated
WasModified | bool | Read/write | Specifies whether the field was modified
NewActiveControl | IBoxedFieldControl | Read/write | The field being activated. Note: The property has null value if the field that is going to be activated belongs to another document.


On Open Document

When it is launched

The script is launched upon opening a document in the document editor (when opening a new document window or going to a new document).

When the script is launched, all windows inside the document editor are already created.

Parameters

Name | Type | Access | Description
Context | IDocumentEditor | Read/write | The document editor

Note: Closing the document from this script is not allowed. Using the command DocumentEditor.TaskWindow.CloseEditorWindow(); will cause the error message: "System.Runtime.InteropServices.COMException (0x80004005): Document editor cannot be closed."


On Project Closed

When it is launched

The script is launched when closing the project is finished after the user confirms the action in the inquiry dialog (if it was).

Parameters

Name | Type | Access | Description
Context | IMainWindow | Read/write | The main window


On Region Change

When it is launched

The script is launched prior to modifying a region in the image window.

If the AllowChangeRegion parameter is set to true, the region will be changed after the script execution. If the AllowChangeRegion parameter is set to false, the region will not be changed.

By default, the value of the AllowChangeRegion parameter is true.

Parameters

Name | Type | Access | Description
Context | IFieldRegionControl | Read/write | The region
NewRegionParam | IShellRects | Read/write | Rectangles of the region. For tables, the whole table region is passed. Note: When changing a container of the region, a new region of this container is returned and new regions of its child elements are not returned. When changing the region of a child element, only a new region of this child element is returned. For tables, the table region is always returned, also when changing a column or row region.
AllowChangeRegion | IBoolean | Read/write | Specifies whether to change the region.


On Region Control Draw

When it is launched

The script is launched prior to redrawing the region.

If the DrawDefault parameter is set to true, drawing the region will be cancelled. If the DrawDefault parameter is set to false, the region will be redrawn.

By default, the value of the DrawDefault parameter is false.

Parameters

Name | Type | Access | Description
Context | IFieldRegionControl | Read/write | The region
DrawContext | IDrawContext | Read/write | The drawing context
DrawDefault | IBoolean | Read/write | Specifies whether to continue drawing the region


On Return From Task

When it is launched

The script is launched when processing the current task is finished after confirmation of changes.

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On Task Window Create

When it is launched

The script is launched upon creating a task window.

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On Task Window Mode Changed

When it is launched

The script is launched when changing the view of the task window (when the user switches to a different view mode).

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On Text Field Validating

When it is launched

The script is launched when the control is validating the user editing of a text field, e.g. when trying to choose the value from suggestions or when the control loses focus.

If the CanApply parameter is set to true, the user input will be validated after the script execution. If the CanApply parameter is set to false, the user editing will be undone.

By default, the value of the CanApply parameter is true.

Parameters

Name | Type | Access | Description
Context | ITextEditor | Read/write | The document field editor
CanApply | IBoolean | Read/write | Specifies whether to save changes


On User Command

When it is launched

The event occurs when calling a user command (provided that a corresponding item is added to the main menu or on the toolbar).

User commands identifiers can be represented in the form of CI_UserCommand + <nonnegative integer>.

Parameters

Name | Type | Access | Description
Context | IMainWindow | Read/write | The main window of the application
CommandId | TCommandID | Read/write | The identifier of the user command

Note: To add a user command to the main menu or on the toolbar, you must use AppendItem/InsertItem and AppendButton/InsertButton methods of the IMenu interface and the IToolbar interface respectively. The command identifiers CI_UserCommand or CI_UserCommand + <nonnegative integer> must be used.

The sample code below demonstates how to add a menu item for a user command with a command identifier CI_UserCommand + 1

ABBYY.FlexiCapture.ClientUI.TCommandID userCommand = ABBYY.FlexiCapture.ClientUI.TCommandID.CI_UserCommand;

ABBYY.FlexiCapture.ClientUI.TCommandID userCommand1 = (ABBYY.FlexiCapture.ClientUI.TCommandID) ((int)userCommand + 1);

IMenu menu = MainWindow.MainMenu[0].Submenu;

menu.AppendItem( userCommand1, “User command” );

A toolbar button or a menu item added for a user command will be disabled unless a handler of the On User Command event is added.

The sample code below demonstates processing the On User Command event.

ABBYY.FlexiCapture.ClientUI.TCommandID commandID = ( ABBYY.FlexiCapture.ClientUI.TCommandID )( CommandId );

ABBYY.FlexiCapture.ClientUI.TCommandID userCommand = ABBYY.FlexiCapture.ClientUI.TCommandID.CI_UserCommand;

ABBYY.FlexiCapture.ClientUI.TCommandID userCommand1 = (ABBYY.FlexiCapture.ClientUI.TCommandID) ((int)userCommand + 1);

if( commandID == userCommand1 ) {

<… call necessary methods here …>


Objects

This section contains the description of objects used in scripts, their properties and methods.

IBoolean
IBoxedFieldControl
IDocumentEditor
IDocumentItem
IDocumentItems
IDocumentsCollection
IDocumentsWindow
IDrawContext
IErrorControl
IErrorControls
IErrorsWindow
IFieldControl
IFieldRegionControl
IFieldRegionControls
IFormWindow
IImageWindow
IMainMenu
IMainWindow
IMenu
IMenuItem
IPageControl
IPageItem
IPageItems
IPagesCollection
IPoint
ISelection
IShellRational
IShellRect
IShellRects
ITaskWindow
ITextEditor
IToolbar
IToolbarButton
IToolbars
TCommandBarType
TCommandID
TDockingType
TErrorType
TSelectionType
TTaskWindowMode
TTextSize
TUserRole
TWorkWindowType


IBoolean

What it does

Passes in-out boolean values to scripts.

Properties

Name | Type | Access | Description
Value | bool | Read/write | The value

Note: To assign a value to an object of IBoolean type, you must use the Value property. For example, to assign a true value to the object A of IBoolean type, you must write A.Value = true instead of A = true.


IBoxedFieldControl

What it does

Stores the document field control.

Properties

Name | Type | Access | Description
Value | IFieldControl | Read/write | The field


IDocumentEditor

What it does

Represents the document editor.

Methods

Definition | Description
Save() : bool | Saves the document

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
Document | IDocument | Read only | The document being edited
Modified | bool | Read only | Specifies whether the document is modified
TaskWindow | ITaskWindow | Read only | The task window
ImageWindow | IImageWindow | Read only | The image window
FormWindow | IFormWindow | Read only | The form window
ErrorsWindow | IErrorsWindow | Read only | The errors window
FormMode | bool | Read/write | Specifies whether the data displaying mode is enabled


IDocumentItem

What it does

Represents a document in the documents window.

Properties

Name | Type | Access | Description
Collection | IDocumentItems | Read only | The collection that contains the document
Document | IDocument | Read only | The document
Expanded | bool | Read/write | Specifies whether the document is expanded
MarkedNextStage | IStageInfo | Read only | The next stage to which the document will be sent after the task is complete.
PageItems | IPageItems | Read only | The collection of pages included in the document
Rect | IShellRect | Read only | The rectangle of the document in the IDocumentsWindow
Selected | bool | Read/write | Specifies whether the document is selected
TaskDocument | bool | Read only | Specifies whether the document belongs to the current task
TaskWindow | ITaskWindow | Read only | The task window

Note: For the Thumbnails view mode, the Expanded property value is always true. Setting the property to false does not result in errors, but the value will remain true.

Note: If the document is collapsed, the DocumentItem.PageItems.Count property returns "0".


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IDocumentItems

IDocumentItems

What it does

A collection of IDocumentItem objects. Represents documents in the documents window.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IDocumentsCollection

IDocumentsCollection

What it does

A collection of IDocument objects.


IDocumentsWindow

What it does

The window for displaying documents in Thumbnails View or in Details View.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible
FindDocumentItem( document : IDocument ) : IDocumentItem | Retrieves IDocumentItem by the IDocument object of ControllerInterop
FindPageItem( page : IPage ) : IPageItem | Retrieves IPageItem by the IPage object of ControllerInterop

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
ClientRect | IShellRect | Read only | The rectangle of the client area (in window coordinates). Coordinates of the left upper corner of the main window are (0, 0).
TotalRect | IShellRect | Read only | The rectangle of the whole window
ScrollPos | IPoint | Read/write | The position of the scroll box
Docking | TDockingType | Read/write | The position of IDocumentsWindow in the document editor
Ratio | IShellRational | Read/write | The ratio of the window size to the size of the parent window
TaskWindow | ITaskWindow | Read only | The task window
Items | IDocumentItems | Read only | The collection of documents
SelectedItems | IDocumentItems | Read only | Selected documents
FocusedItem | IDocumentItem | Read only | Focused documents


IDrawContext

What it does

Represents the context of drawing. Allows you to draw elementary geometric objects by using scripts. The color is specified as a sequence of four bytes: 0x00BBGGRR, where the "BB" bite represents the blue color, the "GG" bite is the green color and the "RR" bite is the green color.

Methods

Definition | Description
GetPixel( x : int, y : int ) : int | Retrieves the pixel color (in RGB) by its coordinates.
SetPixel( x : int, y : int, rgbColor : int ) : int | Sets the color (in RGB) of the pixel with specified coordinates. Returns the previous color of the pixel (in RGB).
Line( start : IPoint, end : IPoint, rgbColor : int ) | Draws a line of the specified color connecting the "start" and "end" points.
Rect( rect : IShellRect, rgbColor : int ) | Draws a rectangle with a frame of the specified color.
FillRect( rect : IShellRect, rgbColor : int ) | Draws a filled rectangle of the specified color.
FillAlphaRect( rect : IShellRect, rgbColor : int, alpha : int ) | Draws a filled rectangle with a specified level of transparency.

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle to the context (HDC)


IErrorControl

What it does

Represents an item in the IErrorsWindow list.

Methods

Definition | Description
Field( index : int ) : IField | Retrieves the field related to the error by the index of the error

Properties

Name | Type | Access | Description
Type | TErrorType | Read only | The type of the error
Error | string | Read only | The text of the error
IsWarning | bool | Read only | Specifies whether the error is a warning
FieldsCount | int | Read only | The number of fields related to the error
Index | int | Read only | The index of the error in the errors window


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IErrorControls

IErrorControls

What it does

A collection of IErrorControl objects.


IErrorsWindow

What it does

Represents the errors window.

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
DocumentWindow | IDocumentEditor | Read only | The document editor
Controls | IErrorControls | Read only | The collection of controls
FocusedControl | IErrorControl | Read/write | The error which is focused at the moment
Docking | TDockingType | Read/write | The position of IErrorsWindow relative to IFormWindow in the document editor.
Ratio | IShellRational | Read/write | The ratio of the IErrorsWindow size (which is a numerator) to the total size of IFromWindow plus IErrorsWindow windows (which is a denominator).
ShowAssemblingErrors | bool | Read/write | Specifies whether to show assembly errors
ShowRuleErrors | bool | Read/write | Specifies whether to show rule errors
ShowFormatErrors | bool | Read/write | Specifies whether to show format errors
ShowUnmatchedRegionErrors | bool | Read/write | Specifies whether to show errors associated with unmatched regions


IFieldControl

What it does

Represents a control of the document field.

Important! The object returns null for fields not involved in distributed verification.

Properties

Name | Type | Access | Description
DeviceRect | IShellRect | Read only | The rectangle of the control
Field | IField | Read only | The document field
FieldFullName | string | Read only | The full name of the field
FieldRegionControls | IFieldRegionControls | Read only | The collection of field regions of the document. For fields, that do not have regions, null is returned.
First | IFieldControl | Read only | The first child control
FormWindow | IFormWindow | Read only | The form window
IsExpandable | bool | Read only | If the property is set to true, the field can be expanded and collapsed on the form. This property allows you to check whether the field is expandable before applying the IsExpanded property to it. For group fields, the property is true.
IsExpanded | bool | Read/write | Retrieves information whether the group field is expanded. Allows you to collapse/expand the field.
IsUserReadOnly | bool | Read/write | Specifies whether the field is editable. If the property is set to true, editing the field is not allowed. If the property is set to false, the possibility to edit the field depends on the Document Definition settings.
Last | IFieldControl | Read only | The last child control
Parent | IFieldControl | Read only | The parent control
Prev | IFieldControl | Read only | The previous control
Next | IFieldControl | Read only | The next control
TextEditor | ITextEditor | Read only | The field editor. For inactive fields, null is returned.


IFieldRegionControl

What it does

Represents a region of the document field.

Important! The object returns null for fields not involved in distributed verification.

Properties

Name | Type | Access | Description
FieldRegion | IFieldRegion | Read only | The region of a document field
Page | IPageControl | Read only | The page that contains the region
Window | IImageWindow | Read only | The image window
DeviceRect | IShellRect | Read only | The rectangle of the window
Visible | bool | Read/write | Specifies whether the region is visible
FieldControl | IFieldControl | Read only | The control of the document field which is associated with the region
Parent | IFieldRegionControl | Read only | The parent region
First | IFieldRegionControl | Read only | The first child region
Last | IFieldRegionControl | Read only | The last child region
Prev | IFieldRegionControl | Read only | The previous region
Next | IFieldRegionControl | Read only | The next region


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IFieldRegionControls

IFieldRegionControls

What it does

A collection of IFieldRegionControl objects.


IFormWindow

What it does

Represents the form window.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible
FindControl( field : IField ) : IFieldControl | Searches for a field control using the value of the field region of ControllerInterop

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
DocumentWindow | IDocumentEditor | Read only | The document editor
Control | IFieldControl | Read only | The main control of the form
ClientRect | IShellRect | Read only | The rectangle of the client area (in window coordinates). The coordinates of the left upper corner of the main window are (0, 0).
TotalRect | IShellRect | Read only | The rectangle of the whole form. If the size of the client area is smaller than the size of the form, the form window will have scrollbars
ScrollPos | int | Read/write | The position of the scroll box
ActiveControl | IFieldControl | Read/write | The active control on the form. The value of this property cannot be modified from the On Field Control Activate and On Field Control Deactivate events.
TextSize | TTextSize | Read/write | The size of the text
Docking | TDockingType | Read/write | The position of IFormWindow relative to IImageWindow in the document editor.
Ratio | IShellRational | Read/write | The ratio of the total size of IFormWindow plus IErrorsWindow windows (which is a numerator) to the size of IDocumentEditor (a denominator). If the Docking property value is DT_Top or DT_Bottom, the ratio between the y-extents is measured. Otherwise, the ratio between the x-extents is measured.


IImageWindow

What it does

Represents the image window.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
DocumentEditor | IDocumentEditor | Read only | The document editor
First | IPageControl | Read only | The first page
Last | IPageControl | Read only | The last page
ClientRect | IShellRect | Read only | The rectangle of the client area (in window coordinates). The coordinates of the left upper corner of the main window are (0, 0). If the size of the client area is smaller than the size of the TotalRect, the image window will have scrollbars.
TotalRect | IShellRect | Read only | The rectangle of the area occupied by all page images
ScrollPos | IPoint | Read/write | The position of the scroll box
Docking | TDockingType | Read/write | The position of IImageWindow relative to IFormWindow in the document editor
Ratio | IShellRational | Read/write | The ratio of the IImageWindow size (which is a numerator) to the size of IDocumentEditor (a denominator). If the Docking property value is DT_Top or DT_Bottom, the ratio between the y-extents is measured. Otherwise, the ratio between the x-extents is measured.
ShowBWImages | bool | Read/write | Specifies whether to show a black-and-white image
ImageScale | IShellRational | Read/write | The image scale. The range of admissible values is from 1/8 to 8.
ShowToolbar | IShellRational | Read/write | Specifies whether to show the toolbar
IsDocked | bool | Read/write | Specifies whether the image window is docked


IMainMenu

What it does

A collection of IMenuItem interfaces. Represents the main window menu.

For all items of this menu, the TCommandID property returns CI_SubMenu.

Methods

Definition | Description
Reset() | Resets the menu (restores the original view).

Important! After applying the Reset method the current object of IMainMenu type is destructed and a new object is generated. As a result, all references to the current object become invalid and attempts to use it will generate an exception. You must either define a new object or initilize the existing object anew.

The sample code below demonstrates applying the Reset method to an object. As a result, the menu object becomes invalid and cannot be referred to.

// Define a new IMainMenu object and initialize it

IMainMenu menu = TaskWindow.MainWindow.MainMenu;

// Call the Reset method

menu.Reset();


IMainWindow

What it does

Represents the main window.

Methods

Definition | Description
CommandIsEnabled( commandId: TCommandID ) : bool | Returns true for a command that is enabled and false for a command that is disabled.
EnableCommand( commandId: TCommandID, bool) | Makes a command available or unavailable in the GUI.

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
MainMenu | IMainMenu | Read only | The main menu
Toolbars | IToolbars | Read only | The collection of toolbars
WorkWindowType | TWorkWindowType | Read only | The type of the working window
TaskWindow | ITaskWindow | Read only | The task window
UserRole | TUserRole | Read only | The user role
Selection | ISelection | Read only | The selection


IMenu

What it does

A collection of IMenuItem objects. Represents a menu or a submenu.

Methods

Definition | Description
AppendItem( commandId : TCommandID, text : string ) : IMenuItem | Returns the IMenuItem object of the corresponding element. Any identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.
Delete( index : int ) | Deletes an element by its index in the collection.
Find( commandId : TCommandID ) : int | Finds the index of the first object with the specified ID of the command in the collection.
InsertItem( index : int, commandId : TCommandID, text : string ) : IMenuItem | Returns the IMenuItem object of the corresponding element. Any identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.


IMenuItem

What it does

Represents a menu item.

Properties

Name | Type | Access | Description
Command | TCommandID | Read only | The command identifier. For a submenu title, CI_SubMenu is returned. For a separator, CI_Separator is returned. If there is no identifier for a command among TCommandID values, CI_Undefined is returned.
Enable | bool | Read/write | Specifies whether to enable menu items. If the property is set to false, all menu items with the specified identifier (the Command property) will be disabled. If the property is set to true, enabling menu items depends on the internal logic of the program. For separators and submenu titles, the property is always true.
Text | string | Read/write | The text of the menu item. Note: The property does not allow changing text for the menu bar items: File, Edit, View, etc.
Submenu | IMenu | Read only | The submenu. If a submenu is missing, null is returned.


IPageControl

What it does

Represents a page in the image window.

Methods

Definition | Description
ImageToDevice( imageRect : IShellRect ) : IShellRect | Converts image coordinates to window coordinates

Properties

Name | Type | Access | Description
Page | IPage | Read only | The page
ImageWindow | IImageWindow | Read only | The image window
DeviceRect | IShellRect | Read only | The rectangle of the page
First | IFieldRegionControl | Read only | The first child region
Last | IFieldRegionControl | Read only | The last child region
Prev | IPageControl | Read only | The previous page
Next | IPageControl | Read only | The next page


IPageItem

What it does

Represents a page in the documents window.

Properties

Name | Type | Access | Description
TaskWindow | ITaskWindow | Read only | The task window
DeviceRect | IShellRect | Read only | The rectangle occupied by the page in the IDocumentsWindow
Selected | bool | Read/write | Specifies whether the page is selected
DocumentItem | IDocumentItem | Read only | The document that contains the page
Page | IPage | Read only | The page


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IPageItems

IPageItems

What it does

A collection of IPageItem objects.


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IPagesCollection

IPagesCollection

What it does

A collection of IPage objects.


IPoint

What it does

Represents a point.

Properties

Name | Type | Access | Description
X | int | Read/write | X-coordinate
Y | int | Read/write | Y-coordinate


ISelection

What it does

Represents the selection of documents or pages.

Properties

Name | Type | Access | Description
Type | TSelectionType | Read only | The selection type
DocumentItems | IDocumentItems | Read only | The selected documents
Documents | IDocumentsCollection | Read only | Objects of the IDocument type corresponding to the selected documents
PageItems | IPageItems | Read only | The selected pages
Pages | IPagesCollection | Read only | Objects of the IPage type corresponding to the selected pages

Note: If the document is collapsed, the DocumentItems[i].PageItems.Count property returns "0".


IShellRational

What it does

Represents a fraction.

Properties

Name | Type | Access | Description
Numerator | int | Read/write | A numerator
Denominator | int | Read/write | A denominator


IShellRect

What it does

Represents a rectangle.

Methods

Definition | Description
ToString() : string | Represents a rectangle as a string of the form "[left,top,right,bottom]"

Properties

Name | Type | Access | Description
Left | int | Read/write | Left coordinate
Right | int | Read/write | Right coordinate
Top | int | Read/write | Top coordinate
Bottom | int | Read/write | Bottom coordinate


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IShellRects

IShellRects

What it does

A collection of IShellRect objects.


ITaskWindow

What it does

Represents the task window.

Methods

Definition | Description
CloseDocument( document : IDocument ) | Closes the document for editing from script. When calling this method, the document state is changed.
CloseEditorWindow() | Closes the document editor. Important! When closing the document editor, all unsaved changes will be lost. When calling this method, the document state is changed.
CloseTask( bool ) | Closes the task with a warning that the process will be canceled (if the argument is set to true) or without a warning (if the argument is set to false).
DocumentState( document : IDocument ) : TDocumentState | Retrieves the document state in the task window. Note: The method cannot be invoked from a secondary thread.
EditDocument( document : IDocument, page : IPage ) : IDocumentEditor | Opens the document in the document editor for editing. Note: If the document is opened successfully, the object of the IDocumentEditor type is returned. Otherwise null is returned. When calling this method, the document state is changed.
OpenDocument( document : IDocument ) | Opens the document for editing from script. The method can be called even when the document is opened in the document editor with read-only permissions. When calling this method, thedocument stateis changed.
RejectTask( bool ) | Rejects the task with a warning that the process will be canceled (if the argument is set to true) or without a warning (if the argument is set to false.

Properties

Name | Type | Access | Description
Handle | int | Read only | The handle of the window
MainWindow | IMainWindow | Read only | The main window
Batch | IBatch | Read only | The batch
Mode | TTaskWindowMode | Read/write | The view mode
DocumentsWindow | IDocumentsWindow | Read only | The documents window
EditorWindow | IDocumentEditor | Read only | The document editor


ITextEditor

What it does

Represents a document field editor.

Methods

Definition | Description
GetSelection( startPos : int, endPos : int ) | Gets the beginning and the end of the selection. If no field is selected, assigns "0" to the startPos and endPos parameters.
SetSelection( startPos : int, endPos : int ) | Sets a new selection.
ApplyChanges() : bool | Applies made changes.
ResetChanges() | Resets made changes.
ShowSuggestList() | Shows the list of suggestions, if exists. Otherwise, nothing happens.

Properties

Name | Type | Access | Description
Control | IFieldControl | Read only | The field control
Modified | bool | Read only | Specifies whether the field is modified
Text | string | Read only | The text in the field
FormWindow | IFormWindow | Read only | The form window


IToolbar

What it does

A collection of IToolbarButton objects. Represents a toolbar.

Methods

Definition | Description
AppendButton( commandId : TCommandID, text : string ) : IToolbarButton | Appends a toolbar item with the command identifier commandId and the text Text at the end of the menu. Any command identifiers can be used (including CI_Separator), except CI_SubMenu and CI_Undefined. For CI_Separator, the Text parameter is ignored.
Delete( Index : int ) | Deletes an item by its index in the collection.
InsertButton( index : int, commandId : TCommandID, text : string ) : IToolbarButton | Inserts a toolbar item with the command identifier commandId and the text Text in the position Index of the toolbar. Any command identifiers can be used (including CI_Separator), except CI_SubMenu and CI_Undefined. For CI_Separator, the Text parameter is ignored.
Find( commandId : TCommandID ) : int | Searches for the index of the button with a specified identifier in the collection.
Reset() | Resets all changes and restores the original view of the toolbar.

Properties

Name | Type | Access | Description
Name | string | Read only | The name of the toolbar
Type | TCommandBarType | Read only | The type of the toolbar
Visible | bool | Read/write | Specifies whether the toolbar is visible


IToolbarButton

What it does

Represents a toolbar button.

Properties

Name | Type | Access | Description
Command | TCommandID | Read only | The command identifier. The returned value cannot be CI_SubMenu. If there is no identifier for a command among TCommandID values, CI_Undefined is returned
Enable | bool | Read/write | Specifies whether to enable toolbar buttons. If the value is set to false, all toolbar buttons with the specified identifier (the Command property) will be disabled. If the value is set to true, enabling toolbar buttons depends on the internal logic of the program.
Visible | bool | Read/write | Specifies whether a toolbar button or a separator is visible
Text | string | Read/write | The text on the toolbar button


You are here: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > IToolbars

IToolbars

What it does

A collection of IToolbar objects.


TCommandBarType

Description

The toolbar type. Applies in the IToolbar interface.

Types:

  • CBT_Undefined = 0 - An undefined toolbar.
  • CBT_GroupVerification = 1 - A toolbar with group verification commands.
  • CBT_FieldVerification = 2 - A toolbar with field verification commands.
  • CBT_Standard = 3 - A standard toolbar.
  • CBT_Navigation = 4 - A navigation toolbar. Contains buttons such as Previous Document, Next Document, Previous Item to Verify, etc.
  • CBT_Views = 5 - A toolbar for switching between the Details View and the Thumbnails View.
  • CBT_Tasks = 6 - A toolbar with task operation tools.
  • CBT_Setup = 7 - A toolbar with basic tools for managing project. Contains buttons such as Document Definitions…, Batch Types…, Project Properties…, etc.
  • CBT_ScanAndRead = 8 - A toolbar with image operation tools (import, recognition and other operations on images).
  • CBT_UserToolbar = 9 - A toolbar added by the user when specifying skin settings for a stage.


TCommandID

Description

The command identifier.

Admissible values:

Collapsed General
  • CI_SubMenu - a submenu title
  • CI_Separator - a separator
  • CI_Undefined - an undefined command identifier
Collapsed File menu commands
  • CI_NewProject - New Project…
  • CI_BrowseProject - Open Project…
  • CI_BrowseWebProject - Open Project from Server…
  • CI_CloseProject - Close Project
  • CI_UploadProject - Upload Project to Server…
  • CI_Save - Save
  • CI_NewBatch - New Batch…
  • CI_LoadImage - Load Images…
  • CI_ScanImages - Scan Images…
  • CI_ImportImage - Import Images…
  • CI_Export - Export
  • CI_ExportToFile - Export Data to Files
  • CI_ExportImages - Export Images to Files
  • CI_ExportToDB - Export to Database
  • CI_RecentFiles - Open Recent Project
  • CI_Exit - Exit ABBYY FlexiCapture 11
Collapsed Edit menu commands
  • CI_EditUndo - Undo
  • CI_EditRedo - Redo
  • CI_EditCut - Cut
  • CI_EditCopy - Copy
  • CI_EditPaste - Paste
  • CI_EditClear - Delete
  • CI_MergeDocuments - Merge Documents
  • CI_SplitDocuments - Split Document
  • CI_EditSelectAll - Select All
  • CI_EditFind - Find…
  • CI_EditFindNext - Find Next
  • CI_MoveToNextItem - Next Document
  • CI_MoveToPreviousItem - Previous Document
  • CI_ImageClean - Despeckle Image
  • CI_ImageInvert - Invert Image
  • CI_ImageMirrorHorizontal - Flip Horizontally
  • CI_ImageMirrorVertical - Flip Vertically
  • CI_ImageRotate90 - Rotate 90° Clockwise
  • CI_ImageRotate270 - Rotate 90° Counter-ClockWise
  • CI_ImageRotate180 - Rotate 180°
  • CI_ImageChangeResolution - Change Resolution
  • CI_ExportImage - Save Image

Additional commands for a remote Verification station (Field verification):

  • CI_EditDeleteAll - Delete All Characters
  • CI_EditInsertLineBreak - Insert Line Break
  • CI_VerificationMergeSymbols - Merge Characters
Collapsed View menu commands
  • CI_ShowTestBatches - Show Test Batches
  • CI_ShowWorkBatches - Show Batches
  • CI_ShowQueues - Show Queues
  • CI_ShowDetails - Show Details
  • CI_ShowThumbnails - Show Thumbnails
  • CI_SetupDetailsView - Choose Details to View
  • CI_DocModeImage - Document Editor in Image Mode
  • CI_DocModeForm - Document Editor in Data Mode
  • CI_DockImageOnTop - Image at Top of Document Editor
  • CI_DockImageOnBottom - Image at Bottom of Document Editor
  • CI_DocImageOnLeft - Image at Left of Document Editor
  • CI_DocImageOnRight - Image at Right of Document Editor
  • CI_DocImageUndocked - Undocked
  • CI_DocErrorsOnTop - Errors at Top of Document Editor
  • CI_DocErrorsOnBottom - Errors at Bottom of Document Editor
  • CI_DocErrorsOnLeft - Errors at Left of Document Editor
  • CI_DocErrorsOnRight - Errors at Right of Document Editor
  • CI_ImageScalePageWidth - Fit Image to Width
  • CI_ImageScalePageHeight - Fit Image to Height
  • CI_ImageScaleWholePage - Best Image Fit
  • CI_ImageScale400 - Scale Image to 400%
  • CI_ImageScale200 - Scale Image to 200%
  • CI_ImageScale100 - Scale Image to 100%
  • CI_ImageScale75 - Scale Image to 75%
  • CI_ImageScale50 - Scale Image to 50%
  • CI_ImageScale25 - Scale Image to 25%
  • CI_ImageScaleCustom - Custom Image Scale
  • CI_ImageScaleZoomIn - Zoom Image In
  • CI_ImageScaleZoomOut - Zoom Image Out
  • CI_TextSizeLargest - Largest Data Text
  • CI_TextSizeLarger - Larger Data Text
  • CI_TextSizeMedium - Medium Data Text
  • CI_TextSizeSmaller - Smaller Data Text
  • CI_TextSizeSmallest - Smallest Data Text
  • CI_ViewToolbarsLayout - Show Toolbar in Document Editor
  • CI_ShowFormatErrorInBallon - Show Format Errors in Ballon
  • CI_ShowFormatErrorInErrorView - Show Format Errors at the Top
  • CI_ShowFormatErrorInFormView - Show Format Errors at the Bottom
  • CI_BWImageMode - Show Images in Black and White
  • CI_ThumbnailSizeSmallest - Smallest Thumbnail Size
  • CI_ThumbnailSizeDefault - Default Thumbnail Size
  • CI_ThumbnailSizeLargest - Largest Thumbnail Size
  • CI_ThumbnailSizeIncrease - Increase Thumbnail Size
  • CI_ThumbnailSizeDecrease - Decrease Thumbnail Size
  • CI_ViewToolbarsStandard - Show/Hide Standart Toolbar
  • CI_ViewToolbarsDocuments - Show/Hide View Toolbar
  • CI_ViewToolbarsNavigation - Show/Hide Navigation Toolbar
  • CI_ViewToolbarsScanAndRead - Show/Hide Scanning Toolbar
  • CI_ViewToolbarsProjectSetup - Show/Hide Project Setup Toolbar
  • CI_ViewToolbarsTasks - Show/Hide Queues Tasks Toolbar
  • CI_ShowToolbar1 - Show Toolbars
  • CI_ViewStatusbar - Show/Hide Statusbar
  • CI_ViewFullScreen - Switch to Full Screen/Window
  • CI_Refresh - Refresh
  • CI_ViewProperties - Show Properties

Additional commands for a remote Verification station (Group verification):

  • CI_ShowFieldImage - Show/Hide Field Image
  • CI_ShowFieldImageOnTop - Show Field Image on Top
  • CI_ShowFieldImageOnBottom - Show Field Image on Bottom
  • CI_ShrinkToFit - Shrink Field Image to Fit
  • CI_ContextImageScale400 - Scale Field Image 400%
  • CI_ContextImageScale200 - Scale Field Image 200%
  • CI_ContextImageScale150 - Scale Field Image 150%
  • CI_ContextImageScale100 - Scale Field Image 100%
  • CI_ContextImageScale75 - Scale Field Image 75%
  • CI_ContextImageScale50 - Scale Field Image 50%
  • CI_ShowCharacterImage - Show Character Image
  • CI_ShowActionsToolBar - Show/Hide Actions Toolbar
  • CI_ShowVerInfoBar - Show/Hide Verification Info Bar
  • CI_VerificationOptions - Show Verification Preferences

Additional commands for a remote Verification station (Field verification):

  • CI_ShowRecognizedText - Show Recognized Text
  • CI_ShowSymbolImagesCutting - Show/Hide Character Images Cutting
  • CI_ShowSpecialSymbols - Show/Hide Special Characters
  • CI_ShowAnalogousFields - Show/Hide Analogous Field
Collapsed Task menu commands
  • CI_GetTask - Get Task
  • CI_ReturnTask - Close Task
  • CI_ShowTaskComment - Show Task Comment
  • CI_CancelTask - Reject Task
  • CI_DeferTask - Postpone Task
  • CI_SendTaskToException - Send Task to Exception
  • CI_SendTaskToRescan - Send Task to Rescanning Stage
  • CI_SendTaskToStage - Send Task to Stage
  • CI_AutoTaskReceive - Automatic Task Receive On/Off
  • CI_AddDocsToMarked - Add Documents to Marked
  • CI_UnmarksDocs - Unmark Documents
  • CI_MarkDocsToException - Mark Documents to Exception
  • CI_MarkDocsToRescan -Mark Documents to Rescanning
  • CI_MarkDocsToStage - Mark Documents to Stage
  • CI_ViewMarkedGroupList - View Marked Groups List
Collapsed Recognition menu commands
  • CI_ApplyTemplate - Analyze
  • CI_SetDocTemplate - Match Document Definition
  • CI_ReadActive - Recognize
Collapsed Verification menu commands
  • CI_VerifyAll - Run Verification
  • CI_GotoNextError - Next Item to Verify
  • CI_GotoPrevError - Previous Item to Verify
  • CI_GotoNextAssembleError - Next Document with Assembly Error(s)
  • CI_GotoPrevAssembleError - Previous Document with Assembly Error(s)
  • CI_GotoNextUnkCharacher - Next Uncertain Character
  • CI_GotoPrevUnkCharacher - Previous Uncertain Character
  • CI_GotoNextRuleError - Next Rule Error
  • CI_GotoPrevRuleError - Previous Rule Error

Additional commands for a remote Verification station (Group verification):

  • CI_VerificationConfirmAll - Confirm All
  • CI_VerificationPostponeAll - Postpone All
  • CI_VerificationToggleSelected - Toggle Selected Item
  • CI_VerificationNextPage - Next Verification Page
  • CI_VerificationPrevPage - Previous Verification Page
  • CI_VerificationClose - Close Verification

Additional commands for a remote Verification station (Field verification):

  • CI_VerificationConfirmField - Confirm Field
  • CI_VerificationNextUncertain - Next Uncertain Character
  • CI_VerificationPrevUncertain - Previous Unsertain Character
  • CI_VerificationNextField - Next Field
  • CI_VerificationPrevField - Previous Field
Collapsed Project menu commands
  • CI_ShowTemplatesList - Show Document Definitions List
  • CI_ShowBatchTypes - Show Batch Types List
  • CI_ShowImportProfiles - Show Import Profiles List
  • CI_SwitchToAdminMode - Switch to Admin Mode
  • CI_ProtectProject - Protect Project with Password
  • CI_UnprotectProject - Unprotect Project
  • CI_ExportProject - Export Project
  • CI_ImportProject - Update Project
  • CI_ViewProjectProperties - Show Project Properties
  • CI_CreateTestCopy - Create Test Copy
  • CI_CommitTestCopy - Commit Test Copy
  • CI_DeleteTestCopy - Delete Test Copy
Collapsed Tools menu commands
  • CI_DocPriorityLowest - Set Lowest Document Priority
  • CI_DocPriorityLow - Set Low Document Priority
  • CI_DocPriorityNormal - Set Normal Document Priority
  • CI_DocPriorityHigh - Set High Document Priority
  • CI_DocPriorityHighest - Set Highest Document Priority
  • CI_UpdateDocToLatestVersion - Update Documents to Latest Version of Project
  • CI_Reanalize - Re-Analyze
  • CI_Reread - Re-Recognize
  • CI_AssembleDocuments - Refresh Documents Assembly
  • CI_RecheckRules - Re-check Rules
  • CI_CheckBatchIntegrity - Check Batch Integrity
  • CI_BatchPriorityLowest - Set Lowest Batch Priority
  • CI_BatchPriorityLow - Set Low Batch Priority
  • CI_BatchPriorityNormal - Set Normal Batch Priority
  • CI_BatchPriorityHigh - Set High Batch Priority
  • CI_BatchPriorityHighest - Set Highest Batch Priority
  • CI_ChangeBatchType - Change Batch Type
  • CI_ViewOptions - Show Options
Collapsed Commands of the field local menu
  • CI_ExecuteCustomAction - Execute Custom Action
Collapsed User commands
  • CI_UserCommand - User commands
Collapsed Help menu commands
  • CI_HelpAbbyyWebSite - ABBYY Website
  • CI_HelpAbout - About ABBYY FlexiCapture
  • CI_HelpContent - Help Topics
  • CI_HelpPurchaseInfo - How to Buy ABBYY Products
  • CI_HelpSendFeedback - Send Feedback…
  • CI_HelpTechSupport - Technical Support


TDockingType

Description

The side of the principal window adjacent to the given window.

Admissible values:

  • DT_Undefined = 0 - The side is undefined or the windows are not adjacent.
  • DT_Left = 1 - The left side.
  • DT_Right = 2 - The right side.
  • DT_Top = 3 - The upper side.
  • DT_Bottom = 4 - The lower side.


TDocumentState

Description

The document state in the task window. Applies in the ITaskWindow interface.

Admissible values:

  • DS_Locked = 0 - The document is locked. No actions on the document are allowed.
  • DS_Edited =1 - The document is being edited in the document editor.
  • DS_Closed = 2 - The document is closed. It can be both opened and edited.
  • DS_Opened = 3 - The document is opened. It can be edited by using a script.
  • DS_EditedAndOpened = 4 - The document is being edited in the document editor and can be edited by using a script.
  • DS_EditedAndLocked = 5 - The document is opened in the document editor and locked from any actions.

Note: If the document is being edited in the document editor, its state changes to DS_EditedAndOpened.


TErrorType

Description

The type of an error. Applies in the IErrorControl interface.

Admissible values:

  • ET_Assembling = 0 - The assembly error
  • ET_Rule =1 - The rule error
  • ET_Format = 2 - The format error


TSelectionType

Description

Types of selection. Applies in the ISelection interface.

Admissible values:

  • ST_Undefined = 0 - Selection is undefined
  • ST_Documents = 1 - Selected documents
  • ST_Pages = 2 - Selected pages


TTaskWindowMode

Description

View modes. Applies in the ITaskWindow interface.

Admissible values:

  • TWM_Undefinied = 0 - View is undefined.
  • TWM_ListView = 1 - Details view.
  • TWM_ThumbnailView = 2 - Thumbnails view.


TTextSize

Description

The text size. Applies in the IFormWindow interface.

Admissible values:

  • TS_Undefined = 0 - Text size is undefined.
  • TS_Smallest = 1 - The smallest text size.
  • TS_Smaller = 2 - Small text size.
  • TS_Medium = 3 - Medium text size.
  • TS_Larger = 4 - Large text size.
  • TS_Largest = 5 - The largest text size.


TUserRole

Description

The role of the user. Applies in the IMainWindow interface.

Admissible values:

  • UR_Undefined = 0 - The role is undefined
  • UR_VerificationOperator =1 - The verification operator
  • UR_SeniorVerificationOperator = 2 - The senior verification operator


TWorkWindowType

Description

Types of working windows.

Types:

  • WWT_Undefined = 0 - The window type is undefined.
  • WWT_Task = 1 - The task window.


Creating a Machine-Readable Form

Questionnaires, social security forms, polling slips, and warranty cards are all different types of form used to collect different types of information.

How do forms differ from other types of document?

  1. A form always contains a set number of fields.
  2. Each field may contain only a certain type of information, e.g. a "Last Name" field contains only last names (if completed correctly) and a "Date" field contains only dates.
Forms are used when information needs to be gathered from a large number of respondents. Manual information gathering is a long and tiresome process and typos and errors are almost inevitable. Machine-readable forms are used to automate this process.

Automated forms processing consists of the following stages:

  1. Setting up the form-processing application (creating a Document Definition and specifying the fields to be recognized).
  2. Acquiring form images (scanning).
  3. Processing the form images (recognizing the images and validating the extracted data).
  4. Exporting the extracted data to an external information system.

Automated processing of forms is most effective for forms that satisfy the requirements discussed in this chapter.

Machine-Readable Forms
Elements of Machine-Readable Forms
Form Completion Methods
Types of Machine-Readable Form
Choosing the Right Type of Form
General Requirements for Machine-Readable Forms


Machine-Readable Forms

To read information on forms, a form-processing application has to:

  1. Determine the location of form elements.
  2. Separate field contents from field borders, text marking, backgrounds, explanatory text, etc.

Machine-readable forms enable the program to carry out these tasks.

For the first task to be carried out successfully, the forms must correspond to the form pattern or Document Definition, i.e. the location of all form elements must be identical on all forms of the same type.

For the second task to be carried out successfully, the forms must be designed with automated input in mind, i.e. so that the program can easily distinguish between the data to be captured and such non-recognizable form elements as field borders, text marking, backgrounds, or explanatory text.


Elements of Machine-Readable Forms

The following elements may be present on a form:

Text
Entry Field
Checkmark Field
Checkmark Group
Anchor
Line Separator
Form Identifier
Picture
Table
Group of Elements


Creating a Machine-Readable Form/Text

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Text

Text

Text is an element of a machine-readable form that contains descriptive text: form title, field names, explanations, etc.


Creating a Machine-Readable Form/Entry Field

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Entry field

Entry Field

An entry field is an element of a machine-readable form into which text is entered by the person completing the form. To facilitate text entry, entry fields may contain special text marking. Entry fields are usually accompanied by text describing or explaining the nature of the data to be entered.

Collapsed Show me an entry field

Possible text marking types are listed in the table below.

Text over a Line | Text is entered over a line.
Letters in Frames | Letters are entered into conjoined frames.
Letters in Separate Frames | Letters are entered into isolated frames.
Letters on a Comb | Letters are entered over a comb.
Text in a Frame | Text is entered in a frame.
Text in a Frame with a Comb | Text is entered in a frame with a comb.


Creating a Machine-Readable Form/Checkmark Field

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Checkmark field

Checkmark Field

A checkmark field is an element of a machine-readable form (usually a square called a "check box") in which a mark should be made by the person who completes the form.

A checkmark field usually has an accompanying text which explains the use of the checkmark.

Collapsed Show me a checkmark field

Possible shapes of checkmark fields are shown in the table below

Square
Circle
Underline

Other shapes are also possible, e.g. polygons, ovals, etc.


Creating a Machine-Readable Form/Checkmark Group

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Checkmark group

Checkmark Group

A checkmark group is an element of a machine-readable form that unites several checkmark fields of which only one must be checked. Checkmark groups are usually accompanied by explanatory text that explains the type of choice to be made.

Collapsed Show me a checkmark group


Anchor

An anchor is an element of a machine-readable form that is used to facilitate the matching of form images with Document Definitions and to determine the orientation of forms during automated processing.

Before the program can start recognizing the contents of the form, it must match the form with its Document Definition. All machine-readable forms of the same type must conform to one Document Definition, i.e. the location of all form elements must be exactly the same on all forms. The program will attempt to match the form with its Document Definition according to the number and location of the anchors on the form. If the program manages to match the anchors on the form with the anchors on the Document Definition, it will know exactly where to look for fields containing data to be recognized.

Standard anchors are listed in the table below.

Black Square
Corner
Cross
Timing Mark

For the best possible recognition results, it is advisable to have standard anchors on the form, but in some cases line separators, explanatory text or barcodes can also be used as anchors. However, standard anchors are more reliable and should always be your first choice.


Creating a Machine-Readable Form/Line Separator

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Separator

Line Separator

A line separator is an element of a machine-readable form in the shape of a vertical or horizontal black line.

Line separators are used to partition forms into several logical segments.


Creating a Machine-Readable Form/Form Identifier

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Identifier

Form Identifier

A form identifier is an element of a machine-readable form used to select the correct Document Definition if several Document Definitions have the same arrangement of anchors.

We recommend using barcodes as form identifiers.

A barcode is a set of vertical black and white lines of differing widths used to encode information.

Collapsed Show me a barcode

Other elements on the form can also be used as form identifiers.


Creating a Machine-Readable Form/Picture

You are here: Appendix > Creating machine-readable forms > Machine-readable form elements > Picture

Picture

A picture is an element of a machine-readable form that should not be recognized and should be exported as an image file.

For example, the part of the form where a stamp or signature should be put is a picture.


Table

A table contains columns with same-type elements.

Table columns can contain elements of the following types:

  • text
  • entry field
  • date
  • number
  • checkmark

A table can contain a line with column headers.


Group of elements

Group of elements – an element of a machine-readable form that serves to combine several logically linked elements in a group.


Form Completion Methods

A form may be completed in one of the following ways:

  • By hand

  • Using a dot-matrix printer

  • Using a typewriter

  • At a printing shop (this includes forms completed using inkjet or laser printers with a resolution of no less than 300 dpi)

  • Using a combination of the above


Types of Machine-Readable Form

Machine-readable forms are designed for automated data input, i.e. the program should be able to easily distinguish between the data to be captured and the non-recognizable form elements, such as field borders, text marking, backgrounds, or explanatory text.

This can be achieved in one of two ways:

  1. The form must be designed in such a way as to make the field borders, background and text marking disappear after scanning, or

  2. The form must be designed in such a way as to make the field borders, background and text marking stand out clearly after scanning.

If the first approach is used, only the anchors, explanatory text, and entered data will remain on the form after scanning. As a result, the program will not have to separate the data from form elements, which will make recognition more easy and reliable.

In this case, the following types of forms are used: color dropout forms, black-and-white forms with raster backgrounds, black-and-white forms with raster borders, and black-and-white linear forms.

If the second approach is used, the anchors, explanatory text, entered data, as well as text marking and field borders will remain on the form after scanning. The program will look for information that is surrounded by field borders and text marking. If these form elements are missing, recognition quality will be adversely affected.
In this case, black-and-white linear forms are used.


Dropout Forms

Dropout forms have a light color background with white rectangles serving as character cells, checkmark fields, etc.

Gray dropout forms, whose background is gray, are an example.

Color dropout forms include forms on which only element borders are colored.

A character cell is a small rectangle into which only one character should be entered (e.g. a letter or a digit). The color of the background is very important because it must disappear during scanning. The background is usually light red-orange or green. For the list of recommended colors, see Recommended Colors for Dropout Forms.

Collapsed Show me a dropout form

Ideally, all form elements, with the exception of the anchors, should disappear during scanning, leaving only the field contents to be recognized on the form image.

Explanatory text can be either retained (if printed in black) or filtered out together with the background. For explanatory text to disappear during scanning, it must be printed in the same color as the form's background but with greater saturation.

When deciding whether to print explanatory text in black or in background color, the following should be taken into account:

  • The size of the image file will be bigger if the explanatory text is retained.

  • There should be at least 1.5-2 mm of space between the explanatory text printed in black and other elements on the form. The gap between the explanatory text and the corresponding checkmark field must not be less than 2/3 of the size of the checkmark field. If the explanatory text is printed in background color, spaces between the text and other form elements are not so crucial.

Forms with explanatory text printed in black are more legible. We recommend printing explanatory text in black, especially if there are no anchors on the form.

Tip. When creating a Document Definition for a form with explanatory text printed in background color, be sure to scan the form in color or in grayscale mode to make the explanatory text and elements on the form clearly visible.

Dropout forms must be scanned using a color lamp or filter. The color of the lamp is selected depending on the color of the background.

Forms with red or green backgrounds must be scanned either on a:

  • Color scanner, using color filtering software
  • Non-color scanner, using a red or green lamp (hardware color filtering)
  • Non-color scanning, using a white lamp and a red or green filter (filtering quality in this case is much lower, as the background may not disappear completely, or field contents may be inadvertently removed), or
  • Non-color scanner, using a white lamp without any filters
    When scanning with a white lamp, some lighter backgrounds can be removed without filtering: the weak saturation of the background will ensure its disappearance during scanning. In this case, the color and saturation of the background must be selected by trial-and-error for each particular scanner.
Note: Many color scanners also have software filtering used to filter out blue colors. However, we do not recommend using shades of blue on your forms, as forms are likely to be completed using not only black but also blue ink. Field contents written in blue ink will disappear.

Choosing the right color

Red-orange colors are preferable to green because they represent the greatest possible contrast to blue, which results in better scanning and recognition quality if the forms are completed using blue ink.

In Recommended Colors for Dropout Forms You will find the recommended colors for form processing, i.e. those most likely to disappear during scanning with almost any scanner. A "dropout" color list for a particular scanner (in Pantone or any other format) can also be obtained from your scanner manufacturer/dealer.


Black-and-White Forms with Raster Background

You are here: Appendix > Creating machine-readable forms > Types of machine-readable forms > Black-and-white forms with a raster background

Black-and-White Forms with Raster Backgrounds

Fields on such forms are simply white spaces (usually rectangles) on a raster background. The background is made up of individual dots. The recommended size of the dots is no more than 0.1 mm, with the distance between each dot about 1 mm. The size of the dots and distance between the dots are crucial, because a raster background is removed during despeckling rather than during scanning: the program will treat the dots as garbage and remove them. The dots should therefore not be glued together on scanned images.


Black-and-White Forms with Raster Borders

These forms have no background. All field borders (borders of character cells, checkmark fields and other form elements) are made up of raster lines, i.e. sequences of small black dots. Raster dot size is usually 0.39-0.5 pt. The recommended size is 0.39 pt, with the distance between the raster dots being at least five times greater than the dot size. The size of the dots and distance between them are crucial, because a raster background is removed during despeckling rather than during scanning: the program will treat the dots as garbage and remove them. The dots should therefore not be glued together on scanned images.


Black-and-White Linear Forms

These forms usually have no background. All field borders (character cells, checkmark fields and other form elements) are made up of solid black lines. Field borders do not disappear as a result of scanning or despeckling.

Note: Forms of this type must be completed very neatly. If the forms are completed carelessly, letters may overlap the field borders, thus reducing recognition quality. This is because whenever the field content overlaps the field borders, it is extremely difficult for the application to separate the borders from the text. Ideally, the entered text should not touch the field borders.


Choosing the Right Type of Form

In addition to the design and processing requirements for each type of form, other criteria also need to be taken into consideration when choosing a form type. These include printing costs and methods, the number of copies required, the resulting image size, scanning modes, the required degree of recognition accuracy, form processing speed, overall appearance of the forms, how neatly they will be completed, etc. The table below summarizes the advantages and disadvantages of each form type.

Criteria | Dropout Form |  | Black-and-White Raster Form |  | Black-and-White Linear Form
 | Disadvantage | Advantage | Disadvantage | Advantage | Disadvantage | Advantage
Design Complexity |  | Easy to design using any graphics editor. | Text editors offer limited tools for designing this type of form. The size of raster dots is crucial. |  |  | Easy to design using any graphics editor
Printing | Difficult to print large quantities of good quality forms in-house. |  |  | Easy to print in-house. |  | Easy to print in-house.
Printing Costs | If professional printing services are used, printing costs are higher compared with black-and- white forms. |  |  | If professional printing services are used, printing costs are lower compared with dropout forms. |  | If professional printing services are used, printing costs are lower compared with dropout forms
Image Size |  | Image file sizes are smaller. | Image file sizes are larger. |  | Image file sizes are larger. |
Scanning Mode | Only special scanning modes (color filtering) may be used. |  | Limited range of brightness and contrast settings. |  | Limited range of brightness and contrast settings. |
Processing Speed |  | Higher average processing speed. | Average processing time is longer, because the images need to be despeckled. |  | Errors are more likely if characters are glued together or overlap field borders. |
Recognition Quality |  | Very high recognition quality. |  | High recognition quality. | Recognition quality largely depends on how neatly the form has been filled out. | High recognition quality if the form has been filled out correctly.
Location of explanatory text |  | Explanatory text may be placed anywhere, including inside fields (as long it is printed using the same color as the form background). | Explanatory text and other form elements must be carefully arranged on the form. |  | Explanatory text and other form elements must be carefully arranged on the form. |
Form Appearance and Legibility | Low contrast settings of background and explanatory text may adversely affect form legibility. | Aesthetically pleasing | Less eye-catching design. Lower legibility. |  | Less eye-catching design. | Good legibility.
Neatness of Completion |  | Less sensitive to text overlapping field borders. | Small characters must be written very carefully and be large enough not to be removed as garbage. | Less sensitive to text overlapping field borders. | Very sensitive to text overlapping field borders. |


General Requirements for Machine-Readable Forms

Let us now consider the general requirements a form must meet in order to be machine-readable.

Form Background Requirements
Anchor Requirements
Checkmark Field Requirements
Text Marking Requirements
Element Positioning Requirements
Print Quality Requirements
Form Completion Requirements


Form Background Requirements

  1. Use dropout forms or forms with raster field borders if possible.
  2. Use a color that vanishes during scanning when creating a dropout form. See the list of recommended colors in Recommended Colors for Dropout Forms.
  3. Always ensure that a there is a space between the explanatory text and the field contents. In the case of dropout forms we recommend that any information be printed in the same color as the form background (except where explanatory text is used as an anchor instead of or in conjunction with black squares). By printing information in the same color as the background, you are then free to place it anywhere on the form, including inside the form fields.
  4. Do not use blue colors for forms which are to be completed by hand. The blue background may merge with the blue ink which is likely to be used to complete the forms. This will adversely affect recognition quality.


Anchor Requirements

  1. Standard anchors are recommended for use on machine-readable forms (i.e. black squares, corners, crosses). The recommended number of anchors is five: four anchors in each corner of the form (they should form a rectangle if imaginary lines are drawn between each pair) and one square on one of the sides of the imaginary rectangle.
  2. If, for some reason, standard anchors cannot be used, we recommend that the following combinations of elements be used as anchors:
    a) at least two vertical line separators and two horizontal line separators
    b) at least four text elements and one form identifier element
    c) other combinations are also possible
  3. The distance between the edge of an anchor and the nearest form element should not be less than 3 mm.
  4. The distance between an anchor and the edge of the page should not be less than 8 mm.
  5. Anchors should be printed using a dark color (black is recommended) so that they do not disappear during scanning.

In addition to the general requirements listed above, each anchor type has its own specific requirements:

Requirements for Black Squares

Black squares on the same form type should all be of the same size i.e. between 4х4 mm and 8х8 mm. The recommended size is 5х5 mm. Rectangles are not permitted.

Requirements for Crosses and Corners

  1. The size of an imaginary square that could be drawn around an anchor of this type must be between 4x4 and 8x8 mm. The recommended size is 5x5 mm.
  2. The size of anchors of one type must be the same within one form.
  3. All the sides of an anchor must be of equal size.
  4. The line thickness used for anchors on the same form must be the same and be within the range from 0.3 to 1 mm. The recommended thickness is 0.5 mm.

Requirements for Text (if used as anchors)

The font size should not be less than 7 pt (headers – no less than 14 pt).

Requirements for Line Separators (if used as anchors)

Line thickness should not be less than 1 pt. The recommended thickness is 1-1.5 pt.

Requirements for Barcodes (if used as anchors)

  1. The barcode width (the distance between the leftmost and the rightmost bars) should not be less than 47-50 mm.
  2. The barcode height should not be less than 12-15 mm (digits not included).
  3. The barcode orientation (direction of the bars) should be the same as the page orientation (it is recommended to scan the pages in the direction of the bars).
  4. The EAN 13 barcode format is recommended.
  5. The recommended distance between a barcode and any other form element is no less than 10 mm.


Checkmark Field Requirements

  1. The recommended field sizes are 3.5x3.5 mm, 4x4 mm, 4.5x4.5 mm, or 5x5 mm (if circular checkmark fields are used, they must fit into squares of recommended sizes).
  2. The recommended line width for checkmark field borders is 0.4 mm (irrespective of the size of the field).


Text Marking Requirements

Raster dot size:

  1. If the field borders are raster dots, the thickness of the raster line (i.e. the raster size) must be 0.39 pt.

  2. The optimal distance between the raster dots is five times their size.

    Important! The dots most likely to be glued together are dots in the corners of character cells.

    Tip. If your software does not allow you to specify the distance between each raster dot, you must choose a line style which has dots located at sufficient distance from each other to prevent them from becoming glued together on the scanned image, and from remaining on the image after image despeckling. This is because big dots are not interpreted by the OCR system as garbage and are not removed from the image during despeckling.

Character cell size:

  1. The recommended size of character cells is 4х5 mm; the use of smaller sizes requires a greater degree of accuracy from those completing the form, and this is very difficult to achieve. Large character cells are also not advisable as this encourages the use of abnormally large letters. Ideally, the character cell size should reflect the average letter size.
  2. The distance between field lines should be no less than 2.5 – 3 mm, and the distance between two adjacent character cells in the same line should be no less than 1-1.2 mm.
    Collapsed Show me character cells

Line thickness:

  1. If the borders are black lines ("text in a frame", "letters in separate frames", or "letters in frames"), the line thickness should be 1 pt.
    Collapsed Show me black line borders

Combs:

  1. The recommended distance between the notches in a comb is 5 mm.
  2. The distance between the horizontal lines of two combs, when positioned one below the other, should be no less than 7.5 – 8 mm.
  3. The notch height must be around 0.9 – 1.2 mm.
  4. The thickness of both the notches and horizontal lines should be 1 pt.
  5. If frames with a comb are used, the minimum distance between frames should be 2.5 – 3 mm.
    Collapsed Show me a comb


Element Positioning Requirements

  1. Be sure to provide sufficient margins on your form, otherwise form elements located too close to the sides of the form may disappear during scanning, causing loss of data.
  2. The space between neighboring form elements should not be less than 2 mm.
  3. The space between a checkmark field and explanatory text should not be less than 2/3 of the checkmark field size.
  4. Make sure that the explanatory text does not overlap entry field borders.
  5. If explanatory text is printed in black ink, make sure there is a gap of at least 1.5-2 mm between the explanatory text and the other elements. This distance is not so crucial for explanatory text printed in the same ink as the background.


Print Quality Requirements

When you print blank forms, keep in mind the following requirements:

  1. The forms must be printed either professionally or using a printer. We recommend that color forms be printed professionally. If this is impossible, test the form color on a scanner before starting your print run.
  2. All the copies of the form must be printed using the same source document, as the field location on each form must be identical.
  3. The minimum margin size (i.e. the distance between the edge of the page and the nearest form element) should be at least 8 mm (12 mm margins are recommended).
  4. The permitted linear deviation of form elements is no more than 0.15% ( i.e. 0.5 mm for an A4-size page).
  5. If you print your forms using a printer, do not print them with a resolution less than 600 dpi.
  6. We recommend printing the forms with the help of the same scanner or different scanners of the same model.

Tip. We do not recommend copying machine-readable forms using copying equipment. Use of such equipment can slightly change dimensions of elements on the form or their arrangement, for example, table or entry fields borders may become thicker, or color depth may change, which might be detrimental to recognition quality.


Form Completion Requirements

Pens and ink

Forms are best completed neatly, in capital letters, using a black ball-point, gel or capillary pen (dark blue and violet are also acceptable). Soft-tip/felt-tip pens are not to be recommended as characters are likely to be very thick, causing recognition problems. Recognition is worst in the case of forms completed by pencil or using a light ink.

Letter size and style

For best recognition results, forms should be completed in block capital letters. The letters must fill out all character cells but must not overlap cell borders.

If character cells are visually marked on the forms (i.e. the following text marking types are used: letters in frames, letters in separate frames), the person filling out the form will be less likely to join the letters together.

The following text marking types present greater problems for recognition: text in a frame with a comb, letters on a comb. Here only the width of the character cell is predefined, while the absence of side borders makes joining letters together possible. In the case of the comb without a frame, the letters can be written either too small or too large.

If text in a frame or text over a line are used, there is no evident restriction on the width of the character cells. The letters may be joined together, which will have an adverse effect on recognition quality. In the case of text over a line there are no restrictions on character height. Therefore this marking type is not recommended for forms requiring a high degree of recognition accuracy.

Another important requirement is that the letters do not overlap the field borders. This is not so crucial for dropout or black and white raster forms, because field borders will disappear during scanning and despeckling. But if letters overlap field borders on black-and-white linear forms, this may result in a significant decrease in recognition quality.

Sample

To encourage correct completion, we recommend including a note on your form similar to the one below.


Recommended Colors for Dropout Forms

The table below contains dropout color samples and their corresponding Pantone numbers. These background colors disappear if forms are scanned:

  • Using any scanner

  • Using a color scanner with software red color filtering or using a non-color scanner with a red lamp/red filter


Hot keys

You are here: Appendix > Hot keys

Keyboard Shortcuts

This section lists the keyboard shortcuts used in different windows of the program. Using shortcuts will save time and make work more convenient.

Project Setup Station Keyboard Shortcuts
Verification Station Keyboard Shortcuts
Data Verification Station Keyboard Shortcuts
Main Window Keyboard Shortcuts
Document Definition Editor Keyboard Shortcuts
Group Verification Keyboard Shortcuts
Field Verification Keyboard Shortcuts


Hot keys in the main window

You are here: Appendix > Hot keys > Main window hot keys

ABBYY FlexiCapture Main Window Keyboard Shortcuts

Menu | Command | Shortcut
File | New Project… | Ctrl+Shift+N
 | Open Project… | Ctrl+Shift+O
 | Save | Ctrl+S
 | New Batch… | Ctrl+N
 | Load Images… | Ctrl+O
 | Scan Images… | Ctrl+K
 | Import Images… | Ctrl+I
 | Export | Ctrl+U
 | Export to Data to Files… | Alt+Shift+S
 | Export to Database… | Alt+Shift+D
 | Exit | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Find… | Ctrl+F
 | Find Next | F3
 | Go To > Next Document | Ctrl+D
 | Go To > Previous Document | Ctrl+Shift+D
 | Image > Despeckle | Ctrl+Alt+K
 | Image > Invert | Ctrl+Alt+V
 | Image > Rotate 90° Clockwise | Ctrl+W
 | Image > Rotate 90° Counter-Clockwise | Ctrl+Shift+W
View | Test Batches | Ctrl+Shift+B
 | Working Batches | Ctrl+B
 | Details | Alt+1
 | Thumbnails | Alt+2
 | Image Mode | Ctrl+1
 | Data Mode | Ctrl+2
 | Zoom In | Ctrl+Num+
 | Zoom Out | Ctrl+Num-
 | Thumbnails Size: Increasе | Ctrl+Shift+Num+
 | Thumbnails Size: Decrease | Ctrl+Shift+Num-
 | Full Screen | F11
 | Refresh | F5
 | Object Properties | Alt+Enter
Recognition | Analyze | Ctrl+E
 | Match Document Definition… | Alt+Shift+E
 | Recognize | Ctrl+R
Verification | Run Verification… | F7
 | Next Item to Verify | F4
 | Previous Item to Verify | Shift+F4
 | Next Document with Assembly Error(s) | F9
 | Previous Document with Assembly Error(s) | Shift+F9
 | Next Uncertain Character | F8
 | Previous Uncertain Character | Shift+F8
 | Next Rule Error | F6
 | Previous Rule Error | Shift+F6
Project | Document Definitions… | Ctrl+T
 | Batch Types… | Ctrl+Shift+T
 | Image Import Profiles… | Ctrl+Shift+I
Tools | Update to Latest Version | Alt+Shift+U
 | Re-analyze | Ctrl+Alt+E
 | Re-recognize | Ctrl+Alt+R
 | Re-check Rules | Ctrl+F6
 | Check Batch Integrity | Ctrl+Shift+E
Help | Help Topics | F1
General Commands | Open the document window (if a document or page is selected) | Enter
 | Registration parameters | Ctrl+P


Hot keys in Document Definition editor

You are here: Appendix > Hot keys > Document Definition editor window hot keys

Document Definition Editor Keyboard Shortcuts

Menu | Command | Shortcut
Document Definition | Add Pages… | Ctrl+P
 | Add Document Section… | Ctrl+Alt+S
 | Document Definition Properties… | Ctrl+T
 | Save | Ctrl+S
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Delete Region | Shift+Del
 | Select All | Ctrl+A
 | Select Regions by Type… | Ctrl+Shift+A
 | Select Fields by Type… | Ctrl+Shift+F
 | Create Field - Text | Alt+Shift+T
 | Create Field - Checkmark | Alt+Shift+C
 | Create Field - Checkmark Group | Alt+Shift+M
 | Create Field - Barcode | Alt+Shift+B
 | Create Field - Picture | Alt+Shift+P
 | Create Field - Table | Alt+Shift+L
 | Create Field - Group | Alt+Shift+G
 | Group | Ctrl+G
 | Ungroup | Ctrl+Shift+G
 | Copy Text from Image… | Ctrl+Alt+C
 | Image > Despeckle | Ctrl+Alt+K
 | Image > Invert | Ctrl+Alt+V
 | Image > Rotate 90° Clockwise | Ctrl+W
 | Image > Rotate 90° Counter-Clockwise | Ctrl+Shift+W
View | Static Elements | Ctrl+1
 | Field Regions | Ctrl+2
 | Show Document Structure | Alt+F1
 | Document Structure - Fields | Alt+1
 | Document Structure - Pages | Alt+2
 | Data Form | Alt+F2
 | Image Scale - Zoom In | Ctrl+Num+
 | Image Scale - Zoom Out | Ctrl+Num-
 | Properties | Alt+Enter
Document | Run Test. | Ctrl+R
Tools | Autodetect Objects by Type… | Ctrl+D
 | Check Document Definition | F9
 | Match Section | Ctrl+E
Help | Help Topics | F1

Image Window

Command | Shortcut
Select Regions | Esc
Autodetect Objects | Ctrl+Shift+D
Create Anchor | A
Create Separator | S
Create Anchor Text | X
Create Anchor Barcode | D
Create Text | T
Create Checkmark | C
Create Checkmark Group | M
Create Barcode | B
Create Image | P
Create Table | L
Create Group | G
Create Region for Field without Region | R
Create Non-Recognized Region | O
Create Field Column | U
Add Separator to Table | F
Delete Separator from Table | E
Adjust Region | Ctrl+Alt+A
Suggest Name | Ctrl+Alt+N
Get Name from Image… | Ctrl+Alt+I
Detect Marking Type | Ctrl+Alt+D

Document Structure Window

Command | Shortcut
Show Field Image | Enter
Rename Field | F2
When a field is selected:
Add Column with Text | Alt+Shift+T
Add Column with Checkmarks | Alt+Shift+C
Add Column with Barcodes | Alt+Shift+B
Add Column with Images | Alt+Shift+P
When a checkmark group is selected:
Add Checkmark | Alt+Shift+C


Hot keys in the group verifier window

Menu | Command | Hot keys
Verification | Confirm All | Enter
 | Postpone All | Ctrl+Enter
 | Toggle | Space
 | Next Page | Page Down
 | Previous Page | Page Up
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Select All | Ctrl+A
View | Field Image > Show Field Image | Ctrl+I
 | Field Image > On Top | Alt+1
 | Field Image > On Bottom | Alt+2
 | Field Image > Image Scale > Zoom in | Ctrl+Num+
 | Field Image > Image Scale > Zoom out | Ctrl+Num-
 | Show Character Image | F2
 | Full Screen | F11
Help | Display Help | F1
Local Characters Menu | Show Character Image | F2
 | Confirm | Ctrl+E
 | Postpone | Ctrl+R
 | Reset | Esc


Hot keys in the field verifier window

Menu | Command | Hot keys
Verification | Confirm Field | Enter
 | Postpone | Ctrl+Enter
 | Next Uncertain Character | F4
 | Previous Uncertain Character | Shift+F4
 | Next Field | Page Down
 | Previous Field | Page Up
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Insert Line Break | Shift+Enter
 | Merge Characters | Ctrl+M
View | Field Data > Recognized Text | Alt+F1
 | Field Data > Character Images Cutting | Alt+F2
 | Field Image > Show Field Image | Ctrl+I
 | Field Image > On Top | Alt+1
 | Field Image > On Bottom | Alt+2
 | Field Image > Image Scale > Zoom in | Ctrl+Num+
 | Field Image > Image Scale > Zoom out | Ctrl+Num-
 | Show Character Image | F2
 | Full Screen | F11
Help | Display Help | F1


Shortcuts

You can customize hotkeys to access commands which are used often. In the main menu, select Tools>Options… and then open the Keyboard Shortcuts tab.

To configure keyboard shortcuts, proceed as follows:

  1. Select a category in the Categories drop-down list. Select All commands if you are not sure what category you need.
  2. Select a command in the Commands list. The Current shortcut list contains hotkeys for the selected command.
  3. To assign a new hotkey, click on the Press new shortcut field and then press a combination of keys. It is displayed in the field. Press the Assign button to save a new shortcut. If it is used to access another command, information message will be displayed. Press the Yes button to change the command or the No button to discard your changes.
  4. To remove an existing shortcut for a command, select it in the Current shortcut list and then press the Delete Shortcut button.
  5. To restore shortcuts for a selected command to default settings, press the Reset button. If you want to restore shortcuts for all commands, press the Reset All button.


FormReader 6.5 and FlexiCapture rules compared

FormReader 6.5

 Equivalent in FlexiCapture Automatic conversion

Check against a database

Database Check rule

No

Check sums

Check Sum rule

No

Merge blocks

Merge Fields rule

Yes

VBScript rules

Script rule

No

Search in the list of suggestions

Field properties, Data tab. List the variants in the Constraints field. Works for all types except Date and Number. See Data types of the text entry field.

 Yes

Match blocks

Can be implemented via a script rule.

 No

If-Then rules

Script rule

No

Replace values from the list

Field properties, Data tab. Text type, Processing field. See Data types of the text entry field.

 Yes

Replace characters from the list

Field properties, Data tab. Text type, Processing field. See Data types of the text entry field.

 Yes

Normalize and check dates

Field properties, Data tab. In the Category list, select Date; in the Formats list, select the required formats; in the Constraints field, enter the required constraints. See Data types of the text entry field.

 No

Regular expressions

Field properties, Data tab. Enter the required regular expression in the Constraints field. Works for all types except Date and Number. See Data types of the text entry field.

 Yes

Automation check

In the previous version of the application, the use of Automation objects required registering the components on the target computer, which made it difficult to transfer batches from one computer to another. In the new version, the logic of the majority of such rules is best implemented through scripts.

If the logic of the rule is too complex and requires an external component to be used, the component should be called from within the code of a script rule. Then a reference to the object on the checked document should be passed to the component.

 No

Normalize prices

Can be implemented through an external COM component called from a script rule.

 No

Validate passport series and number

Can be implemented through an external COM component called from a script rule.

 No

Sum in digits - sum in writing

 Sum in figures - sum in words rule No

Price in digits - price in writing

Can be implemented through an external COM component called from a script rule.

 No


Additional options

You can set up document processing and the program interface to suit your needs. In the main window of the program, select Tools>Options… The dialog that opens contains tabs Colors, Dialogs, Keyboard Shortcuts, Task Progress and Document Processing:

  • Task Progress

    When tasks are executed in background mode, you can monitor the process in the task progress window, by reading the log file, and reading the pop-up tips. On this tab, you can select which information should be entered into the log file and in which cases balloon messages should be displayed.

  • Colors

    You can change the color if interface elements (e.g. the frames that enclose selected fields in the Document Definition editor or the frames and fill-in color of fields with errors and warnings). Select the desired element and then click the Color button.

  • Document Processing

    Images can be recognized automatically immediately after they have been added to the batch if you select the Recognize added images automatically option.

    Recognition can be ran in background mode (select Run recognition process in background mode).

    If Skip erroneous documents on manual exportis selected, both successfully processed documents and documents with errors will be exported.

    If an script error is detected, the Visual Studio debugger is launched. For Active Scripting scripts, you may select Disable external script debugging if you do not wish the debugger to be launched. Only an error message will be displayed.

  • Dialogs

    By default, when you launch the program the Open Project dialog box is displayed, where you can select one of the existing projects. You can disable this dialog box by clearing the Show 'Open Project…' dialog on startupoption on the Dialogs tab (alternatively, you can disable this dialog by clearing the same option in the dialog itself).

    When you are closing a list of Document Definitions, the program warns you of any unpublished Document Definitions. If you do not wish this warning message to be displayed, clear the option Show warning if unpublished Document Definition exists (alternatively, you can disable this dialog by clearing the same option in the dialog itself).

    If you want notifications to be shown when exporting documents with errors selectShow warning on erroneous document export.

    Select Prompt save changes when switching between documents if you want the program to display a confirmation dialog before saving changes when you switch to another document. If this option is not enabled, changes will be saved automatically.

  • Keyboard Shortcuts

    You can customize keyboard shortcuts on this tab.


ABBYY FlexiCapture sample projects

To see how ABBYY FlexiCapture works and to better understand its features, you can use the sample projects included with the program. These ready-made projects contain set-up Document Definitions and document images for processing.

You can find the sample projects in %allusersprofile%\Application Data\ABBYY\FlexiCapture\11.0\Samples.

Note: Under Microsoft Windows Vista, Windows 7, Windows Server 2008 and Windows Server 2008 R2 the sample projects can be found in %public%\ABBYY\FlexiCapture\11.0\Samples.

The Samples folder contains the following folders:

  1. FlexiCapture - This folder contains the sample FlexiCapture projects.
  2. FlexiLayoutStudio - This folder contains the sample FlexiLayout Studio projects. These sample projects illustrate the processing of semi-structured documents and should be opened in ABBYY FlexiLayout Studio. Detailed description for some of these projects is available in the FlexiLayout Studio help file (see the Tutorial and Tips and Tricks sections).
  3. FormDesigner - This folder contains fixed forms developed in ABBYY FormDesigner. The *.fdd should be opened in ABBYY FormDesigner. These forms are used in the following sample FlexiCapture projects: Banking Card Application, Questionnaire.
  4. Images - This folder contains scanned document images for the sample FlexiCapture projects.

Below follows a list of the sample FlexiCapture projects and their brief description.

A sample project with documents of different types

The project folders contain sample FlexiCapture projects.

  1. Single Entry Point

    This project shows how documents of different types can be processed. No preliminary document sorting is required, fixed forms and flexible documents can be processed together. The Document Definitions used in this project are also used in the projects described below.

    The project contains all types of documents Banking Card Applications, Invoices, Contracts, Letters, Prices.

Sample projects with fixed forms

The project folders contain forms created in ABBYY FormDesigner and FlexiCapture projects.

  2. Banking Card Application

    This sample project illustrates the following capabilities:

    • Automatic detection of fields on fixed forms (to see how autodetection works, delete all fields from the Document Definition and select Tools >Autodetect Objects by Type…)
    • Support for documents with complex structures:
      1. Multipage documents (three-page applications are used in the sample project)
      2. Working with document sections (in the sample project, each page is a separate section)
      3. Document assembly rules
      4. Annex processing
    • Support for complex fields:
      1. Working with tables on fixed forms (Opened Accounts table)
      2. Repeating field groups (Address and Requested Accounts groups)
    • Data format checks (the formats for all numerical fields and date fields are specified)
    • Customizing the data form.
    • Export to multiple destinations.
    • Editing out of confidential information (redaction).
  3. Questionnaire

    A detailed description of this sample project can be found in the user's guide. The project shows how to set up a Document Definition step by step. A number of simpler forms are used to illustrated the basic ABBYY FlexiCapture features. You can complete the questionnaire in this sample project, process it in ABBYY FlexiCapture and send the exported data to ABBYY.

Sample projects with flexible forms

The project folders contain FlexiLayout Studio projects and FlexiCapture projects.

  4. Invoice

    This sample project illustrates the processing of semi-structured documents and illustrates the following capabilities:

    • Variable number of pages in documents (from 1 to 3)
    • Tables extending over multiple pages
    • The use of an external keyword dictionary (a text file)
    • A JScript rule is used to compare the sum in the Total field with the sum obtained by adding up the Total values from all table rows.
  5. Prices

    This sample project illustrates the processing of semi-structured documents and illustrates the following capabilities:

    • Support for repeating groups. This sample project shows how repeating groups can be used to describe nested tables (tables with subheadings)
  6. Letters&Contracts

    This sample project illustrates the processing of unstructured documents from which 2 or 3 fields are captured. The project illustrates the following capabilities:

    • Variable number of pages in documents (from 1 to 4)
    • Setting up export to Searchable PDF.


Supported recognition languages

ABBYY FlexiCapture supports the following recognition languages with dictionary support:

Language | OCR* | ICR**
Armenian (eastern, western, Grabar) | ü |
Bashkir | ü |
Bulgarian | ü | ü
Catalan | ü |
Croatian | ü | ü
Czech | ü | ü
Danish | ü |
Dutch (Netherlands and Belgium) | ü | ü
English | ü | ü
Estonian | ü | ü
Finnish | ü | ü
French | ü | ü
German (old, new spelling) | ü | ü
Greek | ü | ü
Hebrew | ü |
Hungarian | ü | ü
Indonesian | ü | ü
Italian | ü | ü
Latvian | ü | ü
Lithuanian | ü | ü
Norwegian (Nynorsk and Bokmal) | ü |
Old English | ü |
Old French | ü | ü
Old German | ü | ü
Old Italian | ü | ü
Old Spanish | ü | ü
Polish | ü | ü
Portuguese (Portugal and Brazil) | ü |
Romanian | ü | ü
Russian | ü | ü
Slovak | ü | ü
Slovenian | ü | ü
Spanish | ü | ü
Swedish | ü |
Tatar | ü |
Thai | ü |
Turkish | ü | ü
Ukrainian | ü | ü

To read more about fonts for supported languages, see section "Fonts required for correct rendering of characters of supported data types in ABBYY FlexiCapture editor".

A full, updated list of supported data types and their details are available at http://www.abbyy.com.

* - OCR - Optical Character Recognition. Optical recognition of printed texts.

** - ICR - Intelligent Character Recognition. Recognition of hand-printed texts.


Fonts required for correct rendering of characters of supported data types in the FormReader editor

You are here: Appendix > Fonts for correct character rendering

Fonts required for correct rendering of characters of supported languages in the ABBYY FlexiCapture editor

Language | Font
With dictionary support
Armenian (eastern, western, Grabar) | Arial Unicode MS(2)
Tatar | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Without dictionary support
Abkhazian | Arial Unicode MS(2)
Adygei | Arial Unicode MS(2), Lucida Sans Unicode(3)
Aghul | Arial Unicode MS(2), Lucida Sans Unicode(3)
Altaic | Arial Unicode MS(2), Lucida Sans Unicode(3)
Avar | Arial Unicode MS(2), Lucida Sans Unicode(3)
Azerbaijani (Cyrillic), Azerbaijani (Latin) | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Bashkir | Arial Unicode MS(2), Palatino Linotype(2)
Buryat | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Chechen | Arial Unicode MS(2), Lucida Sans Unicode(3)
Chukchi | Arial Unicode MS(2), Lucida Sans Unicode(3)
Chuvash | Arial Unicode MS(2)
Dargin | Arial Unicode MS(2), Lucida Sans Unicode(3)
Dungan | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Gagauz | Arial Unicode MS(2)
Hausa | Arial Unicode MS(2), Lucida Sans Unicode(3)
Ingush | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kabardian | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kalmyk | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Karakalpak | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Kazakh | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Khakas | Arial Unicode MS(2)
Khanty | Arial Unicode MS(2)
Koryak | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kyrgyz | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Lak | Arial Unicode MS(2), Lucida Sans Unicode(3)
Lezgin | Arial Unicode MS(2), Lucida Sans Unicode(3)
Mansi | Arial Unicode MS(2), Lucida Sans Unicode(3)
Mari | Arial Unicode MS(2)
Mongol | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Nenets | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Ossetic | Arial Unicode MS(2)
Russian (old spelling) | Arial Unicode MS(2), Palatino Linotype(2)
Tabassaran | Arial Unicode MS(2), Lucida Sans Unicode(3)
Tajik | Arial Unicode MS(2), Palatino Linotype(2)
Turkmen | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Tuvan | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Udmurt | Arial Unicode MS(2)
Uzbek (Cyrillic) | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Yakut | Arial Unicode MS(2)
Zulu | Arial Unicode MS,(2), Lucida Sans Unicode(3)

(1) http://www.microsoft.com/

(2) MS Office 2000

(3) Windows NT 4.0


Supported text types

ABBYY FlexiCapture supports the following text types:

Text type | Description
Typographic, laser and ink-jet printers | Texts printed at a print shop, on a laser printer, or on an ink-jet printer.
Typewriter | Typewritten texts.
Matrix printer | Texts printed on a dot-matrix printer.
Index | A special set of characters that includes only digits written in ZIP-code style. They look as follows:
OCR-A | A monospaced font designed for Optical Character Recognition. Largely used by banks, credit card companies, and similar businesses. It may look as follows:
OCR-B | A font designed for Optical Character Recognition. It may look as follows:
MICR E-138 | A special set of numeric characters printed with special magnetic ink. MICR (Magnetic Ink Character Recognition) characters are found in a variety of places, including personal checks. It may look as follows:
MICR CMC-7 | A special MICR barcode font (CMC-7). It may look as follows:


Supported barcode types

ABBYY FlexiCapture supports the following barcode formats:

  • EAN 13
  • EAN 8
  • Code 39
  • Code 39 without asterisk
  • Check Code 39
  • Interleaved 25
  • Check Interleaved 25
  • Code 128
  • Codabar
  • UPC-A
  • UPC-E
  • Code 93
  • UCC-128
  • PDF-417
  • IATA 25
  • Matrix 25
  • Industrial 25
  • PostNet
  • Patch code
  • Check CodaBar
  • Aztec
  • Datamatrix
  • QR code

Note: For recognizing barcodes in cyrillic encoding, the Datamatrix, PDF417 or QRCode format should be used.


Supported graphic formats

Type | Color
BMP | b/w, gray, color
PCX, DCX | b/w, gray
PNG | b/w, gray, color
JPEG | gray, color
JPEG-2000* | gray, color
TIFF b/w – uncompressed, CCITT3, CCITT4, Packbits, ZIP;
gray – uncompressed, Packbits, JPEG, ZIP;
color – uncompressed, JPEG, ZIP.
JBIG2 | b/w
GIF | color
PDF, PDF/A**
PDF, PDF/A** searchable
DjVu | b/w, gray, color

* - Lossy compression is used for JPEG-2000 images.

** - PDF/A files created with ABBYY FlexiCapture are PDF/A-1a and PDF/A-1b compliant. By default, PDF/A-1a files are created. To enable export to PDF/A-1b, specify the following value in the registry:

HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\11.0\Export\UseTaggedPdfExport = false

Note: When processing PDF files that contain vector graphics, their visual quality may deteriorate as the PDF file is rasterized and the output file contains a bitmap image.


Export file formats

You are here: Appendix > Export file formats

File formats to which ABBYY FlexiCapture exports data from documents

  • Microsoft Office Excel Workbook (*.XLS)
  • DBase file (*.DBF)
  • Comma Separated Values File (*.CSV). ABBYY FlexiCapture supports various code pages (Windows, DOS)
  • Comma Separated Values File (*.CSV) in Unicode format (UTF-8, UTF-16)
  • Simple text (*.TXT). ABBYY FlexiCapture supports various code pages (Windows, DOS)
  • Simple text (*.TXT) in Unicode format (UTF-8, UTF-16)
  • XML Document (*.XML)


Alphabet used in regular expressions

Name | Conventional designation | Usage example
Any character | * | "c"*"t" – allows such words as cat, cot, etc.
Letter | C | C"ot" – allows such words as Rot, pot, cot, Dot, mot, etc.
Uppercase letter | A | A"ot" – allows such words as Rot, Cot, Mot, Dot, etc.
Lowercase letter | a | a"ot" – allows such words as rot, cot, mot, dot, etc.
Letter or number | X | X – allows any standalone number or letter.
Number | N | N"th" allows such words as 5th, 4th, 6th, etc.
String | " " | "cot"
Or | | | "pl"("o"|"a")"t" – allows words "plot" and "plat".
Character from group | [] | [tm]"ot" – allows words "tot" and "mot".
Character not from group | [^] | [^t]"ot" – allows words "cot", "lot", etc., but does not allow the word "tot".
Space (within group) | \s | [A\s] allows only the letter A or a space.
Any number of repetitions (applies to the expression or subexpression on the left) | {-} | [AB74]{-} – allows any combinations of characters A, B, 7, 4 of any length.
Number of repetitions n | {n} | N{2}"th" allows such words as 25th, 84th, 11th, etc.
From n to m repetitions | {n-m} | N{1-3}"th" allows such words as 5th, 84th, 111th, etc.
From 0 to n repetitions | {-n} | N{-2}"th" allows such words as 84th, 5th, etc.
From n repetitions and more | {n-} | N{2-}"th" allows such words as 25th, 834th, 311th, 34576th, etc.
Subexpression | () |
Hyphen symbol | [\-] |
Slash symbol | [\\] |

Examples of regular expressions:

  1. Postal code: [0-9]{6}
    An sample value: "142172"
  2. Zip code (USA): [0-9]{5}("-"[0-9]{4}){-1}
    Sample values: "55416", "33701-4313"
  3. Income: N{4-8}[,]N{2}
    Sample values: "15000,00", "4499,00"
  4. Month in the numerical form: ((|"0")[1-9])|("10")|("11")|("12")
    Sample values: "4", "05", "12"
  5. Fraction: ("-"|)([0-9]{1-})(|(("."|",")([0-9]{1-})))
    Sample values: "1234,567", "0.99", "100,0", "-345.6788903"
  6. E-mail: [A-Za-z0-9_]{1-}(("."|"-")[A-Za-z0-9_]{1-}){-3}"@"[A-Za-z0-9_]{1-}(("."|"-")[A-Za-z0-9_]{1-}){-4}"."([A-Za-z]{2-4}|"asia"|"museum"|"travel"|"example"|"localhost")
    Sample values: "support@abbyy.com", "my-name@company.org.ru", "info@gallery.museum"


Third-party technologies

© 1984-2011 Adobe Systems Incorporated and its licensors. All rights reserved.

Protected by U.S. Patents 5,929,866; 5,943,063; 6,289,364; 6,563,502; 6,639,593; 6,754,382; Patents Pending.

Adobe, the Adobe logo, Acrobat, the Adobe PDF logo, Distiller and Reader are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Portions of this computer program are copyright © 2008 Celartem, Inc. All rights reserved.

Portions of this computer program are copyright © 2011 Caminova, Inc. All rights reserved.

Portions of this computer program are copyright © 2013 Cuminas, Inc. All rights reserved.

DjVu is protected by U.S. Patent No. 6,058,214. Foreign Patents Pending.

Powered by AT&T Labs Technology.

PixTools © 1994-2007 EMC Corporation. All rights reserved.

WIBU, CodeMeter, SmartShelter, SmartBind are registered trademarks of Wibu-Systems.

Portions of this software are copyright © 2012 University of New South Wales. All rights reserved.

© 2001-2006 Michael David Adams

© 1999-2000 Image Power, Inc.

© 1999-2000 The University of British Columbia

This software is based in part on the work of the Independent JPEG Group.

© 1991-2013 Unicode, Inc. All rights reserved.

The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc.

Portions of this software are copyright © 1996-2002, 2006 The FreeType Project (www.freetype.org). All rights reserved.

© ParaType, 2003

EMC2, EMC, Captiva, ISIS and PixTools are registered trademarks, and QuickScan is a trademark of EMC Corporation.

Kodak is a registered trademark of Eastman Kodak Company.

.NET, Access, Active Directory, ActiveX, Aero, Excel, Hyper-V, InfoPath, Internet Explorer, JScript, Microsoft, Office, Outlook, PowerPoint, SharePoint, Silverlight, SQL Azure, SQL Server, Visual Basic, Visual C++, Visual C#, Visual Studio, Windows, Windows Azure, Windows Power Shell, Windows Server, Windows Vista, Word are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.

All other trademarks are the property of their respective owners.

The TWAIN Toolkit is distributed as is. The developer and distributors of the TWAIN Toolkit expressly disclaim all implied, express or statutory warranties including, without limitation, the implied warranties of merchantability, noninfringement of third party rights and fitness for a particular purpose. Neither the developers nor the distributors will be liable for damages, whether direct, indirect, special, incidental, or consequential, as a result of the reproduction, modification, distribution or other use of the TWAIN Toolkit.

JasPer License Version 2.0

© 2001-2006 Michael David Adams

© 1999-2000 Image Power, Inc.

© 1999-2000 The University of British Columbia

All rights reserved.

Permission is hereby granted, free of charge, to any person (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

  1. The above copyright notices and this permission notice (which includes the disclaimer below) shall be included in all copies or substantial portions of the Software.
  2. The name of a copyright holder shall not be used to endorse or promote products derived from the Software without specific prior written permission.

THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.


Glossary

You are here: Appendix > Glossary

A

ABBYY FlexiCapture

A software solution for single-flow input of data from various document types – structured (fixed forms), semi-structured (flexible forms and documents) and unstructured (free-format documents).

ABBYY FlexiLayout Studio

A program allowing you to create a flexible description of the document structure, which can then be used for automatic document recognition.

ABBYY FormDesigner

ABBYY FormDesigner is used to design layouts of machine-readable forms. Once replicated and filled out, these forms can be processed with the ABBYY FlexiCapture automated form input system. Form layout design is an important stage, since the quality of the designed layout (its machine readability) determines the effectiveness of all subsequent processing stages: scanning, recognition, verification, and export.

ABBYY FlexiCapture for Invoices

An ABBYY FlexiCapture is an easy-to-use, intelligent software solution for processing invoices.

ADF

Automatic Document Feeder. A device for automatic document feeding that enables you to scan any number of documents without performing additional manual operations.

Administrator

A user of ABBYY FlexiCapture who is authorized to configure the program for document input: creating and editing Document Definitions and import profiles.

Alphabet

A set of characters used in the language being described.

Anchor

A static element in the form of a black square, rectangle, cross or corner intended for Document Definition matching. Details... Collapsed Anchors are special elements of form design, which are used by the system to perform matching after scanning (eliminates skewing, compensates linear and nonlinear defects of scanning, calculates the location of blocks). The most reliable anchors are black squares that are normally located in the corners of a form. If no special anchors are present on the image, other static elements can be used to match the Document Definition: separators, i.e. vertical or horizontal lines, such as table lines, frames, etc., or clear static text, namely: form header, field signatures, explanatory information, etc. The option Use for Document Definition matching must be enabled for static elements used for Document Definition matching.

Anchor barcode

A static element representing a barcode that is not intended for data extraction. An anchor barcode can be used for Document Definition matching or identification.

Anchor text

A static element representing a text that is present on a blank form and is not intended for data extraction. This may be any explanatory text or header. Anchor text can be used for Document Definition matching or identification.

Angle

An anchor shaped as an angle.

Annex

Pages that do not contain fields, but are included in document assembly. No data is extracted from these pages, but they may be saved as images or PDF searchable files. See Creating Document Definitions for documents with annexes.

Assembly error

This error occurs when a document that was created during document assembly contains pages from other documents, when its own pages are in the wrong order, or when the values of key fields in the document's pages do not match.

B

Barcode

A machine-readable form element represented as alternating white and black bars of a certain length, which encode digital information. A barcode in a document may be used to extract information (barcode field) or to match and identify a Document Definition (anchor barcode).

Barcode field

A Document Definition field containing a barcode intended for recognition.

Barcode recognition

Conversion of a graphic barcode image to numbers or text.

Batch type

The property of a batch that defines how documents in the corresponding batches are to be processed. See Batch types

Black-and-white line form

A form in which borders of information fields are formed by ordinary lines that do not disappear during scanning.

Black square

An anchor shaped as a black square.

Brightness

A threshold of light sensitivity that determines at which point the scanner detects grayscale halftones as white.

C

Checkmark

A machine-readable form element that is filled with a mark (tick, cross, dot, inked out, etc.) by the person filling out a form.

Checkmark field

A Document Definition field containing a checkmark.

Checkmark group

An element of a machine-readable form uniting several checkmarks located nearby. One or several checkmarks can be selected in a checkmark group.

Checkmark group field

A Document Definition field containing a checkmark group.

Classifier

A project created in FlexiLayout Studio and intended for preliminary identification of pages prior to applying Document Definitions as well as for selecting the matching FlexiLayout or layout alternative.

Code page

A table of values that describes the character set for a particular language.

Color background form

A form in which all information fields are white rectangles against a color background that disappears during scanning.

Contrast

Ratio between the brightness of the darkest and lightest areas on an image.

Corrected checkmark

A checkmark that was selected mistakenly and then inked out. If the option Allow corrections is enabled for the checkmark field, the program will recognize the inked out checkmark as unselected.

Cross

An anchor shaped as a cross.

Custom data type

User-defined data type. See Creating custom data types.

D

Database lookup

Matching recognized data against corresponding database records.

Data set

Data used for automated document checks. A data set may be stored as a table in ABBYY FlexiCapture and synchronized according to a schedule or retrieved from an external source.

Data type

A field attribute describing known constraints of possible field values. It is used during field recognition to reduce the number of possible recognition variants. Details... Collapsed One of the field's characteristics is a data type: number, date, text, last name, given name, address, etc. A data type defines the set of words that can occur in the given field. Data type is an important recognition parameter that affects recognition quality. A correctly specified data type can significantly reduce the number of incorrectly recognized characters.

Description file

An auxiliary file that defines how a batch is formed when images are being added from a hot folder. For details see Description file.

Dictionary

A list of words used to determine a specific data type. Details... Collapsed A dictionary is specified when creating a data type. As a result, the data type attached to a field determines the dictionary used during recognition and verification. In addition to the existing predetermined data types with ready dictionaries, the program allows you to attach data types created on the basis of custom dictionaries. You can type in dictionary data manually or load them from a file.

Document

A combination of one or several page images and data extracted from them.

Document batch

A combination of documents grouped by the user. A batch normally contains the stack of documents scanned in a single pass or imported from a particular folder. See Document batches.

Document data

Data captured after processing (recognition, verification and editing of recognition results) of document page images.

Document Definition

A Document Definition defines the principles of identification and processing of this type of documents and contains:

  • The document structure, i.e. description of the allowable order of pages forming the document of this type. The document structure defines the rule of document assembly.
  • Definitions of document sections.
  • List of rules that must be satisfied by field data.
  • Location of fields and their signatures in the data window (data form view).
  • Export settings for this type of documents.
  • Processing settings for this type of documents.

Document Definition identification

A process of selecting the required Document Definition with the help of identifiers.

Document Definition matching

A process of selecting a Document Definition and matching its fields against an image.

Document Definition publication

Allowing access to a new Document Definition version once it has been edited. A published version participates in the processing of documents from work batches, while an unpublished, local version can participate only in the processing of Document Definitions from test batches. See Editing and publishing a Document Definition.

Document Definition Section

A component of a Document Definition. Corresponds to one or several pages containing a logically complete set of fields. Fields within one section can continue from one page to the next (for example, multipage tables), while field sets from various sections do not intersect.
A section definition can be flexible or fixed.

Document error

If, during document processing, it turns out that document data does not fully match either the document structure and specified field value constraints or control rules, all mismatches will be recorded in the document's errors and warnings list.

Document text

All of the text from the document that was captured from the document during preliminary recognition, before the FlexiLayout is applied. You may choose to save this text (requires additional space on the hard disk) so that it can be used during verification.

Dot-matrix printer

A type of recognizable text that represents a text printed with a dot-matrix printer.

dpi

Dots per inch. Number of dots per inch; a measurement unit of image resolution.

E

Environment variable

A string that is used to store text, e.g. system settings. Environment variables may be used to store database connection strings and variables that are used when specifying the names of exported files.

Explanatory text

A machine-readable form element that represents a descriptive text (form name, field names, explanations to fields, etc.).

Export

A process of transferring processed data to an external information system or file.

Export profile

A set of settings that determines what is done with processed data: the format of output files, the output path, export conditions, etc.

External database

A text file or an ODBC-compatible database that stores reference data. Reference data may include the possible values of captured fields or information required for capturing fields.

F

Field

A document element intended for data extraction. Fields may be simple (without an internal structure) or composite, such as the table field where each cell can be viewed as a separate subordinate field of the table. See Creating fields of a Document Definition.

Field region

An image region highlighted in the Document Definition and intended for data extraction.

Field verification

A verification mode whereby recognized characters are submitted for verification within the context of a field. Details... Collapsed In the field verification mode, uncertain characters are checked within the context of the entire field.Fields with the option Send to field verification enabled are submitted for field verification. We recommend submitting for field verification those fields whose values range is known or can be determined easily. Examples of such fields are country or city names: we know what values this field can have.

Field with several instances

A field used to describe several objects of the same type (recurring objects). In essence, these multiple objects are one and the same field and share the same properties. Fields with several instances are used to avoid the need to create several identical fields. Fields with several instances are exported to separate files or database tables. See Fields with several instances.

Field with several regions

A field consisting of several regions on the image. Such regions may be located at a distance from one another and even on different pages. Values from all regions belonging to the same field are combined and exported together as one field. Normally used for objects located on several pages, such as large tables. See Fields with several regions.

Field without a region

A field detected in a Document Definition but not having a region on the image. See Fields without a region.

Fixed form

A document with fixed information fields whose formatting, number and layout are strictly defined and do not change from one document instance to another.

Fixed Document Definition

A definition of a document or its section designed for processing fixed forms. Fields in a fixed Document Definition have fixed locations.

FlexiLayout

Description of the flexible document structure. This description is designed with ABBYY FlexiLayout Studio and exported to ABBYY FlexiCapture. FlexiLayout is a kind of instruction for detecting and identifying fields in a flexible form.

Flexible description

A formalized description of the document structure, designed to help detect fields. Created with ABBYY FlexiLayout Studio. File format – *.afl. See FlexiLayout.

Flexible Document Definition

A definition of a document or its section designed for processing flexible documents. Created by attaching a flexible description. Fields in such a Document Definition do not have fixed locations. They are detected with the help of a flexible description. See Creating a Document Definition for processing flexible documents.

Form

A document comprising one or several pages designed to be filled out by a person by hand or using any other printing technique.

Format error / warning

This error occurs when a value extracted from a field does not match the specified format, e.g. a numbers-only field contains letters, or the value is not in the list of permitted values.

Form input

Data capture from information fields in forms.

Framed text

Type of text marking where a frame delimits the text. Show... Collapsed

Framed text over a comb

Type of text marking where text is delimited by a frame with a bottom boundary shaped as a comb. Show... Collapsed

G

Gray background form

A form in which all information fields are white rectangles against a gray background that disappears during scanning.

Group verification

A verification mode whereby identically recognized characters are submitted for verification in groups. Details... Collapsed Fields for which the option Send to group verification is enabled are submitted for group verification. We recommend submitting characters from number fields as well as checkmarks for group verification.

H

Handprinted text

A type of recognizable text that represents a text printed by hand in distinct type.

Hot folder

A folder on the hard drive of a local or remote computer, which is used for importing images. It is normally used for periodically recurring image uploads without the user's involvement. See Image import profiles.

I

Identifier

A static element used for certain selection of a Document Definition from among several Document Definitions with identical locations of anchors. The option Use for Document Definition identification must be enabled in the properties of such static elements.

Ignored character

A character occurring inside words (for example, a bullet) or a soft hyphen character (tabulation, etc.) whose presence does not prevent the program from attributing the word to a recognizable data type. Details... Collapsed These characters are excluded from words, i.e. the words are attributed to particular data type without these characters.

Image

An electronic image of a scanned page from a hardcopy document.

Image despeckling

Removal of noise from the image. Noise can appear during scanning, and it is recommended that it be removed to enable better data recognition. During despeckling, the program also removes background dots or boundary lines of raster forms.

Image import

A process of adding images to a batch for processing. Import can be performed by adding images from files, from a scanner or using import profiles. See Adding page images.

Image replacement

Replacement of one image with a different one when editing a Document Definition.

Image rotation

Rotation of an image around its center.

Import profile

A combination of settings used to add images to a batch: import source, image processing options, hot folder cleanup options, etc. See Image import profiles.

Incorrectly recognized character

Status automatically assigned to a character in the process of recognition if it has been recognized with a considerable degree of uncertainty.

Index field

A field whose value is used to index documents for sorting and search purposes. See Index fields.

Inverted image

An image with light-colored text against a dark background.

Invoice

A document that lists goods that have been supplied, their quantity, price, characteristics (such as color, weight, etc.), shipment conditions, and details of the parties. Invoices can be processed by means of a separate solution, ABBYY FlexiCapture for Invoices. See " What Is ABBYY FlexiCapture for Invoices? "

ICR, Intelligent Character Recognition

This refers to technologies or systems designed for mass processing of documents filled with handprinted letters and numbers, i.e. recognition of handprinted characters.

K

Key field

A field that enables automatic checking of page assembly into documents. The values of key fields must be identical on all pages of the same document.

L

Language (local)

A field property that determines the writing language and relevant sets of regional parameters (such as the date or address writing style).

Letters in frames

Type of text marking where every character is delimited by a frame; frames are not isolated from one another. Show... Collapsed

Letters in isolated frames

Type of text marking where every character is delimited by a frame; frames are isolated from one another. Show... Collapsed

Letters over a comb

Type of text marking where a "comb" delimits the text. Show... Collapsed

M

Machine-printed text

A type of recognizable text that has been printed using typographic equipment or a laser or ink-jet printer with a minimum resolution of 300 dpi.

Machine-readable form

A form designed especially for automated input. It contains work elements (anchors, barcodes, lines, etc.) that are required to process it successfully.

Manual entry field

A Document Definition field containing unrecognizable text (for example, text consisting of fused letters) that has to be entered from the keyboard.

MRC

Mixed Raster Content. A process of using image segmentation methods to improve the contrast resolution of a raster image composed of pixels.

Monospaced text

Type of text marking where each letter is located within a frame of the same height and width, but the frame border disappears during scanning.

Multipage document

A document made up of several pages.

O

OCR (Optical Character Recognition)

Optical recognition of printed texts.

OMR (Optical mark recognition)

This technology enables ABBYY FlexiCapture to both recognize ordinary marks (ticks, crosses, etc.) on forms with a high degree of certainty and to correctly identify marks that were made by mistake and then inked out.

Operator

A user of ABBYY FlexiCapture who is tasked with document entry: adding images, performing recognition and verification, exporting recognized data.

P

Page

Image of a paper document page and results of its processing.

Page layout

A scheme showing the location of fields on an image.

Page orientation

Page location relative to the standard alignment: top to bottom, left to right. Page orientation can be determined automatically during page image recognition; to this end ABBYY FlexiCapture allows you to specify possible orientations.

Picture

An element of a machine-readable form that is not subject to recognition but intended for export in the form of a graphic object (for example, a file).

Picture field

A Document Definition field containing a picture.

Prerecognition

Full-text recognition of document images to facilitate field detection by means of a Document Definition.

Prohibited character

A character that you are certain will not occur in the data being recognized. Details... Collapsed Specifying such characters may considerably increase the speed and quality of recognition. For example, when recognizing texts with only uppercase letters, specify all lowercase letters as prohibited characters.

Project

A project is a single environment uniting the document batches and settings required to process them, such as Document Definitions, import profiles, etc. See Creating a project.

R

Raster form

A form in which information fields are represented as white rectangles against a gray background consisting of raster lines or rectangles delimited by raster lines.

Raster line

A line consisting of equally spaced dots.

Recognition

A process of matching image elements against specific characters.

Recognition

Language that ABBYY FlexiCapture bases on when recognizing.

Regular expression

Description of the structure of a word or any entered value using a special language. The program allows you to specify not just the set of allowable characters, but also the structure of field contents. You can describe the structure with a regular expression when setting constraints for a text field or when creating a custom data type. See Alphabet used in regular expressions.

Rule error / warning

This error occurs when data extracted from one or more fields does not satisfy rules that are applied during automatic checks, e.g. the sum of all values from a column does not match the sum indicated in the field that contains the total.

Resolution

Image parameter. Resolution is measured in dots per inch (dpi).

Rules

Certain conditions imposed on data in fields and automatically checked by the program. See Rule validation.

Rule validation

An automatic check of recognized data against preset rules. See Rule validation.

S

Scanning

A process of getting an electronic image of a paper form using a scanner.

Section of a Document Definition

A set of pages (or a single page) and the fields on them, which corresponds to a logically complete part of a document. Document sections can be described using a fixed or flexible Document Definition. See Creating Document Definitions for multipage documents.

Semi-structured document

Document containing a set of information fields whose design, number and layout may vary significantly in different instances of the document. See Types of documents processed with ABBYY FlexiCapture.

Separator

A machine-readable form element representing a vertical or horizontal line.

Set of allowable characters

A set of characters occurring in the data type being recognized.

Collapsed Details

This set is determined by the data type. That is, the type of data attached to a field determines the set of characters used during recognition.

In addition to selecting characters included in this set, you may configure additional parameters restricting this set. For example, you may specify:

  • Characters that you know will not occur when a given field is recognized – prohibited characters (for example, you may specify all lowercase letters as prohibited for a field where only uppercase characters may occur).
  • Characters that may occur inside words without affecting their verification – ignored characters (for example, hyphens, stress marks, etc.).

Simple text

A type of text marking where text is inserted in a block without any delimiters.

Single-flow data input

Automated data extraction from analog (printed) and digital (scanned image) documents.

Single-flow document input

Automated conversion of hardcopy documents into electronic form.

Static elements

Unrecognizable elements intended for Document Definition matching and identification. Such elements are: anchors, anchor text, separators, anchor barcodes.

T

Table

Data arranged in a two-dimensional grid that is not necessarily visible. The program processes tables consisting of columns with same-type data and repeating rows.

Table field

A Document Definition field containing a table. It is a composite field, with every table column representing a set of fields of the same type: text, checkmarks, barcodes or pictures.

Test batches

Document batches designed for Document Definition testing and configuration. Local copies of document batches are used to process test batches. See Document batches.

Text field

A machine-readable form element designed for text entry when filling out a form.

Text field marking

A graphic element delimiting a text field: frame, comb, line.

Text marking

The design of a page region intended for text input. See samples of text formatting in the Entry field topic.

Text orientation

Direction of text in a field relative to the page.

Text recognition (OCR, ICR)

Conversion of a graphic image to text.

Text sample

A file containing samples of all alphabet characters.

Training [Document Definition]

A feature in ABBYY FlexiCapture for Invoices that allows users to train the program to capture data from specific kinds of invoices. Training improves the quality of data capture and can be done either when setting up the program or while processing invoices.

Typewriter

A type of recognizable text that represents a text printed with a typewriter.

U

Underlined text

Type of text marking where underlining delimits the text. Show... Collapsed

User dictionary

An auxiliary dictionary created by the user which contains words not included in the built-in dictionaries. Built-in dictionaries can be supplemented with a user dictionary to improve the quality of data capture. Typically, a user dictionary will contain specialized terms, abbreviations, company names, etc.

Unrecognizable region

An image region excluded from recognition. An unrecognizable region is required to exclude a region with explanatory text or picture that complicates field recognition. See Excluding a region from recognition.

Unstructured document

A document containing information presented in a free form. Examples of such documents are contracts, letters, orders, graphs. See Processing unstructured documents.

V

Vendor

A legal or physical person that sells goods or services. Vendors issue invoices for their goods and services. Data from invoices can be captured by means of ABBYY FlexiCapture for Invoices.

Verification

Verification consists in checking that the data have been recognized, pages have been assembled into documents correctly, and rules returned no errors. Verification is done on the Operator Station. See Verification.

W

Work batches

Document batches intended for data input. Only published Document Definitions are used for processing work batches. See Document batches.

Writing style

A manner of writing that is specific to a particular group. For example, the American manner of writing numbers. Details... Collapsed This option is used for configuring the writing style of handprinted letters in forms. The choice of a writing style depends on the are where form processing takes place (Russia, Germany, the Czech Republic, the USA, etc.).

X

XFD

XML Form Definition (*.xfd) – a special file format of a form designed with ABBYY FormDesigner. An XML Form Definition format file is used to create Document Definitions in ABBYY FlexiCapture.


Technical support

Should you have any questions about using ABBYY FlexiCapture, please consult the detailed description of functionality in the Help Topics and User Guide supplied with ABBYY FlexiCapture. You may also browse the technical support section on our Website www.abbyy.com where you may find an answer to your question.

To provide expert advice, our technical support service requires the following information:

  • Last name, first name, patronymic
  • Organization name
  • Phone number (fax, e-mail address)
  • Serial number of your installation package
  • Build (see Help/About ABBYY FlexiCapture)
  • General description of the problem with the full error message text (if available)
  • PC and processor type
  • Windows OS version
  • Other information you consider important
Address and contact details of ABBYY offices


How to buy ABBYY FlexiCapture

To submit a purchase order for ABBYY FlexiCapture or ask any related questions, please contact regional offices of ABBYY.


ABBYY Offices

USA, Mexico and Central America | ABBYY USA Phone: +1 408-457-9777 Fax: +1 408-457-9778 Address: 880 North McCarthy Blvd., Suite 220 Milpitas, CA 95035, USA E-mail: sales@abbyyusa.com Support e-mail: support@abbyyusa.com Web: http://www.abbyy.com
Canada | ABBYY Canada Phone: +1 408 457 9777 Fax: +1 408 457 9778 Address: 555 Legget Dr., Suite 304 Kanata, Ontario K2k 2X3, Canada E-mail: info_canada@abbyyusa.com Support e-mail: support_canada@abbyyusa.com Web: http://www.abbyy.com
Taiwan | ABBYY Taiwan Address: 3F., No.156, Jiankang Rd., Songshan Dist., Taipei City 105, Taiwan (R.O.C.) E-mail: info_taiwan@abbyyusa.com Support e-mail: support_taiwan@abbyyusa.com Web: http://www.abbyy.com
Western Europe | ABBYY Europe GmbH Phone: +49 (0)89 511 159 0 Fax: +49 89 (0)511 159 59 Address: Elsenheimerstraße 49, 80687 Munich, Germany E-mail: sales_eu@abbyy.com Support e-mail: support_eu@abbyy.com Web: http://www.abbyy.com http://www.abbyy.de http://www.france.abbyy.com
Eastern Europe and the Mediterranean | ABBYY Ukraine Phone: +380 44 490 9999 Fax: +380 44 490 9461 Address: P.O. Box 23, 02002 Kiev, Ukraine E-mail: sales@abbyy.ua Support phone: +380 44 490 9463 Support e-mail: support@abbyy.ua Web: http://www.abbyy.ua
Africa, Asia, South America, Greece and Baltic countries | ABBYY 3A Phone: +7 495 783 3700 Fax: +7 495 783 2663 Address: P.O. Box 32, Moscow 127273, Russia E-mail: sales_3A@abbyy.com Support e-mail: support@abbyy.com Web: http://www.abbyy.cn http://www.abbyy.com.br http://latam.abbyy.com
United Kingdom | ABBYY UK Ltd. Phone:+0870 600 0231 Fax: +01344 392 611 Address: Abbey House, Grenville Place, Bracknell RG12 1BP, United Kingdom E-mail: sales_UK@abbyy.com Support E-mail: support_eu@abbyy.com Web: http://www.abbyy.co.uk
Japan | ABBYY Japan Phone:+81-42-795-1901 Fax: +81-42-795-1901 Address: 658-1 Tsuruma, Machida-shi, Tokyo 194-8510 E-mail: sales@abbyyusa.com Support E-mail: support@abbyyusa.com Web: http://www.abbyy.com
Australia and New Zealand | ABBYY Australia Address: Citigroup Building, level 39, 2 Park Street, Sydney, NSW, 2000, Australia E-mail: sales_au@abbyy.com Support e-mail: support@abbyy.com Web: http://www.abbyy.com
All other regions | ABBYY Russia Phone: +7 495 783 3700 Fax: +7 495 783 2663 Mailing address: Russia, 127273, Moscow, P.O. box 32, ABBYY Address of business: Moscow, ul. Otradnaya 2B, str. 6, Otradny Business Centre E-mail: sales@abbyy.ru Support e-mail: support@abbyy.ru Web: http://www.abbyy.ru MAP


End-User License Agreement

You are here: Appendix > End-User License Agreement

End-User License Agreement (EULA)

ABBYY® FlexiCapture®

Important! Read the following terms carefully before installing, copying and/or otherwise using ABBYY FlexiCapture (hereinafter referred to as “the SOFTWARE”). Installing, copying or otherwise using the SOFTWARE indicates Your acceptance of these terms. This End-User License Agreement (hereinafter referred to as the “EULA”) is a legal agreement between you, the end user, who obtained or is using the SOFTWARE, and ABBYY.

This EULA comes into force when You demonstrate your consent to be bound by its terms by selecting the “I accept the terms of the license agreement” button followed by selecting the “next” button and installing the SOFTWARE or when You install, copy or start using the SOFTWARE in any manner. Any such act is deemed to demonstrate Your acknowledgment that you have read this EULA, that You understand it and agree to be bound by its terms. If You do not agree to the terms of this EULA, do not use the SOFTWARE and disable, remove it from Your system and destroy Your copies of the SOFTWARE. This EULA is binding for the entire period of the SOFTWARE copyright unless otherwise stated in this EULA or in a separate written agreement between You and ABBYY or ABBYY’s Partner and may depend on the scope of the License as it is described in the EULA.

The SOFTWARE is protected by copyright laws and international treaty provisions and some portions are protected by patent and trade secret laws. You agree that this EULA is enforceable like any written negotiated agreement signed by you. This EULA is enforceable against You.

If the SOFTWARE is accompanied by a hard copy of separate agreement with ABBYY or an ABBYY Partner, governing terms of Your use of the SOFTWARE, then, in the case of any discrepancies in content between the text of this EULA and the text in the hard copy of such separate agreement, the text in the hard copy of the separate agreement shall prevail.

The EULA may be available in different languages. There may be inconsistencies or differences in interpretation between the English version of the EULA and those EULAs made available in other languages. For the sake of uniformity and to avoid any ambiguity, the English version of the EULA shall govern in all disputes, claims or proceedings to interpret, enforce or otherwise relating to the EULA.

Definitions

“ABBYY” means

ABBYY USA Software House Inc. registered at 880 North McCarthy Boulevard, Suite 220, Milpitas, California, 95035, USA, when article 13.1 of this EULA applies;

ABBYY Europe GmbH registered at Elsenheimerstrasse, 49, 80687, Munich, Germany, when article 13.2 of this EULA applies;

ABBYY UK Ltd. Registered at Heathrow Business Centre, 65 High Street, Egham, Surrey TW20 9EY, United Kingdom, when article 13.3 of this EULA applies;

ABBYY Production LLC registered at 1-ya ul. Tekstilshikov, d. 12/9, office 2, 109390, Moscow, Russia, when article 13.4 of this EULA applies;

ABBYY Software House Ukraine registered at 31, Degtyarevskaya st., Kiev, Ukraine, 03680, when article 13.5 of this EULA applies;

and ABBYY Solutions Ltd., registered at Michail Karaoli 2, Egkomi, CY 2404, Nicosia, Cyprus, in all other cases.

“ABBYY Partner” means an entity or individual who is licensed by ABBYY to resell and distribute licensed copies of the SOFTWARE to End Users, either directly or through one or more sub-resellers or sub-distributors.

“Activation” means the procedure whereby the Serial number is checked for validity and the installed SOFTWARE is made fully operational in accordance with the SOFTWARE documentation and the scope of Your License.

“Computer” means a specific physical device or virtual machine that may consist of one or more CPU (central processing unit) cores and running specified operating system. Any changes to the configuration or composition of the Computer could result in the Computer being considered a different Computer for licensing purposes.“Intellectual Property Rights” means all intellectual and industrial property rights and includes rights to (i) inventions, discoveries, and letters patent including applications therefor, reissues thereof, and continuation and continuations in part; (ii) copyrights; (iii) designs and industrial designs; (iv) trademarks, service marks, trade dress and similar rights; (v) know-how, trade secrets and confidential information; (vi) integrated circuit topography rights and rights in mask works; and (vii) other proprietary rights.

“License” means the non-exclusive limited right granted to You by ABBYY to install and use the functionality of the SOFTWARE in accordance with the terms and conditions of this EULA.

“Serial number” means a unique identifier of License or License group with similar parameters that is being given by ABBYY or an ABBYY Partner to the End User.

“SOFTWARE” means any version or edition of ABBYY FlexiCapture including any and all software components (add-ons, custom components and modules, etc.) embedded in the software or made available online or by other ways such as: executable, help, demo, sample and other files; libraries, databases, samples, associated media (images, photos, animation, audio-video components, music etc.), printed materials, and other software components.

“You”, “Your” and “End User” refer to and include any person and/or any entity that obtained this SOFTWARE for its own use and not for purposes of further resale and any actual user of the SOFTWARE.

1. License Grant

1.1 Subject to the terms and conditions of the EULA ABBYY grants to You a limited, non-exclusive License to install and use functionality of the SOFTWARE subject to all restrictions and the scope of the License as may be provided by: this EULA, the software and/or hardware license keys provided by ABBYY (“License Key”), the SOFTWARE, and/or a separate written agreement between You and ABBYY or an ABBYY Partner. All provisions stated herein apply both to the SOFTWARE as a whole and to all of its separate components. Any issue with respect to the scope of the license shall be construed in favour of restrictions on the scope of the license. The License Key technically restricts the use of the SOFTWARE and reflects the scope of the License You obtained. Restrictions on Your use of the SOFTWARE and the scope of Your License may include but are not limited to the following:

1.1.1 Number of seats, SOFTWARE components and network access. You may install the SOFTWARE on more than one Computer on a Network and simultaneously use specified components of the SOFTWARE on a specified number of Computers on a Network (“concurrent licensing”). Information about the available SOFTWARE components and the number of Computers on a Network allowed for simultaneous work with the SOFTWARE is specified in the License Key and/or written agreement between You and ABBYY or an ABBYY Partner.

1.1.2 Processing volume. The number of pages that may be processed by the SOFTWARE may be limited in one or more ways, such as limitations on the number of pages that may be processed within particular time periods, such as monthly or annually, or on the overall number of pages that may be processed. The size of the page and the number of data fields per document may also be limited. Processing volume limitations are specified in the License Key and/or written agreement between You and ABBYY or an ABBYY Partner

1.1.3 Duration. Use of the SOFTWARE may be limited by a fixed period of time, and the SOFTWARE may not be used beyond the expiration of such time period. Limitation of the duration is specified in the License Key and/or written agreement between You and ABBYY or an ABBYY Partner.

1.1.4 Features, add-ons and custom components. The use of particular features, add-ons and/or custom components of the SOFTWARE may be limited by License Key and/or written agreement between You and ABBYY or an ABBYY Partner.

1.2 Processing power. The number of CPU (central processing unit) cores of the Computers which can be utilized by the SOFTWARE may also be limited by License Key and/or written agreement between You and ABBYY or an ABBYY Partner. All rights not expressly granted to You by the EULA are reserved by ABBYY. This EULA does not grant You any rights in connection with any trademarks of ABBYY.

1.3 If Article 13.4 applies and You are an individual human being person, You may use the SOFTWARE worldwide. If Article 13.4 applies and You are an entity, the SOFTWARE may be obtained (purchased) only in the country where the entity or its branch and representative offices are registered, unless otherwise agreed in a separate written agreement between You and ABBYY or an ABBYY Partner. The employees of the entity or of its branch and representative offices may use the SOFTWARE worldwide, provided the SOFTWARE has been obtained and installed in the country where the entity or its branch and representative offices are registered, unless otherwise agreed in a separate written agreement between You and ABBYY or an ABBYY Partner.

1.4 Any use of the SOFTWARE or component parts outside of or in contravention of the terms and conditions of this EULA shall constitute a breach of ABBYY’s and/or third parties’ intellectual property rights and shall give cause for the revocation of all rights to use the SOFTWARE granted to You under this EULA.

1.5 If You deploy or use the SOFTWARE in a virtual environment, at no time may access or use of the SOFTWARE exceed the restrictions on the SOFTWARE, or the scope of the license that has been granted. For instance, the same License Key may not be used to permit use or access to the SOFTWARE in a virtual environment by a number of Computers that is greater than the number of Computers for which a license has been properly obtained, nor may the SOFTWARE be used to process more than the total number of pages that has been permitted.

1.6 If You deploy the SOFTWARE by using terminal services which allow accessing the SOFTWARE on a remote computer over a network, the amount of simultaneously running instances of the SOFTWARE may not exceed the number of Computers for which a License has been obtained.

1.7 If You use the SOFTWARE by means of a web browser, You may simultaneously access the SOFTWARE by as many Computers as permitted by the scope of Your License and specified in the License Key and/or written agreement between You and ABBYY or an ABBYY Partner.

1.8 You may receive the SOFTWARE on more than one medium (multiple-media SOFTWARE), including downloads over the Internet. Regardless of the quantity or type of media You receive, You are only licensed to use the SOFTWARE in accordance with the scope of the SOFTWARE License.

2. Limitations of Use

2.1 In order to use the SOFTWARE You should perform Activation of the SOFTWARE after installation.

2.2 All terms of use and limitations governing the use of the SOFTWARE are stated in this EULA, unless otherwise stipulated in a separate written agreement between You and ABBYY or an ABBYY Partner or in other documentation accompanying the SOFTWARE.

2.3 You may not perform or make it possible for other persons to perform any activities included in the list below:

2.3.1 Reverse engineer, disassemble, decompile (i.e. reproduce and transform the object code into source code) or otherwise attempt to derive the source code for the SOFTWARE or any part, except, and only to the extent, that such activity is expressly permitted by applicable law notwithstanding this limitation. If applicable law prohibits the restriction of such activities, any information so discovered must not be disclosed to third parties with the exception that such disclosure is required by law and such information must be promptly disclosed to ABBYY. All such information shall be deemed to be confidential and proprietary information of ABBYY.

2.3.2 Modify, adapt (including any changes for the purpose of enabling the SOFTWARE to run on Your hardware), or make any changes to the object code of the Software, applications and databases contained in the SOFTWARE other than those provided for by the SOFTWARE and described in the documentation.

2.3.3 Correct errors in the SOFTWARE or translate the SOFTWARE without the prior written consent of ABBYY.

2.3.4 Rent, lease, sublicense, assign or transfer any rights granted to You by this EULA and other rights related to the SOFTWARE to any other person or authorize all or any portion of the SOFTWARE to be copied onto another computers (except as described in article 2.6)

2.3.5 Make it possible for any person not entitled to use the SOFTWARE to access and/or use the SOFTWARE, including without limitation in a multi-user system, virtual environment, or via the Internet.

2.3.6 Remove, change or obscure any copyright, trademark or patent notices that appear on the SOFTWARE as delivered to You.

2.4 You may not use the SOFTWARE to provide paid or free recognition or conversion services and/or to provide the results or access to the results acquired through the use of the SOFTWARE as a part of another service that has recognition or conversion as its component to any third party unless You have signed a separate written agreement with ABBYY and Your License Key has the parameter “BPO services” enabled.

2.5 You may not bypass the SOFTWARE’s user interface that is provided with the SOFTWARE, without an additional written agreement with ABBYY.

2.6 You may only make a one-time permanent transfer of this SOFTWARE only directly to another end user. If you are an entity, such a transfer requires written approval by ABBYY. This transfer must include all of the SOFTWARE (including all copies, SOFTWARE Components, the media and printed materials, any updates) and this EULA. Such transfer may not be by way of consignment or any other indirect transfer. The transferee of such one-time transfer must agree to comply with the terms of this EULA, including the obligation not to further transfer this SOFTWARE. You must uninstall the SOFTWARE from all of Your Computers or from Your Local Area Network in the case of such SOFTWARE transfer.

3. Pre-release, Trial or Demo SOFTWARE

3.1 If the SOFTWARE You have received with this License is a pre-commercial release or Beta-Release Software, provided for a trial or for demonstration, verification or testing purposes, has limited or less than full functionality, labeled “Try&Buy” “Trial”, “Demo” or was provided at no charge (“Restricted Software”), then this article 3 shall apply until such time that You obtain (purchase) a license for the full version of the SOFTWARE. To the extent that any provision in this is in conflict with any other term or condition in this EULA, this article shall supersede such other term(s) and condition(s) with respect to the Restricted Software, but only to the extent necessary to resolve the conflict.

3.2 THE RESTRICTED SOFTWARE IS PROVIDED TO YOU “AS IS” AND WITHOUT WARRANTY OR INDEMNITY (EXPRESS, IMPLIED OR STATUTORY) OF ANY KIND. THE RESTRICTED SOFTWARE DOES NOT REPRESENT FINAL SOFTWARE FROM ABBYY, AND MAY CONTAIN BUGS, ERRORS AND OTHER PROBLEMS THAT COULD CAUSE SYSTEM OR OTHER FAILURES AND DATA LOSS. TO THE GREATEST EXTENT ALLOWABLE UNDER APPLICABLE LAWS, NO WARRANTY SHALL APPLY TO THE RESTRICTED SOFTWARE, AND FOR CLARITY YOU ACKNOWLEDGE THAT ABBYY DISCLAIMS ANY WARRANTY OR LIABILITY OBLIGATIONS TO YOU OF ANY KIND, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NON-INFRINGEMENT, QUIET ENJOYMENT, AND FITNESS FOR A PARTICULAR PURPOSE. WHERE LIABILITY CANNOT BE EXCLUDED BUT MAY BE LIMITED, ABBYY’S TOTAL LIABILITY AND THAT OF ITS PARTNERS SHALL BE LIMITED TO THE SUM OF FIFTY UNITED STATES DOLLARS (U.S. $50) OR THE TOTAL AMOUNT YOU PAID FOR THE SOFTWARE, WHICHEVER IS GREATER.

3.3 Restricted Software may have limited functionality, such as having functionality for a limited period of time, and upon expiration of permitted functionality (“time-out”), Your access and ability to use the Restricted Software may be disabled. Upon a time-out, Your rights under the EULA shall terminate, unless You obtain a new license from ABBYY.

3.4 Restricted Software for which there has not been a commercial release.

3.4.1 Restricted Software for which there has not been a commercial release constitutes the Confidential Information of ABBYY.

3.4.2 As to Restricted Software for which there has not been a commercial release, ABBYY does not promise or guarantee, has no express or implied obligation, and You acknowledge that ABBYY has not promised or guaranteed, that such software will be further developed, or that a commercial version will be announced or made available in the future. ABBYY may not introduce a software product similar to or compatible with such software. Accordingly, You acknowledge that any use, research or development that You perform regarding such software is done entirely at Your own risk.

3.4.3 You agree to provide feedback to ABBYY regarding testing and use of the Restricted Software, including error or bug reports (“Feedback”), and to entirely transfer and grant to ABBYY all rights in such Feedback, including without limitation, the rights to use, publish and disseminate the Feedback. All Feedback constitutes the Confidential Information of ABBYY.

3.4.4 Confidentiality of Restricted Software for which there has not been a commercial release and its Results;

3.4.4.1 You agree not to disclose accompanying written, oral or electronic information divulged to You by ABBYY related to the Restricted Software for which there has not been a commercial release, any information about the quality of such Restricted Software or the quality of the results acquired through the use of such Restricted Software, Feedback, and any information about bugs, errors and other problems discovered by You in the Restricted Software for which there has not been a commercial release are the Confidential Information of ABBYY.

3.4.4.2 You shall not disclose Confidential Information. The term “disclose” means to display, describe, copy, lease, loan, rent, assign, transfer or provide access, over a network or otherwise, to Confidential Information reproduced in any form, including oral communications, to any third party.

3.4.4.3 You shall take all reasonable steps to prevent the disclosure of Confidential Information and to keep it confidential.

3.4.4.4 You shall promptly inform ABBYY if You become aware of any disclosure of Confidential Information. If You are in breach of the terms and conditions set forth in articles 3.4.4.1 - 3.4.4.3 above, You shall compensate ABBYY for any loss resulting from such breach.

3.5 Upon receipt of a later version of Restricted Software or a commercial release of such software, whether as a stand-alone product or as part of a larger product, You agree to return or destroy all earlier versions of the Restricted Software received from ABBYY.

3.6 If You have been provided the Restricted Software pursuant to a separate written agreement Your use of the SOFTWARE is also governed by such agreement. To the extent that any term or condition of a separate written agreement are in conflict with any term or condition of this EULA, a separate written agreement shall supersede such other term(s) and condition(s) with respect to the SOFTWARE, but only to the extent necessary to resolve the conflict.

4. Not-for-resale SOFTWARE

4.1 If the SOFTWARE is labeled “Not for Resale” or “NFR,” then, notwithstanding other articles of this EULA, You may only use such SOFTWARE for demonstration, verification or testing purposes.

5. Updates

5.1 If the SOFTWARE is labeled as an update, You must own a license for the previous version of the SOFTWARE identified by ABBYY as being eligible for this update in order to use the SOFTWARE.

5.2 The SOFTWARE labeled as an update replaces and/or supplements the product that formed the basis for Your eligibility for the update.

5.3 You may only use the resulting updated product in accordance with the terms of the EULA supplied with this update.

5.4 You acknowledge that any obligation ABBYY may have to support the version of the SOFTWARE being updated shall end upon the availability of the update.

6. Technical Support and Maintenance

6.1 You may be provided with technical support and maintenance related to the SOFTWARE (“Support Services”) subject to the current ABBYY support policy. However, You may be entitled to a different level of Support Services than is stated in the ABBYY support policy in accordance with a written agreement executed between You and ABBYY or an ABBYY Partner with respect to such Support Services.

6.2 General terms and conditions of the ABBYY support policy are published on the ABBYY Web site www.abbyy.com. ABBYY reserves the right to change the support policy any time without any prior notice.

6.3 In addition to the general terms and conditions, ABBYY may have specific support policies in specific regions which may be regulated by separate agreements.

6.4 Any supplementary software code and any SOFTWARE component provided to You as part of Support Services is to be considered a part of the SOFTWARE and subject to the terms and conditions of this EULA.

6.5 To be eligible for Support Services, You may be required to provide ABBYY with information about the characteristics of Your hardware, Serial Number of Your SOFTWARE as well as certain personal information, such as Your name, company name (if applicable), address, phone number and e-mail address. ABBYY may use the above-mentioned information as described in article 15.1 of the EULA.

7. Ownership.

7.1 No title to any of ABBYY’s Intellectual Property Rights (including the SOFTWARE and any ABBYY patents, trademarks, or copyrights) is transferred to You. You shall not, in any way, during or after the term of the Agreement, make any use of or claim any right to any name, logo, trademark, pattern, or design owned by ABBYY, or any name, logo, trademark, pattern, or design resembling them.

7.2 No title to any of Your Intellectual Property Rights (including the application and any of Your patents, trademarks, or copyrights) is transferred to ABBYY.

7.3 The SOFTWARE contains valuable trade secrets and confidential information belonging to ABBYY and third parties and is protected by copyright laws, including, without limitation, by United States Copyright Law, laws of Russian Federation, international treaty provisions, and the applicable laws of the country in which it is being used or obtained.

7.4 All title and rights in and to the content that is not contained in the SOFTWARE, but may be accessible through the use of the SOFTWARE, are the property of the respective content owners and may be protected by applicable copyright or other intellectual property laws and international treaties. This EULA does not grant You any rights to such intellectual property.

8. Limited Warranty. Disclaimers.

8.1 If required by the legislation of the country in which You obtained (purchased) the SOFTWARE, ABBYY warrants that the media on which the SOFTWARE is furnished will be free from defects in materials and workmanship under normal use only and only for the minimal guarantee term determined by the legislation of the country in which You obtained (purchased) the SOFTWARE starting from the date of purchase. If the SOFTWARE was obtained (purchased) in the countries defined in article 13.4 this period will constitute thirty (30) days starting from the date of obtain (purchase).

8.2 EXCEPT AS EXPPRESSLY PROVIDED IN THIS ARTICLE 8 (LIMITED WARRANTY. DISCLAIMERS), AND EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION, OR TERM TO THE EXTENT TO WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO YOU IN YOUR JURISDICTION, THE SOFTWARE, INCLUDING WITHOUT LIMITATION ANY SOFTWARE DOCUMENTATION, UPGRADES AND UPDATES IS BEING DELIVERED TO YOU “AS IS” AND ABBYY MAKES NO WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER, INCLUDING WITHOUT LIMITATION NON-INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE SOFTWARE WILL CARRY NO ERRORS, MEET YOUR REQUIREMENTS, OR THAT THE SOFTWARE WILL FUNCTION PROPERLY WHEN USED IN CONJUNCTION WITH ANY OTHER SOFTWARE OR HARDWARE. ABBYY DOES NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULT YOU MAY OBTAIN BY USING THE SOFTWARE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE LIES WITH YOU. FUTHERMORE ABBYY MAKES NO WARRANTIES FOR ANY THIRD PARTY SOFTWARE PRODUCTS WHICH MAY BE SUPPLIED WITHIN THE SOFTWARE.

9. Limitation of Liability

9.1 IN NO EVENT WILL ABBYY BE LIABLE TO YOU FOR ANY DAMAGES, BUSINESS INTERRUPTION, LOSS OF DATA OR INFORMATION OF ANY KIND, BUSINESS OR OTHERWISE, CLAIMS OR COSTS WHATSOEVER, OR ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES, OR ANY LOST PROFITS OR LOST REVENUE RESULTING FROM AND/OR RELATING TO THE USE OF THE SOFTWARE, OR DAMAGES CAUSED BY POSSIBLE ERRORS OR MISPRINTS IN THE SOFTWARE, EVEN IF AN ABBYY REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS, OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. ABBYY’S SOLE AND AGGREGATE LIABILITY UNDER OR IN CONNECTION WITH THIS EULA SHALL BE LIMITED TO THE PURCHASE PRICE ORIGINALLY PAID FOR THE SOFTWARE, IF ANY.

10. Warranty Exclusion and Limitations for Users Residing in Germany or Austria

10.1 If You obtained Your copy of the SOFTWARE in Germany or Austria, and You usually reside in such country, then, in accordance with German law, ABBYY warrants that the SOFTWARE provides the functionalities set forth in its documentation included in the SOFTWARE (the “agreed upon functionalities”) for the limited warranty period following receipt of the SOFTWARE copy when used on the recommended hardware configuration. As used in this article, “limited warranty period” means one (1) year if You are a business user or legal entity, and two (2) years if You are not a business user. Non-substantial variation from the agreed upon functionalities shall not be considered and does not establish any warranty rights. This limited warranty does not apply to the SOFTWARE provided to You free of charge, for example, updates, pre-release versions, “Trial” versions, product samples, “Not for resale” (“NFR”) copies of the SOFTWARE, or the SOFTWARE that has been altered by You, to the extent such alterations caused a defect. To make a warranty claim, during the limited warranty period You must return, at our expense, the SOFTWARE and proof of purchase to the location where You obtained it. If the functionalities of the SOFTWARE vary substantially from the agreed upon functionalities, ABBYY is entitled (by way of re-performance and at its own discretion) to repair or replace the SOFTWARE. If this fails, You are entitled to a reduction of the purchase price (reduction) or to cancel the purchase agreement (rescission). For further warranty information, please contact ABBYY’s Customer Support Department in Germany: ABBYY Europe GmbH, Elsenheimerstrasse 49, 80687 Munich, tel.: +49 (0)89 51 11 590, fax: +49 (0)89 51 11 5959.

10.2 If You obtained Your copy of the SOFTWARE in Germany or Austria, and You usually reside in such country, then:

10.2.1 Subject to the provisions in article 10.2.2, ABBYY’s statutory liability for damages shall be limited as follows: (i) ABBYY shall be liable only up to the amount of damages as typically foreseeable at the time of entering into the purchase agreement in respect of damages caused by a slightly negligent breach of a material contractual obligation and (ii) ABBYY shall not be liable for damages caused by a slightly negligent breach of a non-material contractual obligation.

10.2.2 The limitation of liability set forth in 10.2.1 shall not apply to any mandatory statutory liability, in particular, to liability under the German Product Liability Act, liability for assuming a specific guarantee or liability for culpably caused personal injuries.

10.2.3 You are required to take all reasonable measures to avoid and reduce damages, in particular to make backup copies of the SOFTWARE and Your computer data subject to the provisions of this EULA.

11. Additional Limitations for SOFTWARE obtained in the USA

11.1 Government Use. If use is made of the SOFTWARE by the United States Government or any US Government agency, the following additional terms shall apply: (1) Restricted Computer Software, as defined in the Rights in Data-General clause at Federal Acquisition Regulations 52.227-14; and (2) any use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.

11.2 Export rules. You agree that you shall not export or re-export the SOFTWARE in violation of any export provisions in the laws of the country in which this SOFTWARE was purchased or otherwise acquired. In addition, You represent and warrant that You are not prohibited under applicable laws from receiving the SOFTWARE.

12. Third-party technologies

12.1 Embedded Fonts. Font programs are subject to copyright, and the copyright owner may impose conditions under which a font program can be used. One of the conditions may be that You need a licensed copy of the font program to embed the font into a PDF file. In no event shall ABBYY be liable for any damages arising out of or in connection with Your use of embedded fonts.

12.2 Adobe® PDF Library.

12.2.1 The term “Adobe Software” includes Adobe Technology and related documentation, and any upgrades, modified versions, updates, additions, and copies thereof.

12.2.2 License Grant and Restrictions. ABBYY grants You a non-exclusive right to use the Adobe Software under the terms of this EULA. You may make one backup copy of the Adobe Software, provided the backup copy is not installed or used on any computer.

12.2.3 Intellectual Property Rights. The Adobe Software incorporated into the SOFTWARE is owned by Adobe and its suppliers, and its structure, organization and code are the valuable trade secrets of Adobe and it suppliers. The Adobe Software is also protected by United States Copyright law and International Treaty provisions. You may not copy the Adobe Software, except as provided in this EULA. Any copies that You are permitted to make pursuant to this EULA must contain the same copyright and other proprietary notices that appear on or in the Adobe Software. You agree not to modify, adapt, translate, reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the Adobe Software. Except as stated above, this EULA does not grant You any intellectual property rights in the Adobe Software.

12.2.4 Font License. If the Adobe Software includes font software You may embed the font software, or outlines of the font software, into Your electronic documents to the extent that the font vendor copyright owner allows for such embedding. The fonts contained in this package may contain both Adobe and non-Adobe owned fonts. You may fully embed any font owned by Adobe.

12.2.5 Warranty. ABBYY AND ITS SUPPLIER DO NOT AND CANNOT WARRANT THE PERFORMANCE RESULTS YOU MAY OBTAIN BY USING THE SOFTWARE.

12.2.6 Export Rules. You agree that the Adobe Software will not be shipped, transferred or exported into any country or used in any manner prohibited by the United States Export Administration Act or any other export laws, restrictions or regulations (collectively the “Export Laws”) - In addition, if the Adobe Software is identified as export controlled items under the Export Laws, You represent and warrant that You are not a citizen, or otherwise located within, an embargoed nation and that You are not otherwise prohibited under the Export Laws from receiving the Adobe Software. All rights to use the Adobe Software are granted on condition that such rights are forfeited if You fail to comply with the terms of this EULA.

12.2.7 Trademarks. Adobe and Adobe PDF Library are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

12.3 PixTools® Scan Runtime Libraries.

12.3.1 “EMC Software” shall mean PixTools Scan runtime libraries, Level 1 ISIS Drivers, Level 2 ISIS Drivers, and Level 3 ISIS Drivers. The SOFTWARE may use the EMC Software for communicating between scanner and SOFTWARE through the ISIS interface.

12.3.2 License Grant and Restrictions. ABBYY grants you a non-exclusive right to use the EMC Software incorporated into the SOFTWARE under the terms of this EULA.

12.3.3 Intellectual Property Rights. The EMC Software incorporated into the SOFTWARE is owned by EMC Corporation and its suppliers, and its structure, organization and code are the valuable trade secrets of EMC Corporation and its suppliers. The EMC Software is protected by United States Copyright Law and International Treaty provisions. You may not copy the EMC Software incorporated into the SOFTWARE. You agree not to modify, adapt, translate, reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the EMC Software incorporated into the SOFTWARE. Except as stated above, this EULA does not grant you any intellectual property rights in the EMC Software.

12.3.4 Warranty. ABBYY DOES NOT AND CANNOT WARRANT THE PERFORMANCE RESULTS YOU MAY OBTAIN BY USING THE EMC SOFTWARE INCORPORATED INTO THE SOFTWARE. IN NO EVENT WILL EMC CORPORATION OR ITS SUPPLIERS BE LIABLE TO YOU FOR ANY CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS OR LOST SAVINGS OR FOR ANY CLAIM BY ANY THIRD PARTY.

Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, so the above limitations may not apply to you. You may have other rights, which vary from state to state or jurisdiction to jurisdiction.

12.3.5 Trademarks. ISIS and PixTools are either registered trademarks or trademarks of EMC Corporation in the United States and/or other countries.

12.4 Cuminas DjVu® SDK.

12.4.1 You, as the End-User, have the right to use DjVu SDK as part of the SOFTWARE for the entire period of such SOFTWARE copyright or for another lesser term of use, stated in the EULA.

12.4.2 License terms: You may not perform or make it possible for other persons to perform reverse engineer, disassemble, decompile (i.e. reproduce and transform the object code into source code) or otherwise attempt to derive the source code for the SOFTWARE or any part, except, and only to the extent, that such activity is expressly permitted by applicable law notwithstanding this limitation. If applicable law prohibits the restriction of such activities, any information so discovered must not be disclosed to third parties with the exception that such disclosure is required by law and such information must be promptly disclosed to ABBYY. All such information shall be deemed to be confidential and proprietary information of ABBYY.

12.4.3 ABBYY MAKES NO WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER, INCLUDING WITHOUT LIMITATION NON-INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE SOFTWARE WILL CARRY NO ERRORS, MEET YOUR REQUIREMENTS, OR THAT THE SOFTWARE WILL FUNCTION PROPERLY WHEN USED IN CONJUNCTION WITH ANY OTHER SOFTWARE OR HARDWARE. ABBYY DOES NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULT YOU MAY OBTAIN BY USING THE SOFTWARE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE LIES WITH YOU. FUTHERMORE ABBYY MAKES NO WARRANTIES FOR ANY THIRD PARTY SOFTWARE PRODUCTS WHICH MAY BE SUPPLIED WITHIN THE SOFTWARE.

12.4.4 IN NO EVENT WILL ABBYY BE LIABLE TO YOU FOR ANY DAMAGES, BUSINESS INTERRUPTION, LOSS OF DATA OR INFORMATION OF ANY KIND, BUSINESS OR OTHERWISE, CLAIMS OR COSTS WHATSOEVER, OR ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL DAMAGE, OR ANY LOST PROFITS OR LOST SAVINGS RESULTING FROM AND/OR RELATING TO THE USE OF THE SOFTWARE, OR DAMAGES CAUSED BY POSSIBLE ERRORS OR MISPRINTS IN THE SOFTWARE, EVEN IF AN ABBYY REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS, OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. ABBYY’S SOLE AND AGGREGATE LIABILITY UNDER OR IN CONNECTION WITH THIS EULA SHALL BE LIMITED TO THE PURCHASE PRICE ORIGINALLY PAID FOR THE SOFTWARE, IF ANY.

12.4.5 Limitations for SOFTWARE obtained at the USA.

a) Government Use. If use is made of the SOFTWARE by the United States Government or any US Government agency, the following additional terms shall apply: (1) Restricted Computer Software, as defined in the Rights in Data-General clause at Federal Acquisition Regulations 52.227-14; and (2) any use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.

b) Export rules. You agree that You shall not export or re-export the SOFTWARE in violation of any export provisions in the laws of the country in which this SOFTWARE was purchased or otherwise acquired. In addition, You represent and warrant that You are not prohibited under applicable laws from receiving the SOFTWARE.

12.4.6 Third-Party Code:

12.4.6.1 Oniguruma Copyright © 2002-2006 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

12.4.6.2 A portion of this software is derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm. Mersenne Twister Copyright © 2006,2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Hiroshima University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

12.5 Wibu-Systems

12.5.1 WIBU, CodeMeter, SmartShelter, SmartBind are registered trademarks of Wibu-Systems.

12.6 Other licensed technologies. This SOFTWARE is used under license to the following U.S. Patent Nos.: 5,625,465 and 5,768,416.

13. Governing Law

13.1 If the SOFTWARE was obtained in the United States, Canada, Mexico, Belize, Costa Rica, El Salvador, Guatemala, Honduras, Montserrat, Nicaragua, Panama, Turks and Caicos Islands, Virgin Islands, Japan, or Taiwan, this EULA shall be governed by and construed in accordance with the laws of the State of California, United States of America. With respect to any dispute which may arise in connection with this EULA and/or this SOFTWARE, You consent to the exclusive jurisdiction and venue of the federal and/or state courts in the county of Santa Clara in the State of California. For the avoidance of doubt if the SOFTWARE was obtained in the United States, You obtained (purchased) the SOFTWARE from ABBYY USA Software House, Inc.

13.2 If the SOFTWARE was obtained in Austria, Belgium, Denmark, Finland, France, Germany, Italy, Luxembourg, the Netherlands, Portugal, Spain, Sweden, or any other member state of the European Union, except for Malta, Greece and Cyprus, that is not directly mentioned in article 13.3, 13.4 or 13.5 of this EULA, or in Switzerland, Norway, Iceland or Liechtenstein, this EULA shall be governed by and construed in accordance with the substantive law in force in Munich, the Federal Republic of Germany and the competent court of Munich, the Federal Republic of Germany shall have exclusive jurisdiction over all disputes relating to this EULA.

13.3 If the SOFTWARE was obtained in the United Kingdom of Great Britain and Northern Ireland, and Republic of Ireland this EULA shall be governed by and construed in accordance with the laws of England and Wales and the parties accept the exclusive jurisdiction of the courts of England and Wales.

13.4 If the SOFTWARE was obtained in Russia, Byelorussia, Kazakhstan, or any other country of the CIS, except for Ukraine and Moldova, or if the SOFTWARE was obtained (purchased) in Georgia, Latvia, Lithuania or Estonia, this EULA shall be governed by and construed in accordance with the substantive law in force in the Russian Federation.

13.5 If the SOFTWARE was obtained in Albania, Bosnia and Herzegovina, Bulgaria, Croatia, the Czech Republic, Hungary, Israel, Macedonia, Poland, Romania, Slovakia, Slovenia, Turkey, Serbia, Montenegro, Ukraine or Moldova, this EULA shall be governed by and construed in accordance with the substantive law of Ukraine, unless the SOFTWARE has been acquired by the person that has a status of consumer according to the Polish Civil Code. Polish law shall apply to such consumers.

13.6 If article 13.5 is applied and You are an entity or a sole proprietor (a person who is in business by himself/herself without the use of a company structure or partners and bears alone full responsibility for the actions of the business), any and all disputes, controversies or differences in opinion arising out of or relating to the EULA shall be finally resolved through arbitration in accordance with the arbitration rules and procedures of the International Commercial Arbitration Court at the Ukrainian Chamber of Commerce and Industry according to its Order. Judgment of the Court mentioned above is final and obligatory for execution by both Parties. If Section 13.5 is applied and You are an individual person, the Shevchenkovsky District Court of Kiev, Ukraine, shall have exclusive jurisdiction over all disputes relating to this EULA.

13.7 If article 13.4 is applied and You are an entity or a sole proprietor (a person who is in business by himself/herself without the use of a company structure or partners and bears alone full responsibility for the actions of the business) the Arbitrazh Court of Moscow, the Russian Federation, shall have exclusive jurisdiction over all disputes relating to this EULA. If article 13.4 is applied and You are an individual person, the Kuzminsky District Court of Moscow, the Russian Federation, shall have jurisdiction over all disputes relating to this EULA.

13.8 In the cases described in articles 13.1-13.5, this EULA will not be governed by the conflict of law rules of any jurisdiction or the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.

13.9 If the SOFTWARE was obtained (purchased) in a country other than the countries specified in articles 13.1-13.5, this EULA shall be governed by and construed in accordance with the substantial laws of the country in which You obtained (purchased) the SOFTWARE.

14. Termination

14.1 Unless otherwise agreed by You and ABBYY or an ABBYY Partner in a separate written agreement or except as otherwise provided by the EULA or the documentation for the SOFTWARE, this EULA is effective in perpetuity from the date which You first demonstrated your acceptance as provided at the beginning of the EULA or as long as it is permitted under applicable law. To the extent that applicable law requires the statement of an expiration period for this EULA, this EULA will last as long as permitted, but in any event, at least as long as the duration of the SOFTWARE copyright and shall automatically expire without further notice when such time period elapses.

14.2 Without prejudice to any other rights, ABBYY may terminate this EULA if You fail to comply with the terms and conditions of this EULA. In such an event, You must destroy all copies of the SOFTWARE, all of its component parts and remove the SOFTWARE from your Computers.

14.3 You may terminate this EULA by destroying all copies of the SOFTWARE, all of its component parts and removing the SOFTWARE.

14.4 Such termination does not relieve You of Your obligation to pay for the SOFTWARE. Articles 2, 7, 8, 9, 10, 11, 12, 13, 14, 15 and article 3.4.4 shall survive the termination or expiration of this EULA, howsoever caused, but this shall not imply or create any continued right to use the SOFTWARE after termination or expiration of this EULA.

15. Miscellaneous

15.1 In the course of Activation, installation, operation and/or technical support and maintenance of the SOFTWARE You may be required and You hereby agree to provide ABBYY with certain personal information of Yours (such as but not limited to Your name, address, email address, phone number). You may choose not to provide us with your personal information, in which case You may be refused in future to obtain technical support or maintenance of the SOFTWARE available to ABBYY customers who provided their personal information, if provision of personal information is essential to provide You with technical support or maintenance of the SOFTWARE or is requirement of such technical support or maintenance of the SOFTWARE and it does not contradict applicable law. You agree not to provide more personal information than ABBYY or ABBYY’s Partner require, and agree that Your personal information may be processed (including but not limited to collected and/or otherwise used) by ABBYY and/or its affiliates or ABBYY Partners in compliance with applicable law provided that the confidentiality of the data and data security is maintained if it is required by applicable law. Any personal information You provide to ABBYY or its affiliates or ABBYY Partners will be processed, stored and used strictly within ABBYY and its affiliates or ABBYY Partners and will not be disclosed to any third party, except as may be required by applicable law, and, in case of ABBYY Software House Inc., will be maintained in accordance with its privacy policy found at http://abbyy.com/privacy_policy. All personal records will be processed solely for purposes of fulfillment obligations under this EULA by ABBYY. If article 13.5. applies Your personal information will be processed in the database named «Physical persons whose personal information is processed during business activity».

15.2 You agree that the SOFTWARE may require connections via Internet or via e-mail with an ABBYY server during Activation, deactivation or update of the SOFTWARE. ABBYY will take reasonable steps with the goal that no personal information about You will be transferred during such connections.

15.3 ABBYY may send You e-mails containing product and company news, information about special offers, advices on product usage and other product and company-related information provided You agree to receive such information. You may remove Your e-mail address from ABBYY’s mailing list at any time.

15.4 If any claims or lawsuits are brought against You in connection with Your use of the SOFTWARE, You shall inform ABBYY in writing about them promptly and whenever practicable within three (3) days from the moment You learn of them. You shall take all necessary actions to enable ABBYY to take part in the proceedings or hearings of or take over the defense of said claims or lawsuits in court or arbitration, and shall provide ABBYY with Your full cooperation and all information ABBYY deems useful or necessary for the defense of settlement of the corresponding claims or lawsuits, promptly upon (and whenever practicable no later than seven (7) days from the moment of) the receipt of an inquiry from ABBYY.

15.5 Consideration under this EULA is the price of the License established by ABBYY or an ABBYY Partner and payable in accordance with the payment procedures established by them, or may be included in value of equipment or hardware obtained by You or is part of the consideration payable by You for the full version of the SOFTWARE. If You are a natural person, this EULA may be gratuitous.

15.6 If any part of this EULA is found void or unenforceable, it will not affect the validity of the balance of the EULA, which shall remain valid and enforceable according to its terms.


Hot keys in the data verification station main window

Menu | Command | Shortcut
File | Exit | Alt+F4
View | Full Screen | F11
 | Refresh | F5
Tasks | Get Task | Ctrl+G
Help | Help Topics | F1


Hot keys in the project setup station main window

Project Setup Station Keyboard Shortcuts

Menu | Command | Shortcut
File | New Project… | Ctrl+Shift+N
 | Open Project… | Ctrl+Shift+O
 | Save | Ctrl+S
 | New Batch… | Ctrl+N
 | Load Images… | Ctrl+O
 | Scan Images… | Ctrl+K
 | Import Images… | Ctrl+I
 | Export to Data to Files… | Alt+Shift+S
 | Export to Database Database… | Alt+Shift+D
 | Exit | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Find… | Ctrl+F
 | Find Next | F3
 | Go To > Next Document | Ctrl+D
 | Go To > Previous Document | Ctrl+Shift+D
 | Image > Despeckle | Ctrl+Alt+K
 | Image > Invert | Ctrl+Alt+V
 | Image > Rotate 90° Clockwise | Ctrl+W
 | Image > Rotate 90° Counter-Clockwise | Ctrl+Shift+W
View | Test Batches | Ctrl+Shift+B
 | Working Batches | Ctrl+B
 | Details | Alt+1
 | Thumbnails | Alt+2
 | Image Mode | Ctrl+1
 | Data Mode | Ctrl+2
 | Zoom In | Ctrl+Num+
 | Zoom Out | Ctrl+Num-
 | Thumbnails Size: Increase | Ctrl+Shift+Num+
 | Thumbnails Size: Decrease | Ctrl+Shift+Num-
 | Full Screen | F11
 | Refresh | F5
 | Object Properties | Alt+Enter
Recognition | Analyze | Ctrl+E
 | Match Document Definition… | Alt+Shift+E
 | Recognize | Ctrl+R
Verification | Run Verification… | F7
 | Next Item to Verify | F4
 | Previous Item to Verify | Shift+F4
 | Next Document with Assembly Error(s) | F9
 | Previous Document with Assembly Error(s) | Shift+F9
 | Next Uncertain Character | F8
 | Previous Uncertain Character | Shift+F8
 | Next Rule Error | F6
 | Previous Rule Error | Shift+F6
 | Copy Values to Other Rows | Ctrl+Q
 | Copy Value to All Rows | Ctrl+Shift+Q
Project | Document Definitions… | Ctrl+T
 | Batch Types… | Ctrl+Shift+T
 | Image Import Profiles… | Ctrl+Shift+I
Tools | Update to Latest Version | Alt+Shift+U
 | Re-analyze | Ctrl+Alt+E
 | Re-recognize | Ctrl+Alt+R
 | Re-check Rules | Ctrl+F6
 | Check Batch Integrity | Ctrl+Shift+E
Help | Help Topics | F1
General Commands | Open the document window (if a document or page is selected) | Enter


Hot keys in the verification station main window

Verification Station Keyboard Shortcuts

Menu | Command | Shortcut
File | Save | Ctrl+S
 | New Batch… | Ctrl+N
 | Load Images… | Ctrl+O
 | Scan Images… | Ctrl+K
 | Export to Data to Files… | Alt+Shift+S
 | Export to Database… | Alt+Shift+D
 | Exit | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Find… | Ctrl+F
 | Find Next | F3
 | Go To > Next Document | Ctrl+D
 | Go To > Previous Document | Ctrl+Shift+D
 | Image > Despeckle | Ctrl+Alt+K
 | Image > Invert | Ctrl+Alt+V
 | Image > Rotate 90° Clockwise | Ctrl+W
 | Image > Rotate 90° Counter-Clockwise | Ctrl+Shift+W
View | Working Batches | Ctrl+B
 | Queues | Ctrl+Q
 | Details | Alt+1
 | Thumbnails | Alt+2
 | Image Mode | Ctrl+1
 | Data Mode | Ctrl+2
 | Zoom In | Ctrl+Num+
 | Zoom Out | Ctrl+Num-
 | Thumbnails Size: Increasе | Ctrl+Shift+Num+
 | Thumbnails Size: Decrease | Ctrl+Shift+Num-
 | Full Screen | F11
 | Refresh | F5
 | Object Properties | Alt+Enter
Task | Get Task | Ctrl+G
Recognition | Analyze | Ctrl+E
 | Match Document Definition… | Alt+Shift+E
 | Recognize | Ctrl+R
Verification | Run Verification… | F7
 | Next Item to Verify | F4
 | Previous Item to Verify | Shift+F4
 | Next Document with Assembly Error(s) | F9
 | Previous Document with Assembly Error(s) | Shift+F9
 | Next Uncertain Character | F8
 | Previous Uncertain Character | Shift+F8
 | Next Rule Error | F6
 | Previous Rule Error | Shift+F6
 | Copy Values to Other Rows | Ctrl+Q
 | Copy Value to All Rows | Ctrl+Shift+Q
Tools | Update to Latest Version | Alt+Shift+U
 | Re-analyze | Ctrl+Alt+E
 | Re-recognize | Ctrl+Alt+R
 | Re-check Rules | Ctrl+F6
 | Check Batch Integrity | Ctrl+Shift+E
Help | Help Topics | F1
General Commands | Open the document window (if a document or page is selected) | Enter
 | Registration parameters | Ctrl+P


Internal names of recognition languages

What it does

Internal names of recognition languages are used in the RecognitionLanguages property of the IExportImageSavingOptions object.

Compliance of recognition languages to their internal names:

  • Abkhaz->Abkhaz
  • Adyghe->Adyghe
  • Afrikaans->Afrikaans
  • Agul->Agul
  • Albanian->Albanian
  • Altaic->Altaic
  • Arabic (Saudi Arabia)->Arabic
  • Armenian (Eastern)->ArmenianEastern
  • Armenian (Grabar)->ArmenianGrabar
  • Armenian (Western)->ArmenianWestern
  • Avar->Awar
  • Aymara->Aymara
  • Azerbaijani (Cyrillic)->AzeriCyrillic
  • Azerbaijani (Latin)->AzeriLatin
  • Bashkir->Bashkir
  • Basque->Basque
  • Bemba->Bemba
  • Blackfoot->Blackfoot
  • Portuguese (Brazilian)->PortugueseBrazilian
  • Breton->Breton
  • Bugotu->Bugotu
  • Bulgarian->Bulgarian
  • Buryat->Buryat
  • Belarusian->Belarusian
  • Catalan->Catalan
  • Chamorro->Chamorro
  • Chechen->Chechen
  • Chinese Simplified->ChinesePRC
  • Chinese Traditional->ChineseTaiwan
  • Chukchee->Chukcha
  • Chuvash->Chuvash
  • Corsican->Corsican
  • Crimean Tatar->CrimeanTatar
  • Croatian->Croatian
  • Crow->Crow
  • Czech->Czech
  • Danish->Danish
  • Dargwa->Dargwa
  • Dungan->Dungan
  • Dutch->Dutch
  • English->English
  • Eskimo (Cyrillic)->EskimoCyrillic
  • Eskimo (Latin)->EskimoLatin
  • Esperanto->Esperanto
  • Estonian->Estonian
  • Even->Even
  • Evenki->Evenki
  • Faroese->Faeroese
  • Fijian->Fijian
  • Finnish->Finnish
  • Dutch (Belgian)->DutchBelgian
  • French->French
  • Frisian->Frisian
  • Friulian->Friulian
  • Scottish Gaelic->GaelicScottish
  • Gagauz->Gagauz
  • Galician->Galician
  • Ganda->Ganda
  • German->German
  • German (new spelling)->GermanNewSpelling
  • German (Luxembourg)->GermanLuxembourg
  • Greek->Greek
  • Guarani->Guarani
  • Hani->Hani
  • Hausa->Hausa
  • Hawaiian->Hawaiian
  • Hebrew->Hebrew
  • Hungarian->Hungarian
  • Icelandic->Icelandic
  • Ido->Ido
  • Indonesian->Indonesian
  • Ingush->Ingush
  • Interlingua->Interlingua
  • Irish->Irish
  • Italian->Italian
  • Japanese->Japanese
  • Kabardian->Kabardian
  • Kalmyk->Kalmyk
  • Karachay-balkar->KarachayBalkar
  • Karakalpak->Karakalpak
  • Kasub->Kasub
  • Kawa->Kawa
  • Kazakh->Kazakh
  • Khakass->Khakas
  • Khanty->Khanty
  • Kikuyu->Kikuyu
  • Kirghiz ->Kirgiz
  • Kongo->Kongo
  • Korean->Korean
  • Koryak->Koryak
  • Kpelle->Kpelle
  • Kumyk->Kumyk
  • Kurdish->Kurdish
  • Lak->Lak
  • Sami (Lappish)->Lappish
  • Latin->Latin
  • Latvian->Latvian
  • Latvian Gothic->LatvianGothic
  • Lezgi->Lezgin
  • Lithuanian->Lithuanian
  • Luba->Luba
  • Macedonian->Macedonian
  • Malagasy->Malagasy
  • Malay (Malaysian)->Malay
  • Malinke->Malinke
  • Maltese->Maltese
  • Mansi->Mansi
  • Maori->Maori
  • Mari->Mari
  • Maya->Maya
  • Miao->Miao
  • Minangkabau->Minankabaw
  • Mohawk->Mohawk
  • Moldavian->RomanianMoldavia
  • Mongol->Mongol
  • Mordvin->Mordvin
  • Nahuatl->Nahuatl
  • Nenets->Nenets
  • Nivkh->Nivkh
  • Nogay->Nogay
  • Norwegian (Bokmal)->NorwegianBokmal
  • Norwegian (Nynorsk)->NorwegianNynorsk
  • Nyanja->Nyanja
  • Occidental->Occidental
  • Ojibway->Ojibway
  • Old English->OldEnglish
  • Old French->OldFrench
  • Old German->OldGerman
  • Old Italian->OldItalian
  • Old Spanish->OldSpanish
  • Ossetian->Ossetic
  • Papiamento->Papiamento
  • Tok Pisin->PidginEnglish
  • Pinyin->Pinyin
  • Polish->Polish
  • Portuguese->PortugueseStandard
  • Occitan->Provencal
  • Quechua->Quechua
  • Rhaeto-Romanic->RhaetoRomanic
  • Romanian->Romanian
  • Romany->Romany
  • Rwanda->Ruanda
  • Rundi->Rundi
  • Russian (Old Spelling)->RussianOldSpelling
  • Russian->Russian
  • Samoan->Samoan
  • Selkup->Selkup
  • Serbian (Cyrillic)->SerbianCyrillic
  • Serbian (Latin)->SerbianLatin
  • Shona->Shona
  • Dakota->Sioux
  • Slovak->Slovak
  • Slovenian->Slovenian
  • Somali->Somali
  • Sorbian->Sorbian
  • Sotho->Sotho
  • Spanish->Spanish
  • Sunda->Sunda
  • Swahili->Swahili
  • Swazi->Swazi
  • Swedish->Swedish
  • Tabasaran->Tabassaran
  • Tagalog->Tagalog
  • Tahitian->Tahitian
  • Tajik->Tajik
  • Tatar->Tatar
  • Thai->Thai
  • Jingpo->Tinpo
  • Tongan->Tongan
  • Tswana->Tswana
  • Tun->Tun
  • Turkish->Turkish
  • Turkmen->Turkmen
  • Tuvinian->Tuvin
  • Udmurt->Udmurt
  • Uighur (Cyrillic)->UighurCyrillic
  • Uighur (Latin)->UighurLatin
  • Ukrainian->Ukrainian
  • Uzbek (Cyrillic)->UzbekCyrillic
  • Uzbek (Latin)->UzbekLatin
  • Cebuano->Visayan
  • Vietnamese->Vietnamese
  • Welsh->Welsh
  • Wolof->Wolof
  • Xhosa->Xhosa
  • Yakut->Yakut
  • Yiddish->Yiddish
  • Zapotec->Zapotec
  • Zulu->Zulu
  • Korean (Hangul)->KoreanHangul
  • Russian and English->Mixed
  • Norwegian->Norwegian
  • Chinese Simplified and English->ChinesePRC+English
  • Chinese Traditional and English->ChineseTaiwan+English
  • Japanese and English->Japanese+English


IRoutingRuleResult

What it does

Represents the result of the routing script execution.

Properties

Name | Type | Access | Description
CheckSucceeded | bool | Read/write | Specifies whether the check succeeded
DocumentComment | string | Read/write | A comment which is added to the document in the event of successful routing
PrincipalId | int | Read/write | A user or user group identifier that is assigned to the document if the routing succeeds. If the document is not assigned to any principal in the routing script, the PrincipalId value is "0". The "0" value indicates that the document can be processed by any user. For details, see IPrincipal.
Priority | TProcessingPriority | Read/write | The priority that will be assigned to the document if the routing script returns "true"
ProhibitedUserId | int | Read/write | Allows you to specify or get the identifier of the user who is not allowed to process the task in the following stage. By default the value is "0" which means that the task can be processed by any user. Note: The property applies only to those tasks which are sent to a stage automatically according to a workflow scheme. If the task is sent to a stage manually, the property value is ignored.


Processing scripts

Document and batch processing scripts allow you to change the document or batch structure respectively, specify a custom order of sections in the document or order of documents in the batch. Processing scripts can be added when creating a custom stage in the in the Advanced mode of the Workflow setup.

Both scripts are used to process multiple documents and have the possibility to log the processing progress.

Document processing script

All documents to be processed are passed to this script in turn.

Parameters

Name | Type | Access | Description
Document | IDocument | Full control | The document to be processed
Processing | IProcessingCallback | Full control | The object for logging the information about processing

Note: If the task is cancelled, the processing status will change to false (similar to using the method IProcessingCallback.ReportError).

Batch processing script

The input parameters of the script are a batch and a set of documents in it to be processed. The iteration over documents is implemented by the user.

The advantage of the batch processing script is that the methods, which can change the batch structure, are available in it. These methods make it possible to move or delete documents and pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read only. Internal* fields of batch documents and pages are unavailable. | The batch
Documents | IDocuments | Full control. For these documents the batch structure can be modified. | Documents to be processed
Processing | IProcessingCallback | Full control | The object for logging the information about processing

* - The internal field requires loading the object into memory.


Processing Server

The Processing Server distributes the workload among the Processing Stations. Together with the Processing Server, a Processing Server Monitor is installed, which is used for monitoring the server and setting task priorities. Document processing proper is done on the Processing Station.

Once the Processing Server is installed, you should configure it: start the server, add, set up and start the Processing Stations, and enable Hot Folders.

Note: Before starting the Processing Server, make sure that the Processing Server access rights have been granted to the account under which the server is running (<domain name\computer name>$).

A description of the setup process is provided below.

Collapsed Starting the Processing Server

To start the Processing Server:

  1. Launch the Processing Server Monitor by selecting Start>Programs>ABBYY FlexiCapture Servers> Processing Server.
  2. On the server tree, select ABBYY FlexiCapture Servers, right-click, and select Add Server…
  3. In the Add Processing Server dialog box, specify the server location (Network host or Local host).
  4. Select Actions>Properties and provide the path to the Application Server (http://server). If the Processing Server and the Application Server are installed on the same computer, specify its name directly, as the use of the IP address 127.0.0.1 or the localhost expression will render the Processing Stations inoperable.

    Note: On the Application Server, start the Administration and Monitoring Console and assign the corresponding role to the computer on which the Processing Server is installed.

  5. Click [image] to start the Application Server.

    Note: The Processing Server can be stopped by using hard or "soft" stop. If you need to stop the Processing Server, for example, for upgrade purposes or for moving a database, you can use the "soft" stop. For this, select Actions>Stop. In this case, all current tasks are completed and afterward the Processing Server is stopped. New tasks are not taken into processing.
    To do a hard stop of the Processing Server, select Actions>Stop Immediately. In this case all current tasks will fail.

Collapsed Starting the Processing Stations

To set up the Processing Stations:

  1. In the server tree, select Stations and click [image]. The Add Stations dialog box appears. Select the desired stations from the overall list. You can also specify the name of the computer or its IP address. You can specify the name of the computer even if dynamic IP addresses are used. Use IP addresses if you experience problems accessing the DNS network.
  2. Select Actions>Properties and in the Station Properties dialog box, specify the parameters of the station:
    • Name - the displayed name of the station
    • Start automatically - this flag means that the station is started automatically by the Processing Server; by default this option is selected

      Note: Frequent attempts to start too many stations may considerably slow down the Processing Server

    • Required amount of disk space - the minimum disk space required for the operation of the Processing Stations; if there is not enough free disk space, the station will be stopped. The space specified in the field should be three times as large as the maximum size of an image that can be in processing. The optimal value of the minimum disk space is the doubled maximum size of a batch that can be in processing.
    • Maximum number of processes (CPU cores) - the maximum number of CPU cores that can be used for task processing
    • Allowed number of processes (CPU cores) - the allowed number of CPU cores for task processing; this parameter is computed automatically based on your hardware and license parameters and cannot be changed
    • Process priority - the priority of the process
    • Acceptable task types - the task types that the station can handle:
      • Import images - import tasks
      • Recognize pages - recognition and export preprocessing tasks
      • Verification support - merging results of double verification as well as pre- and postprocessing tasks for the Web Verification and Web Data Verification stations.
      • Custom processing - processing batch and document processing scripts
      • Export documents - document export tasks
  3. Click [image] to start the station manually or wait for the station to start automatically (if the Start automatically option is selected, the station starts automatically within a minute).

    Note: The Processing Station can be stopped by using hard or "soft" stop. If you need to stop the Processing Station, for example, for upgrade purposes, you can use the "soft" stop. For this, select Actions>Stop. In this case, all current tasks are completed and afterward the Processing Station is stopped. New tasks are not taken into processing.
    To do a hard stop of the Processing Station, select Actions>Stop Immediately. In this case all current tasks will fail.

    Note: The stations receive the rights to process documents from the Processing Server when they connect to the server.

Collapsed Enabling Hot Folders

To enable Hot folders:

  1. In the Processing Server tree, select Hot Folders.
  2. Select the desired project from the overall list of projects.
  3. Select Enable from the shortcut menu.

Note: The Check Hot Folder every N seconds option must be selected for the project.

Collapsed Setting up the Processing Server log

To set up the Processing Server log:

  1. Open the Processing Server Monitor Settings dialog box by selecting File>Settings…
  2. Specify which messages should be logged (Errors, Warnings, Information messages).
  3. Specify whether information about completed tasks should be deleted (Remove completed task from the list).
  4. Specify which messages will trigger logging information about the task.

    Note: We do not recommend disabling the Remove completed task from the list option during normal operation of the system, as this may cause a pile-up of data and slow down the Processing Server Monitor. Disable this option only when setting up and tuning the system.

  5. Click [image] to view the task log. To save a task log as *.txt file, in the dialog box that opens click the Export Log… button.
Collapsed Viewing task info

To view task details, select Tasks in the Processing Server tree. For each task, the following parameters are displayed: task name, start-up time, progress, status, priority and the station name. Failed tasks are marked with [image]. If besides error message, the task log also contains informational messages, the task is marked with [image].

Collapsed Service log

Besides the regular task processing log, the Processing Server and the Processing Station can keep a service log. ABBYY technical support staff may need information from this log when handing your support requests. Service logging will not slow down your Processing Server or Processing Station, but information contained in this log is only useful to ABBYY’s technical support engineers, so we do not recommend that you have service logging permanently enabled. If a technical support engineer asks you for a service log, please follow these steps:

  1. Depending on which log is required, open the Processing Server Properties dialog box (select Properties from the shortcut menu of the Processing Server) or the Station Properties dialog box (select Properties from the shortcut menu of the Processing Station).
  2. Select the Write processing log option and click OK.
  3. Once the log files are created, you can find them in %programdata%\ABBYY\FlexiCapture\11.0\FlexiBrSvc\Logs. Send copies of these files to the ABBYY technical support service.
  4. Disable service logging by clearing the Write processing log option and clicking OK.
Collapsed Managing the Processing Server using command line

Processing Server can be operated via the command line. For command line operation, do the following:

  • In the Start -> Run Windows menu, type 'cmd' and click OK. A command line prompt window will appear;
  • Type the path to the FlexiBRSvc.exe file (by default, "C:\Program Files\ABBYY FlexiCapture 11 Servers");
  • Type "FlexiBRSvc Please obey" to enter the command mode. The commands are entered in the form of 'FlexiBRSvc Please <command>'. The commands allow you to start or stop a station, display the stations list, start or stop the Processing Server, add or remove stations, view information about a station, enable or disable hot folders as well as to set server and station parameters;
  • To show the list of allowed commands and other help information, type 'FlexiBRSvc.exe /?'.


Remote Verification Station

Similar to the local Verification Station the Remote Verification Station is used to verify the data, process problem batches or documents, correct assembly errors, apply data rules, and check batches for integrity.

The difference between the local and remote stations is that the remote Verification Station does not support background processes such as import, recognition and export. Thus operations which involve background processes are available in the local Verification Station only.

The remote Verification Station allows you to match Document Definition on documents and pages. To change the Document Definition, select the Match Document Definition item from the document or page local menu. The document will be marked for processing and the name of a new Document Definition will be displayed in the Sending Note column. To cancel matching a new Document Definition, select the Match Document Definition item from the document or page local menu and choose the initial Document Definition.

If necessary, you can also mark a page as an annex page. For this, select the Set Page as Annex item from the page local menu.

To clear recognition results for a document or a separate page, use the Clear Analy&zing Results item in the page or document local menu.

When closing the task, all documents whose Document Definition has been changed (or a new Document Definition has been matched on a document page), are sent to re-recognition. After re-recognition these documents are routed according to the standard workflow scheme (this also applies to documents which were marked for sending to a particular stage before or were sent to the stage manually).

Note: Documents whose Document Definition was changed and then the initial Document Definition was returned, are not sent to re-recognition and their further processing is performed according to a workflow scheme specified before.


Verification Station

The Verification Station allows more complex checks than the Data Verification Station. Besides verifying the data, the station allows its operator to process problem batches or documents, correct assembly errors, apply data rules, and check batches for integrity. The Verification Station can work both in a local and a remote network (via the Internet). Authorization is carried out using a login and a password. For more details, please see Remote Verification Station.

The Verification Station can be operated by the following operators: Data Verification Operators, Verification Operators, and Senior Verification Operators. Depending on which role the operator selected when logging onto the station, they see and can process tasks from different queues:

  • A Data Verification Operator can process only tasks from the Data Verification queue
  • A Verification Operator can process tasks from any stage except the Exceptions stage and the Export Confirmation stage
  • A Senior Verification Operator can process tasks from any queue. Besides the list of queues, the Senior Verification Operator can also access the list of certain batches (for details, see the description below) and the view mode for each stage where a particular task from the queue can be selected.

Note: The administrator can create additional processing stages and the corresponding queues. Whether an operator can access these queues depends on the operator's role and on the required permissions for these queues (these permissions are defined by the administrator).

Note: The list of available roles depends on the operator's access rights. If only one role is available to the operator, the list of roles is not displayed.

The following queues are available on the Verification Station:

  • <Any>

    This queue includes tasks created in any of the other queues. The list of queues available to an operator depends on the role selected by the operator when logging onto the station. The tasks are taken in the order of their priority.

  • Data Verification

    The data verification process starts with group verification followed by field verification. If a Document Definition has no fields included into group or field verification, the document is not placed in the data verification queue.

  • Document Assembly Check

    For multi-page documents, document assembly errors may have to be corrected. Document assembly rules are created together with Document Definitions and define the order of pages and the number of page repeats. Additionally, document assembly may be checked based on key field values, in which case the values of the key fields must be the same on all the pages of a document. If the values differ, an error message is displayed and the values are highlighted in red. Assembly errors are best corrected in the page thumbnail view, as it provides a clear general view of the pages and it becomes immediately clear to which document they belong.

  • Verification

    If no special queues are specified by the processing parameters, the Verification queue contains all tasks with document assembly errors, data verification errors, and rule errors.

  • Batch Integrity Check

    The rules used for data integrity checks establish links among the data in the documents of a batch.

  • Export Confirmation

    Data export can be initiated manually or automatically. If the processing parameters do not define a separate Export Confirmation queue, the documents are exported automatically. If the processing parameters include a separate Export Confirmation queue, the Senior Verification Operator must first check documents of the task after which the task is sent to the Export queue. If an error occurs in the Export stage, the documents are automatically sent to the Exceptions queue.

  • Exceptions

    Problem batches or documents, which the operators or stations failed to process, are sent to the Exceptions queue.

Note: The document processing parameters (i.e. separate queues) are specified for batch types or for the entire project if no batch types are used.

To perform a task, select the desired queue in the list of queues and click [image].

You can enable the automatic mode of getting tasks by clicking [image] or Task>Automatic Task Receive.

On the Verification Station task documents preview is available in Details and Thumbnails view modes. In Details view, only the documents of the active task are displayed. In Thumbnails view, all the documents of the batch are displayed and the pages that are not part of the active task are highlighted in gray.

Помимо списка очередей с заданиями Старшему оператору верификации также доступен список пакетов данного проекта, определяемый заданными в Консоли администрирования и мониторинга правами доступа оператора к типам пакетов. Для просмотра списка доступных пакетов select View>Batches item in the menu or click a corresponding button on the toolbar.

In the batches view mode the operator can get access to information about the batch confidence level, the number of pages and documents, the batch type, ect. With a mouse selection of a batch in the list you can send the selected batch to any processing stage, specify the batch priority, select a particular user to verify the batch and add comment. Thus you can collect documents, which belong to one batch, from different processing queues, and send them to one stage.

With a double-click you can open the batch to look through the list of documents, verify data, correct possible rule and assembly errors, etc. With a mouse selection of one or several documents, you can send the selected documents to a processing stage and create a separate task for them.

To mark selected documents for sending to Exceptions, Rescanning or any processing stage, select the corresponding item from the Task menu or in the document local menu. In the dialog box that opens, you can enter your comment or choose a comment from the Recent comments list. You can choose from 10 latest comments to the sent tasks. If you want to edit text of a comment from the list, choose the desired comment, click OK and edit the text of the comment in the input field. If there is a rarely used comment in the list, you may delete it.
The list of comments is stored in the registry branch

[HKСU\Software\ABBYY\FlexiCapture\11.0\Shell\Stages\RecentStageCommentList]

Comments in the string are separated by a comma. If the comment text contains a comma, the comma is written as «/,». The symbol of a new line «/» is written as «//». A multiline comment is displayed as a single line divided by spaces. In comment text, any characters can be used.

Thus, different FlexiCapture users working in the local Verification station within a single Windows user session, use the same list.

For documents sent to Rescanning, you can also specify the operator, the task will be assigned to. By default the operator who scanned the document is selected. If this operator does not have necessary permissions or images were imported from a hot folder, the user 'Any' is specified as a scanning operator.

Once the task is closed, documents marked for sending will be sent to the corresponding processing stages.

Note: When sending batches to stages, make sure that the documents of the batch do not belong to already created tasks, otherwise empty tasks will be created. You can check whether the document belongs to a task in the Task ID column.


Workflow

Both pre-configured and custom schemes can be used for processing documents. Pre-configured processing schemes can be either unattanded (the Unattended mode) or involve human operators (the Simple mode). A custom processing scheme is configured in the Advanced mode. There is also a special mode for Web Capture station.

Specifics of the Simple, Advanced, Unattended and for Web Capture station modes:

In the Simple mode, human operators are involved. In this mode, separate stages can be used for rescanning, data verification, document assembly check, verification, batch integrity check and export confirmation. For data verification, document assembly check, verification, batch integrity check and export confirmation stages, it is also possible to use web-stations. Documents (or entire batches) can go through these stages automatically (if there no processing errors) or after they are checked and corrected by an operator. If an error occurs, the document is sent to the exceptions stage. Likewise, an operator may send a document to the exceptions stage.

In the Advanced mode, complex workflow schemas can be configured. In this mode, it is possible to modify settings of base stages as well as create custom stages and include them in the processing schema. You can also enable double verification, thereby documents will be verified by two different operators in the Data Verification Station. In this mode you can also use scripts to process documents or entire batches.

In the Unattended mode, no operator involvement is required to process and export documents. In the event of an error, the unrecognized image may be saved to a dedicated folder, which can be selected on the Export tab, while the successfully processed documents are automatically exported. In the Unattended mode, batches are processed in their entirety.

In the for Web Capture station, you can specify the condition under which documents are sent to verification. This mode applies to document processed in the Web Capture station.

The order of processing is specified for each batch type. When a new batch is created, it is assigned a type, which predetermines the order of processing.

If no batch types are created, all batches are processed with the <default> settings specified for the entire project.


Data Verification Station Menu

Collapsed File
Menu | Description
Open Project from Server… | Opens an existing project from the Application Server
Close Project | Closes the current project
Recent Projects | Opens one of the previously opened projects
Exit | Closes ABBYY FlexiCapture
Collapsed View
Menu | Description
Toolbars | Shows/hides the toolbars
Status Bar | Shows/hides the status bar
Full Screen | Switches to full screen mode
Refresh | Refreshes the information displayed
Collapsed Tasks
Menu | Description
Get Task | Gets a task from the selected queue
Show Task Comment | Shows comments on the task
Reject Task | Rejects the current task and returns it to the Application Server
Send Task to Exceptions… | Sends the current task to Exceptions
Automatic Task Receive | Enables/disables automatic task receive mode
Collapsed Tools
Menu | Description
Options… | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other
Collapsed Help
Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box containing brief description of the program.


Data Verification Station Toolbars

Collapsed Queues and tasks

Tool | Button | Description
Get Task |  | Opens a task from the selected queue.
Reject Task |  | Rejects the task (it will be later sent to another Operator by the server).
Refresh |  | Refreshes information in the main window.
Automatic Task Receive |  | Enables/disables automatic task receive mode.


Data verification station main window

Data Verification Station

The main window of the program shows the names of the queues tasks are taken from (data verification queues).

After you get a task, the Group and Field Verification windows will open consecutively.

The main menu, with toolbars below it, is located on the top of the window.

The Status Bar is located on the bottom of the window. The Status Bar shows the status of the program and the operations being carried out. When you position the cursor over menu items or buttons, the Status Bar will display their short descriptions.

Data Verification Station Menu
Data Verification Station Toolbars


Project Setup Station Menu

Collapsed File
Menu | Description
New Project… | Creates a new project
Open Project… | Opens an existing project
Open Project from Server… | Opens an existing project from the Application Server
Close Project | Closes the current project
Save | Saves the changes
New Batch… | Creates a new batch
Load Images… | Loads images from files
Scan Images… | Adds images obtained by scanning
Import Images… | Imports images using one of the configured import profiles
Export To |
Data to Files… | Exports data to a file
Images to Files… | Exports images to files
Database… | Exports data to a database
Recent Projects | Opens one of the previously opened projects
Exit | Closes ABBYY FlexiCapture
Collapsed Edit
Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Cut | Cuts the selected objects
Copy | Copies the selected objects to Clipboard
Paste | Pastes the copied object from Clipboard
Delete | Deletes the selected objects
Merge | Merges the selected pages into one document
Split | Splits the selected document into pages
Select All | Selects all objects
Find… | Finds the specified text
Find Next | Finds the next text that was previously specified
Go To |
Next Document | Goes to the next document in the batch
Previous Document | Goes to the previous document in the batch
Image |
Despeckle | Despeckles the image
Invert | Inverts the image
Flip Horisontally | Flips the image horizontally (relative to the vertical axis)
Flip Vertically | Flips the image vertically (relative to the horizontal axis)
Rotate 90° Clockwise | Rotates the image 90° clockwise
Rotate 90° Counter-Clockwise | Rotates the image 90° counterclockwise
Rotate 180° | Rotates the image 180°
Change Resolution… | Changes the resolution of the image
Save As… | Saves the image with the specified name
Collapsed View
Menu | Description
Test Batches | Opens the list of test batches
Working Batches | Opens the list of batches
Details | Shows the documents and their pages as a detailed list
Thumbnails | Shows document images as thumbnails
Choose Columns… | Allows configuring the list of columns displayed in the detailed view mode
Document Editor |
Image Mode | Shows the page image in the document window
Data Mode | Shows the recognized data in the document window
Image Window | Allows positioning the image in the document window
Errors Window | Allows positioning the errors window in the document window
Image Scale | Allows selecting a suitable field image scale
Data Text Scale | Allows selecting the font size used when displaying recognized data
Show Toolbar | Shows/hides the toolbar in the document window. This toolbar allows correcting some of the matching errors, for example, you can add the field that wasn't found, and add or delete a table separator. This is mainly used when working with FlexiLayouts.
Show Format Error of Active Field | Allows specifying the format error display mode
Show Image in Black and White | Shows color and gray images in black and white
Thumbnails Size | Allows selecting the size of page thumbnails
Toolbars | Shows/hides the toolbars
Status Bar | Shows/hides the status bar
Full Screen | Switches to full screen mode
Refresh | Refreshes the information displayed
Properties… | Opens the document or page properties dialog box
Collapsed Recognition
Menu | Description
Analyze | Analyzes the pages of the documents and finds a suitable Document Definition
Match Document Definition… | Matches the selected Document Definition to the selected document or page
Recognize | Starts the recognition
Collapsed Verification
Menu | Description
Run Verification… | Starts verification
Next Item to Verify | Goes to the next verification object
Previous Item to Verify | Goes to the previous verification object
Next Document with Assembly Error(s) | Goes to the next assembly error
Previous Document with Assembly Error(s) | Goes to the previous assembly error
Next Uncertain Character | Goes to the next uncertainly recognized character
Previous Uncertain Character | Goes to the previous uncertainly recognized character
Next Rule Error | Goes to the next rule error
Previous Rule Error | Goes to the previous rule error
Collapsed Project
Menu | Description
Document Definitions… | Opens the dialog box with the list of Document Definitions, which allows creating, editing, importing, and deleting them (this menu is available for the Administrator only)
Batch Types… | Opens the dialog box with the list of batch types, which allows creating, editing, and deleting them (this menu is available for the Administrator only)
Image Import Profiles… | Opens the dialog box with the list of Image import Profiles, which allows creating, copying, editing, and deleting them (this menu is available for the Administrator only)
Protect with Password… | Allows protecting the current project with a password (this menu is available for the Administrator only)
Unprotect… | Allows disabling password protection of the project (this menu is available for the Administrator only)
Export Project… | Exports the project to the specified folder. Images are taken from the current project.
Update Project… | Configures project updating. Messages and errors that appear during import can be saved to a file (right-click and then click - Export to File).
Project Properties… | Opens the Project Properties dialog box
Collapsed Tools
Menu | Description
Update to Latest Version | Applies the project changes to the currently processed documents
Re-analyze | Re-analyzes the documents
Re-recognize | Re-recognizes the documents
Refresh Assembly | Refreshes the pages' assembly into documents
Re-check Rules | Re-checks rules
Check Batch Integrity | Checks batch integrity
Change Batch Priority | Allows selecting batch priority
Change Batch Type… | Changes the batch type
Options… | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other.
Collapsed Help
Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file
Technical Support | Opens the Technical Support section in the program help
How to Buy ABBYY Products | Opens the Buying ABBYY FlexiCapture section in the program help
ABBYY Website | Opens the ABBYY website
Send Feedback… | Allows sending feedback to ABBYY: the user's opinion, wishes or comments
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box containing brief description of the program.


Project Setup Station Toolbars

Collapsed The standard toolbar

Tool | Button | Description
Open Project |  | Opens a project
Save Changes |  | Saves the changes
Cut |  | When working with data in the document image, cuts the selected object
Copy |  | Copies the selected object to
Paste |  | Pastes the copied object from Clipboard
Delete |  | Deletes the selected object
Undo |  | Cancels the last action
Redo |  | Restores the canceled action
Collapsed Documents view

Tool | Button | Description
Details View |  | Shows the documents and their pages as a detailed list
Thumbnails View |  | Shows document images as thumbnails
Test Batches List |  | Shows the list of test batches
Work Batches List |  | Shows the list of work batches
Refresh |  | Refreshes the information in the main window
Collapsed Navigation

Tool | Button | Description
Previous Item to Verify |  | Goes to the previous verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Next Item to Verify |  | Goes to the next verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Previous Document |  | Goes to the previous document.
Next Document |  | Goes to the next document.
Collapsed Project setup

Tool | Button | Description
Document Definitions… |  | Opens the window with the list of Document Definitions in the project.
Batch Types… |  | Opens the window with the list of batch types in the project.
Project Properties… |  | Opens the Project Properties window.
Show Image Import Profile |  | Opens the window with the list of Image Import Profiles in the project.
Upload Project to Server… |  | Opens the window allowing to upload the project to the Application Server.


Project Setup Station Window

The main window of the Project Setup Station contains a list of document batches from the current project. By default, all batches except for those that have already been processed are displayed.

Filtering batches

You can filter batches from projects that are stored on the processing server. To do so, select a filter from the Show drop-down list and specify filter settings.

  • All batches except processed;
  • Batches on stages… filters batches by processing stages.
    Collapsed Additional filter settings
    • Only enabled stages hides stages that are not used for processing any of the batch types in the current project.
    • Show out-of-processing batches shows batches that were not processed. If this option is enabled, you will not be able to filter by selected batch types.
  • Batch with name prefix…
    Filters batches by the prefixes of their names.
  • Batch with ID…
    Filters batches by their IDs.
  • Batch containing document with ID…
    Filters batches by IDs of documents they contain.
  • Batches created in period…
    Filters batches by their creation time. Dates earlier than 02/01/1753 and later than 12/31/2100 are not permited.
  • Batches with batch type…
    Filters batches by their type.
  • Batches with specific registration parameter…
    Filters batches by registration parameter names and values. The filter can include up to three parameters.
    Collapsed Tip.

    You can specify the name and value of a registration parameter manually or select them from the Parameter drop-down list. This list contains registration parameters from all batch types and the last ten parameter names that you typed. The Value drop-down list contains ten registration parameters that were specified by a user.

  • Batches filtered with…
    Advanced search that uses batch name prefixes, batch types, creation dates, registration parameters and stages.

When a filter is in use, a brief summary of its settings is displayed to the right of the Show drop-down list. To change the settings of the filter that is currently in use, click the [image] button.

The Batch window

The top part of the window contains the menu bar and the toolbar. The bottom part contains the status bar, which displays messages about the program's status and the operations it is performing, and brief descriptions of selected menu items and buttons.

The rest of the main window is taken up by the Batch pane that contains a list of batches.

Collapsed Screenshot of the main window with the batch list

One page can contain up to 500 batches. Use the arrow buttons in on the right to switch between pages.

Double-click a batch to view the documents it contains.

Collapsed Screenshot of the main window with a list of documents from an open batch

To return to the list of batches, click View > Working Batches (or Test Batches if you are working with test batches).

The Document window

To begin verifying data, open the Document window by double-clicking the name of a document or one of its pages. This window is divided into 3 panes:

  • a pane containing an image of the document;
  • a pane with recognized data;
  • a pane with rule errors (this pane is only displayed if there are rule errors).
Collapsed Screenshot of the Document window

When you place the mouse pointer over a field that contains a date or a number, a tooltip is displayed. The format of the data in the tooltip depends on the regional settings on your computer, so the format of the date in the field and the date in the tooltip may differ. The tooltip also displays the time when the form was filled out, adjusted to your time zone.

For details, see Verification in the document window.

Copying and moving documents

Documents can be copied and moved from one batch to another. If the document is copied or moved, all information about it, including the applied document definition and any recognized data, is retained. To copy or move documents (for example from a regular batch to a test batch for training), select them in the list of documents and press Ctrl+C to copy and Ctrl+X to cut. You can also use the [image] and [image] buttons and the Copy and Cut commands on the Edit menu. Next, open the batch to which you want to copy the files and press Ctrl+V, click the [image] button or select Edit > Paste to copy.

Project Setup Station Menu
Project Setup Station Toolbars


Verification Station Menu

Collapsed File
Menu | Description
Open Project from Server… | Opens an existing project from the Application Server
Close Project | Closes the current project
Save | Saves the changes on the server
Load Images… | Loads images from files
Scan Images… | Adds images obtained by scanning
Export To |
Data to Files… | Exports data to a file
Images to Files… | Exports images to files
Database… | Exports data to a database
Recent Projects | Opens one of the previously opened projects
Exit | Closes ABBYY FlexiCapture
Collapsed Edit
Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Cut | Cuts the selected objects
Copy | Copies the selected objects to Clipboard
Paste | Pastes the copied object from Clipboard
Delete | Deletes the selected objects
Merge | Merges the selected pages into one document
Split | Splits the selected document into pages
Select All | Selects all objects
Find… | Finds specified text
Find Next | Finds the next text that was previously specified
Go To |
Next Document | Goes to the next document in the batch
Previous Document | Goes to the previous document in the batch
Image |
Despeckle | Despeckles the image
Invert | Inverts the image
Flip Horisontally | Flips the image horizontally (relative to the vertical axis)
Flip Vertically | Flips the image vertically (relative to the horizontal axis)
Rotate 90° Clockwise | Rotates the image 90° clockwise
Rotate 90° Counter-Clockwise | Rotates the image 90° counterclockwise
Rotate 180° | Rotates the image 180°
Change Resolution… | Changes the resolution of the image
Save As… | Saves the image with the specified name
Collapsed View
Menu | Description
Working Batches | Opens the list of batches
Queues | Opens the list of queues
Details | Shows the documents and their pages as a detailed list
Thumbnails | Shows document images as thumbnails
Choose Columns… | Allows configuring the list of columns displayed in the detailed view mode
Document Editor |
Image Mode | Shows the page image in the document window
Data Mode | Shows the recognized data in the document window
Image Window | Allows positioning the image in the document window
Errors Window | Allows positioning the errors window in the document window
Image Scale | Allows selecting a suitable field image scale
Data Text Scale | Allows selecting the font size used when displaying recognized data
Show Toolbar | Shows/hides the toolbar in the document window. This toolbar allows correcting some of the matching errors, for example, you can add the field that wasn't found, and add or delete a table separator. This is mainly used when working with FlexiLayouts.
Show Format Error of Active Field | Allows specifying the format error display mode
Show Image in Black and White | Shows color and gray images in black and white
Thumbnails Size | Allows selecting the size of page thumbnails
Toolbars | Shows/hides the toolbars
Status Bar | Shows/hides the status bar
Full Screen | Switches to full screen mode
Refresh | Refreshes the information displayed
Collapsed Recognition
Menu | Description
Analyze | Analyzes the pages of the documents and finds a suitable Document Definition
Match Document Definition… | Matches the selected Document Definition to the selected document or page
Recognize | Starts the recognition
Collapsed Tasks
Menu | Description
Get Task | Gets a task from the selected queue
Close Task | Closes the current task and returns it to the Application Server as completed
Show Task Comment | Shows comments to the task
Reject Task | Rejects the current task and returns it to the Application Server
Postpone Task… | Postpones the current task for later processing
Send to |
Exception... | Sends the current task to the Exceptions stage
Rescanning... | Sends the current task to the Rescanning stage
Stage... | Sends the current task to a selected stage. Sending documents to stages other than Exception and Rescanning is available for the Senior Verification Operator role type only.
Mark Documents for Sending to |
Exception... | Marks selected documents for sending to the Exceptions stage. When you close the task, marked documents will be sent to the stage.
Rescanning... | Marks selected documents for sending to the Rescanning stage. When you close the task, marked documents will be sent to the stage.
Stage... | Marks selected documents for sending to a selected stage. When you close the task, marked documents will be sent to the stage. Sending documents to stages other than Exception and Rescanning is available for the Senior Verification Operator role type only.
Add Documents to Marked… | Adds selected documents to already marked documents. In the dialog box that opens, select a desired stage from the list of earlier selected stages.
Delete Sending Mark | Deletes selected documents from the list of document marked for sending
Sending Marks… | Opens the Sending Marks dialog box where you can view the list of marks, delete a mark or change its comment
Automatic Task Receive | Enables/disables automatic task receiving
Get Entire Batch | If the operator is assigned the role whose access rights allow editing batches, then in the batches view mode, the operator can edit an opened batch. The command is available if at least one document of the batch belongs to the task. If all document belong to the same task, opens this task. If the documnets belong to different tasks, creates a task for the batch in the Exceptions stage.
Edit document | If the operator is assigned the role whose access rights allow editing documents, then in the documents view mode, the operator can edit an opened document. The command is available if at least one of selected documents belongs to the task. If all selected documents belong to the same task, opens this task. If the documnets belong to different tasks, starts editing the whole batch and creates a task for the batch in the Exceptions stage.
Task Properties… | Opens the Task Properties dialog box where you can view the task details: task ID, creation time, priority, etc.
Collapsed Verification
Menu | Description
Run Verification… | Starts verification
Next Item to Verify | Goes to the next verification object
Previous Item to Verify | Goes to the previous verification object
Next Document with Assembly Error(s) | Goes to the next assembly error
Previous Document with Assembly Error(s) | Goes to the previous assembly error
Next Uncertain Character | Goes to the next uncertainly recognized character
Previous Uncertain Character | Goes to the previous uncertainly recognized character
Next Rule Error | Goes to the next rule error
Previous Rule Error | Goes to the previous rule error
Collapsed Tools
Menu | Description
Change Document Priority | Allows you to change the priority of currently processed documents. Possible values: Lowest, Low, Normal, High, Highest.
Update to Latest Version | Applies the project changes to the currently processed documents
Re-analyze | Re-analyzes the documents
Re-recognize | Re-recognizes the documents
Refresh Assembly | Refreshes the pages' assembly into documents
Re-check Rules | Re-checks rules
Check Batch Integrity | Checks batch integrity
Change Batch Priority | Allows selecting batch priority
Change Batch Type… | Changes the batch type
Options… | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other
Collapsed Help
Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file
Technical Support | Opens the Technical Support section in the program help
How to Buy ABBYY Products | Opens the Buying ABBYY FlexiCapture section in the program help
ABBYY Website | Opens the ABBYY website
Send Feedback… | Allows sending feedback to ABBYY: the user's opinion, wishes or comments
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 11 dialog box containing brief description of the program.


Verification station toolbar

Verification Station Toolbars

Collapsed The standard toolbar

Tool | Button | Description
Open Project from Server… |  | Opens a project from server.
Save Changes |  | Saves the changes.
Cut |  | When working with data in the document window, cuts the selected object.
Copy |  | Copies the selected object.
Paste |  | Pastes the copied object from Clipboard.
Delete |  | Deletes the selected object.
Undo |  | Cancels the last action.
Redo |  | Restores the canceled action.
Collapsed Documents view

Tool | Button | Description
Details |  | Shows the documents and their pages as a detailed list.
Thumbnails |  | Shows thumbnails of document images.
Test Batches |  | Shows the list of test batches.
Work Batches |  | Shows the list of work batches.
Refresh |  | Refreshes information in the main window.
Collapsed Navigation

Tools | Button | Description
Previous Item to Verify |  | Goes to the previous verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Next Item to Verify |  | Goes to the next verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Previous Document |  | Goes to the previous document.
Next Document |  | Goes to the next document.
Collapsed Queues and tasks

Tool | Button | Description
Get Task |  | Opens a task from the selected queue.
Close Task |  | Returns the task to the server.
Mark for sending to exception |  | Marks the document for sending to Exceptions (for the Senior Verification Operator - to the selected processing stage). When closing or rejecting the task, you will be prompted to send marked documents to Exceptions
Mark for sending to rescanning |  | Marks the document for sending Rescanning. When closing or rejecting the task, you will be prompted to send marked documents to Rescanning.
Unmark documents |  | Unmarks the selected document marked for sending to Exceptions or Rescanning.
Postpone Task… |  | Postpones the task.
Reject Task |  | Cancels the task (it will be sent to another Operator by the server).
Automatic Task Receive |  | Enables/disables automatic task getting.


Verification station window

The Main Window of the Verification Station

The top part of the window contains the menu bar and the toolbar. The bottom part contains the status bar, which displays messages about the program's status and the operations it is performing, and brief descriptions of selected menu items and buttons. The rest of the main window is taken up by a pane that contains either a list of queues or a list of documents.

There are two view modes: the queue mode and the batch mode. The contents of the main window will change depending on which mode is selected.

Queues

The main window contains a list of queues from which you can select a tasks to process.

The Verification operator and the Senior verification operator have access to several task queues.

The task pane contains the following information:

All Tasks Count
The number of available tasks in the queue. Includes automated tasks and tasks created by operators.

Max Priority
The highest priority of all tasks in the queue.

Personal Tasks Count

The number of tasks assigned to the current user.

Out-of-Processing Documents Count
The total number of documents in all tasks that were generated automatically.

Formed Tasks Count
The number of tasks that were created manually by operators, for example when documents were added to the queue while the Create task option was enabled.

Out-of-Processing Batches Count
The number of batches that were added to the queue by an operator without creating a separate task.

Collapsed Show the main window

A list of documents in a task is displayed when a task is received.

Collapsed Show the main window displaying the list of documents

Batches

In this mode the main window contains batch-related information, including the number of documents and pages in batches, the priority of batches and the amount of recognized, verified and exported symbols in batches.

By default, all batches available to the operator except for those that have already been processed are displayed. One page can contain up to 500 batches. Use the arrow buttons in on the right to switch between pages.

Filtering batches

You can filter batches from projects that are stored on the processing server. To do so, select a filter from the Show drop-down list and specify filter settings.

  • All batches except processed;
  • Batches on stages… filters batches by processing stages.
    Collapsed Additional filter settings
    • Only enabled stages hides stages that are not used for processing any of the batch types in the current project.
    • Show out-of-processing batches shows batches that were not processed. If this option is enabled, you will not be able to filter by selected batch types.
  • Batch with name prefix…
    Filters batches by the prefixes of their names.
  • Batch with ID…
    Filters batches by their IDs.
  • Batch containing document with ID…
    Filters batches by IDs of documents they contain.
  • Batches created in period…
    Filters batches by their creation time. Dates earlier than 02/01/1753 and later than 12/31/2100 are not permitted.
  • Batches with batch type…
    Filters batches by their type.
  • Batches with specific registration parameter…
    Filters batches by registration parameter names and values. The filter can include up to three parameters.
    Collapsed Tip.

    You can specify the name and value of a registration parameter manually or select them from the Parameter drop-down list. This list contains registration parameters from all batch types and the last ten parameter names that you typed. The Value drop-down list contains ten registration parameters that were specified by a user.

  • Batches filtered with…
    Advanced search that uses batch name prefixes, batch types, creation dates, registration parameters and stages.

When a filter is in use, a brief summary of its settings is displayed to the right of the Show drop-down list. To change the settings of the filter that is currently in use, click the [image] button.

Verification Station Menu
Verification Station Toolbars


The Field Verifier Toolbars

Collapsed The standard toolbar

Tool | Button | Description
Previous Field |  | Goes to the previous field
Next Field |  | Goes to the next field
Confirm Field/Skip Field |  | Confirms correct recognition of all characters in the field and goes to the next field. If the field value doesn't correspond to the field format, the button name will change to Skip Field. If the field value cannot be corrected, it can either be skipped or postponed.
Postpone Field |  | Postpones verification of the field, if it is impossible to correct it
Previous Uncertain Character |  | Goes to the previous uncertainly recognized character
Next Uncertain Character |  | Goes to the next uncertainly recognized character
Undo |  | Cancels the last action
Redo |  | Restores the canceled action


Distributed verification

Distributed verification allows you to restrict the set of fields that require verification in the stage. Distributed verification can be used in the Verification and Data Verification stage type. Creating custom processing stages based on these stages enables processing different document fields in different stage (the rule of sending document to a stage is set up with a script). The list of fields available in the stage must be specified in the stage settings dialog box, on the Field Set tab.

When using distributed verification, it is recommended to pay attention to the following:

  • Information about the error is displayed in the Errors window, only if at least one field associated with the error is included in the data set available to the operator. If none of the fields associated with the error is included in the fields set, information that the document contains errors is not displayed to the operator.
  • If some of the fields associated with the error are not included in the specified fields set, information about the error is displayed in the Errors window, but the operator cannot go to the field out of the fields set and correct the error.
  • If you need to ensure a high security level in the Data verification stage, select the option Hide page image outside selected fields. If this option is selected, only fields from the specified fields set will be available to operator. All other fields will be hidden.

    Note: If this option is selected, but the field region has been detected incorrectly or with a shift when matching a Document Definition, the operator can fail to verify the field. In this case, the operator should send the image to the Exceptions stage.


Double verification

Double verification is a data verification mode where fields are verified by two different operators.

To enable double verification:

  1. Select the Requires double verification option in the field properties.
  2. Select the Double verification option on the Field Set tab of the stage settings dialog box.

Merging results of double verification is performed in the Processing Server. If verification results match, the document is sent to the next stage. Otherwise the check is carried out by the resultant hand.

Double verification can be carried out on Web Data Verification Station.


Workflow

Documents are processed in several stages. At the processing stage, which can either be unattended or involve an operator, documents are converted. All stages are arranged in a particular order, and before a document goes to a certain stage it must successfully go through all the previous stages. In general, document processing includes the following stages: adding images, recognition, verification, and export.

At each stage, a task queue is formed, which contains a list of documents to be processed. As the processing progresses, the documents move from the first queue (recognition) towards the last queue (export). As a rule, queues correspond to processing stages, but there are also special queues, e.g. the exceptions queue.

Stages

  1. Importing images

    Images can be obtained automatically from Hot Folders or added by the operator of the Scanning Station. The Scanning Operator may either scan in documents or import the images of already scanned documents. To automate the process (i.e. to add the images using pre-defined settings with a single click of the mouse), the Scanning Operator can create scanning profiles.

  2. Recognition. The recognition queue is processed automatically on the Processing Station.
  3. Verification. The verification queue is processed by the operator of the Verification Station.
  4. Export. The export queue is processed automatically on the Processing Station.

In the case of large processing volumes, the verification stage can be divided into smaller substages, with each operator responsible for fewer operations.

The following separate queues can be created:

  • Document Assembly Check
  • Data Verification - group and field verification of uncertain characters and correction of format errors
  • Verification - rules checks and Document window checks
  • Batch Integrity Check
  • Export Confirmation

Note: Queues are specified for batch types individually.

The tasks from the queues are processed by the operators who have the necessary access rights:

  • Data Verification Operator - only the Data Verification Queue
  • Verification Operator - Data Verification, Verification, Document Assembly Check, Batch Integrity Check
  • Senior Verification Operator - all queues

Note: The Data Verification Station allows its operator to process only the tasks from the Data Verification queue, regardless of his/her access rights.


Prohibit sending documents from one stage to any stage other than the specified stage

This section describes how you can use roles to prohibit an operator from sending documents from stage A to any stages other than B.

Collapsed If stage B is Exceptions

To allow an operator to send documents to the Exceptions stage, simply include this stage in the routing schema the routing schema on the Workflow tab of the Project Properties dialog box (select Project>Project Properties…) or on the Workflow tab of the Batch Type Properties dialog box (select Project>Batch Types…, select the desired batch type, and click Edit…).

Collapsed If stage B is Rescanning

Use the Advanced routing schema. First, open the properties of stage A and select the item that allows sending documents to the Rescanning stage:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Click the Workflow tab.
  3. In the Schema field, select Advanced.
  4. From the list, select the stage from which documents should be sent.
  5. Click Edit….
  6. In the Workflow Stage Properties dialog box, click the Exit Routes tab.
  7. Select the Allow operator to send tasks to rescanning stage item.
  8. Click OK to save the changes.

Now you need to prohibit an operator from sending documents to any stage. Create an appropriate role and assign it to the operator in the Administration and Monitoring Console:

  1. Select Project>Project Properties…
  2. Click the User Roles tab.
  3. Click New…
  4. Provide a name for the role in the corresponding field.
  5. Clear the Send tasks to any available stage item. Clear or select any other items depending on which rights you need to give to the operator.
  6. Click OK to save the changes.
  7. Assign the role to the operator for the corresponding batch type in the Administration and Monitoring Console.
Collapsed If stage B is neither Exceptions nor Rescanning

In this case you need to create a role without the rights to send documents to any stage. Next, in the properties of stage A explicitly allow the operator to send documents to stage B.

To prohibit the operator from sending documents to any stage, create an appropriate role and assign it to the operator in the Administration and Monitoring Console:

  1. Select Project>Project Properties…
  2. Click the User Roles tab.
  3. Click New…
  4. Provide a name for the role in the corresponding field.
  5. Clear the Send tasks to any available stage item. Clear or select any other items depending on which rights you need to give to the operator.
  6. Click OK to save the changes.
  7. Assign the role to the operator for the corresponding batch type in the Administration and Monitoring Console.

To allow the operator to send documents to stage B:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Click the Workflow tab.
  3. In the Schema field, select Advanced.
  4. From the list, select stage A, from which documents should be sent.
  5. Click Edit…
  6. In the Workflow Stage Properties dialog box, click the Exit Routes tab.
  7. Add the stage by clicking the Stage… button or select the name of the stage from the list and click Edit…
  8. In the Next Stage dialog box, select the Allow operator to send tasks to this stage item.
  9. Click OK to save the changes to the sending options.
  10. Click OK to save the changes to stage A.

Note: If the Create task option is not selected when a document is sent by the operator, the conditions for entering stage B will be checked. If these conditions are not met, the document will be sent to the stage following stage A in the routing schema.


Custom operator roles

Besides the standard operator roles available in the system (i.e. Data Verification Operator, Verification Operator, Senior Verification Operator), you can create your own custom roles to control the operators' access to data and queues in the processing stages.

For example, if a large number users are involved in a project, you can create custom roles, allowing different groups of users to access different verification stages where different sets of fields are verified for the same batch type. You can also use custom roles to control what the operators can and cannot do. For example, you can prohibit a role from deleting documents, prohibit a role from sending tasks from one stage to another, or, conversely, allow it to send documents only to one particular stage.

Note: You can use methods other than roles to prohibit operators from sending tasks to particular stages. See this example for more information.

You can create and set up a new role on the User Roles tab of the Project Properties dialog box (select Project>Project Properties…). Roles created on that tab are then assigned to operators in the Administration and Monitoring Console.

Note: You can create a new role when editing the properties of a stage that will be accessible to that role. This is done on theRolestab of the Workflow Stage Properties dialog box (select Project>Project Properties… or Project>Batch Types…, then select the batch type to modify, click the Workflow tab, and when using the Advanced or Advanced for Web Capture station processing schemata, create an interactive stage or select an existing one and click Edit…). However, you will still need to go to the User Roles tab to provide access rights to a role thus created.

Apart from creating (New…) and deleting (Delete) a role, you can create a new role from an existing role (Duplicate…) or modify an existing role (Edit…). When you click Edit…, a Role properties dialog box opens.

Note: ou cannot modify the standard operator roles (i.e. Data Verification Operator, Verification Operator, Senior Verification Operator).

You can specify the following access rights for a role in the Role properties dialog box.

  • The list of stages from which the role may receive tasks. To specify the list of stages:
    1. Click Stages for getting tasks… .
    2. Select appropriate items next to the stages that you want to make accessible to the role. If you want to make accessible all the stages of a particular batch type, select an item next to that batch type. Clicking Select/deselect all stages will select or clear all stages.
    3. Click OK to save the changes and return to the Role properties dialog box.
  • Access to operations on data.

    Item

    Access rights

    Read the list of the project batches
    • Viewing the list of batches.
    Create/delete batches
    • Creating and deleting batches
    • Working with batch attachments
    • Working with batch registration parameters
    • Changing batch types
    Modify batch content
    • Working with document attachments
    • Working with document registration parameters
    • Adding / deleting / moving pages / documents
    • Modifying images
    • Saving images to disk.
    Modify document layout
    • Modifying the definition of a section / document, marking pages as attachments
    • Changing field region
    Modify document content
    • Changing field contents
    • Adding and removing field instances
    • Confirming fields
    • Working with document registration parameters
    • Starting verification (F7)
  • Access to operations on tasks

    Item

    Access rights

    Create tasks or subtasks
    • Sending batches or documents to the processing stage
    Postpone tasks
    • Postponing a task
    Read the list of the queue tasks
    • Viewing the task queue in the processing stage accessible to the role and getting tasks from it

    Note: If this permission is granted to role, user is allowed to handle tasks using Data Verification station regardless of presence of other permissions

    Send tasks to any available stage
    • Sending tasks / subtasks to any processing stage accessible to the role for the given batch type

    Note: If the item is cleared, the operator will be able to send tasks only to the Exceptions and Rescanning queues (if allowed by the settings) and to any interactive stages allowed by the routing schema.

    Change processing priority
    • Changing the priority of a task / document / batch

A role restricts the set of processing stages from which its operators will receive tasks. For this reason, you can also grant access rights to a specific processing stage on the Roles tab of the Workflow Stage Properties dialog box:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Go to the Workflow tab.
  3. When using Advanced or Advanced for Web Capture station processing schemata, create an interactive stage or select an existing stage and click Edit…
  4. In the Workflow Stage Properties dialog box, click the Roles tab.
  5. Select appropriate items for the roles which will access the given processing stage.
  6. If you need to add a new role, click New Role…, provide a name for the new role, and click OK.

    Note: To provide other access rights a role thus created, you will still need to go to the User Roles tab.

Examples:

Prohibit sending documents to a processing stage

Prohibit sending documents from one processing stage to another

Prohibit sending documents from one processing stage to any stage other than the specified stage


Prohibit sending documents from one processing stage to another

This section describes how you can use roles to prohibit an operator from sending documents from stage A to stage B.

Collapsed If stage B is Exceptions

The only way to prohibit an operator from sending documents to the Exceptions stage is to exclude this stage completely from the routing schema on the Workflow tab of the Project Properties dialog box (select Project>Project Properties…) or on the Workflow tab of the Batch Type Properties dialog box (select Project>Batch Types…, select the desired batch type, and click Edit…).

Collapsed If stage B is Rescanning

Use the Advanced routing schema. First, open the properties of stage A and clear the item that allows sending documents to the Rescanning stage. Next, create a new role without the rights to send documents to any stage. Finally, assign this role to the operator in the Administration and Monitoring Console.

To prohibit sending documents to the Rescanning stage:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Click the Workflow tab.
  3. In the Schema field, select Advanced.
  4. From the list, select the stage from which documents should not be sent.
  5. Click Edit….
  6. In the Workflow Stage Properties dialog box, click the Exit Routes tab.
  7. Clear the Allow operator to send tasks to rescanning stage item.
  8. Click OK to save the changes.

Now you need to prohibit an operator from sending documents to any stage. Create an appropriate role and assign it to the operator in the Administration and Monitoring Console:

  1. Select Project>Project Properties…
  2. Click the User Roles tab.
  3. Click New…
  4. Provide a name for the role in the corresponding field.
  5. Clear the Send tasks to any available stage item. Clear or select any other items depending on which rights you need to give to the operator.
  6. Click OK to save the changes.
  7. Assign the role to the operator for the corresponding batch type in the Administration and Monitoring Console.
Collapsed If stage B is neither Exceptions nor Rescanning

In this case you need to create a role without the rights to send documents to any stage. Next, in the properties of stage A explicitly prohibit the operator from sending documents to stage B. This can be achieved by either removing stage B from the allowed addressees or by allowing sending documents in automatic mode but not in manual mode.

To prohibit the operator from sending documents to any stage, create an appropriate role and assign it to the operator in the Administration and Monitoring Console:

  1. Select Project>Project Properties…
  2. Click the User Roles tab.
  3. Click New…
  4. Provide a name for the role in the corresponding field.
  5. Clear the Send tasks to any available stage item. Clear or select any other items depending on which rights you need to give to the operator.
  6. Click OK to save the changes.
  7. Assign the role to the operator for the corresponding batch type in the Administration and Monitoring Console.

To prohibit the operator from sending documents to stage B:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Click the Workflow tab.
  3. In the Schema field, select Advanced.
  4. From the list, select stage A, from which documents should not be sent.
  5. Click Edit….
  6. In the Workflow Stage Properties dialog box, click the Exit Routes tab.
  7. To completely prohibit the operator from sending documents to stage B, disable this stage by clearing the item next to the name of the stage, or remove the stage by selecting it from the list and clicking Delete.
  8. If you need to prohibit the operator from sending documents but allow the system to send documents automatically:
    1. Select the name of the stage from the list.
    2. Click Edit….
    3. In the Next Stage dialog box, clear the Allow operator to send tasks to this stage item.
    4. Click OK to save the changes to the sending options.
  9. Click OK to save the changes to stage A.


Prohibit sending documents to a processing stage

You can prohibit an operator from sending documents to a processing stage without resorting to roles. Simply select the Linked to previous (operators will not be able to send tasks to this stage manually) item for the processing stage. You may wish to select this item for stages for which pre-processing is required. You cannot prohibit an operator from sending documents to the Exceptions and Processed stages, so this item is not available for these stages.

To prohibit an operator from sending documents to a processing stage:

  1. For batches of the Default type, select Project>Project Properties… For other batch types:
    • Select Project>Batch Types…
    • Select the batch type which you want to make accessible or inaccessible
    • Click Edit…
  2. Click the Workflow tab.
  3. When using the Advanced processing schema, select the processing stage and click Edit…
  4. Select the Linked to previous (operators will not be able to send tasks to this stage manually) item.
  5. Click OK to save the changes.


Uploading a project to the Application Server

Once you have created a project, you need to upload it on the Application Server. This will copy the project settings, Document Definition files, dictionaries and other service data onto the Application Server.

Important! If batches have been created in the project, the batches will not be copied to the Application Server when you upload the project.

To upload your project to the Application Server, select File>Upload Project to Server… from the main menu of the Project Setup Station.

Note: Only the Administrator may create new projects. A Project Setup Operator can only set up already created projects. Therefore, after the project is uploaded to the Application Server and the station operators are granted the required rights by the Administrator (this is done in the Administration and Monitoring Console), the Project Setup Operator must open the project on the Application Server by selecting File>Open Project from Server…and make the necessary settings (i.e. create Document Definitions, import profiles, specify export settings, etc.).

Important! For the export to complete successfully, the path to the project folder must be specified in UNC format (\\computer_name\share_name[\path] after the project has been uploaded to the server. Make sure all stations involved in the export have access to the specified folder.

Specifying the path of the uploaded project in the format "<disk:> \[path]" will result in export errors. If you specify the relative path, the data will be accessible only via the application programming interface (API). To access data in another way, you need to specify the root folder for relative paths in UNC format (it can be done when adjusting project properties).


Rule Settings dialog box

In the Advanced mode of the Workflow setup you can specify exit routs and enter conditions for a stage by using rules.
You can specify both conditions under which a task will be sent to successive stages and conditions under which documents are admitted to the stage.

Sending rules are configured in the Next Stage dialog box which appears when you add or edit a stage on the Exit Routes tab of the Workflow Stage Properties.
Rules specifying conditions under which documents are admitted to the stage are configured on the Entry Conditions tab of the Workflow Stage Properties.

Exit routes and enter conditions can be specified either by standard rules or by a Stage rule script.

To add a new rule, click the Rule… button. For editing a rule, click Edit….

The Rule Settings dialog box contains the following fields:

Field | Description
Name | The name of the rule.
Condition type You can select one of the following types:
  • Standard rule
  • Script
For the Standard rule condition type:
Rule is implemented, if Select one of the following choices:
  • The condition is satisfied
  • The condition is not satisfied
Condition Select one of the following conditions:
  • The task was processed successfully.
  • Number of characters for verification satisfies the expression
  • Percent of characters for verification satisfies the expression
  • Number of fields for compulsory verification satisfies the expression
  • Number of characters for double verification satisfies the expression
  • Has rule errors
  • Has assembly errors
  • Has batch integrity errors
  • Field value satisfies the expression
For conditions that contain expressions, enter the reference value and select whether the value being checked must be equal, not equal, less, less or equal, more, more or equal as compared to the entered value.
For the Field value satisfies the expression condition, also choose a field whose value will be compared with the reference value. For this, click the Choose… button and choose the desired field from the list.
For the Script condition type:
Script… | Opens the Script Editor window where you can edit the stage rule. On closing the Script Editor, the saved script code is displayed in the Rule Settings window to the left of the Script… button.


Editing Stage Properties

In the Advanced mode of the Workflow setup you can specify stage properties when creating a new stage as well as edit properties of base or earlier created custom stages.
Stage properties are specified and edited in the Workflow Stage Properties dialog box. To open this dialog box for a selected stage, click the Edit… button on the right.
Properties are grouped in tabs. The number of tabs and the set of properties allowed for editing depend on the base type of a selected stage.

Option | Description | Stage
General tab
Name | In this field you can specify a different name of the stage | The property is available in all stages
Tool From the drop-down list select a desired tool of the given base type. You can set up tools on the Stage Tools tab of the Project Properties dialog box.
Note: For the Interactive stage, any tool can be selected. The base type assigned to the stage depends on the selected tool. 		The property is available in the following stages:
  • Interactive
  • Document assembly check
  • Data verification
  • Verification
  • Batch integrity check
  • Export confirmation
Documents Per Task Sets the maximum number of documents a task can contain
Note: If the specified limit is less than the limit for the previous stage, tasks will be formed according to the limit in the given stage. You should either specify the same values for subsequent stages or select the Process whole batches option. 		The property can be edited for all stages, except Batch integrity check and Processed
Wait for all documents of a batch | Specifies whether the entire batch is processed or each document from the batch is sent to next stage as soon as it is processed | The property is available in all stages, except Batch integrity check and Processed
Restrict set of Document Definitions being used Allows you to specify which documents are admitted to the stage. For documents entering the stage, the check is carried out whether they meet the specified Document Definitions. Documents recognized with these Document Definitions are admitted to the stage.
Note: If the set of Document Definitions is restricted and the Wait for all documents of a batch option is selected, then in the stage only documents from the specified set will be processed, but the task sent to the next stage will contain all documents of the batch.
Note: You can restrict the set of Document Definitions used for recognition by using a script. 		The property is available in all stages, except Exceptions and Processed
Enable web-stations Specifies whether web-stations can be used for processing The property is available in the following stages:
  • Exceptions
  • Data verification
  • Verification
  • Batch integrity check
  • Export confirmation
Linked to previous (operators will not be able to send tasks to this stage manually) | Allows or prohibits entering a given stage from the stage that directly precedes it in the routing schema. If this item is selected, this stage can be entered only from the stage that precedes it in the routing schema. This may be required if the stage depends on results of the previous stage and sending tasks to this stage omitting the previous stage is not allowed. To allow operators to manually send tasks to this stage from other processing stages, clear this item. | The property is available in all stages, except Exceptions and Processed
Field Set tab (available in the Data verification and Verification stages only)
Data being processed in the stage Allows you to restrict the set of fields available in the stage (for distributed verification).
In the Available fields list, choose the fields to be processed. This list contains Document Definitions specified on the General tab.
Use the ">" and ">>" buttons to add desired fields to the Selected fields list.
The ">" button adds a selected item (a Document Definition, a page, a group of fields or a field) to the list.
The ">>" button adds all Document Definitions from the Available fields to the Selected fields list.
The "<" and "<<" buttons remove a selected item or all items from the Selected fields list respectively. 		The property is available in the Data verification and Verification stages only
Hide page image outside selected fields | Specifies whether to hide fields not included in the Field Set. Select this option if a high security level must be ensured during the distributed verification. | The property is available in the Data verification stage only
Double verification | Specifies whether to enable double verification in the stage. If the option is selected, data verification will be performed by two different operators. | The property is available in the Data verification stage only
Script tab (is present in the Automatic stage only)
Type | From the drop-down list select one of the processing scripts: Document Processing or Batch Processing script. | The property is available in the Automatic stage only
Edit script… | Opens the Script Editor window. | The property is available in the Automatic stage only
Exit Routes tab (is missing in the Exceptions, Rescanning and Processed stages)
Next stage Select how the next stage is defined:
  • By routing schema
  • Custom (the stage is selected from the drop-down list)
 The property is available in all stages, except Exceptions, Rescanning and Processed
Conditions for sending documents to other stages Contains the list of stages to which a task will be sent if the desired conditions are fulfilled.
To add a stage, click the Stage… button. The Next Stage dialog box will open. In this dialog box you can select a stage and specify conditions under which the task will be sent to this stage. Use the buttons on the right to configure the stage settings:
  • Rule… - opens the Rule Settings dialog box where you can add a new rule.
  • Edit… - opens the Rule Settings dialog box where you edit settings of the selected rule.
  • Delete - deletes the selected item (a rule or a group of rules).
  • Group… - opens the Rule Group dialog box which allows you to add a group of rules. Specify the name of the group and select the condition under which the group of rules is implemented: either when any one rule is implemented or all rule are implemented.
  • Move Up - moves a selected rule or a group of rules one position up.
  • Move Down - moves a selected rule or a group of rules one position down.
To edit the selected stage, click the Edit… button. The Next Stage dialog box that contains settings for a selected stage will open.
To delete the selected stage, click Delete.
Use the Move Up and Move Down buttons to change the order of stages. 		The property is available in all stages, except Exceptions, Rescanning and Processed
Enter Conditions tab (is missing in the Exceptions and Processed stages)
Documents are admitted to stage Select whether documents are admitted to the stage always or under certain conditions. If the Under these conditions options is selected, use the buttons on the right to configure rules.
To add a rule, click the Rule… button. The Rule Settings dialog box will open.
To edit the selected rule, click Edit…. The Rule Settings dialog box that contains settings for a selected rule will open.
To delete the selected item (a rule or a group of rules), click Delete.
For adding a group of rules, click the Group… button. In the Rule Group dialog box that will open, specify the name of the group and select the condition under which the group of rules is implemented:
  • any one rule is implemented
  • all rule are implemented
Use the Move Up and Move Down buttons to change the rules order within a group.
Note: If the condition is not satisfied, the document is moved to the next stage specified in the workflow schema. 		The property is available in all stages, except Exceptions and Processed

Note: Information about the selected exit route and enter conditions that have been checked is written to the Event log.


Stage Tools

The Stage Tools tab of the Project Properties dialog box allows you to configure tools of the processing stages. On this tab you can add and delete custom tools and edit tools properties.

To create a new processing stage tool, click the Add... button. In the Create New Processing Stage Tool dialog box that opens, specify the name of the tool, enter the description and select the type of the stage from the Type drop-down list. The new stage tool will be added to the list of tools.

To edit a selected stage, click the Edit... button. The Processing Stage Tool Settings dialog box that opens, contains the following settings:

Option | Description
Event settings group
Add Event… button | Opens the Add Event dialog box where you choose an event to be handled in the stage. To write the script processing this event, click the Edit Script… button. The Script Editor will open.
Edit Script… button | Opens the Script Editor where you can edit the script processing the selected event.
Delete button | Removes the selected event from the list.
Skin settings group
Edit skin… button | Opens the Skin Settings dialog box where you can set up the appearance of the stage.
Reset skin button | Resets skin settings to default.


Workflow Setup

The order in which a batch should be processed is specified for each batch type. When a batch is created, its type is specified and the batch is processed in accordance with the settings for this batch type.

If no batch types are created, all batches are processed with the <default> settings specified for the entire project (Project>Project Properties…, Workflow tab).

Workflows are set up on the Workflow tab of the Batch Type Properties dialog box.

The following workflow modes are available: Simple, Advanced, Unattended, for Web Capture station and Advanced for Web Capture station.

Collapsed The Simple mode

The Simple mode includes the following stages: Scanning, Rescanning, Recognition, Data verification, Document assembly check, Verification, Batch integrity check, Export confirmation, Exceptions, Export and Processed.

You can specify the following processing options:

  1. Process whole batches
    • If this option is selected, the entire batch is processed (i.e. the batch will not be forwarded unless all of its documents are processed).
    • If this option is not selected, each document from this batch is sent to next stage as soon as it is processed.
  2. Skip verification and data verification if percentage of characters need verification is equal or less than - the document will be sent for verification only if there are errors or if the number of highlighted characters is higher than the one specified in the % per document field.

    Note: If you selected Always for any field in the Field Verification Settings, the document will be sent to verification under any circumstances.
  3. Use separate stages for:
    • Rescanning
    • Data verification
    • Document assembly check
    • Verification
    • Batch integrity check
    • Export confirmation
    • Exceptions

    All stages except Verification are optional.

    Creating separate verification stages divides the verification stage into substages, each handled by its own operator. Thus, each operator will be responsible for only one job: data verification, document assembly check, etc.

    If all of the above stages are handled by one operator, he/she will have to do all the tasks in turn: take the document from the Document Assembly Check stage, check the assembly, take the data from the data verification stage and verify them, etc.

    You can also use web-stations for all stages, except the Rescanning stage. For this, in the Allow web-stations column select a checkmark next to corresponding stage. Data Verification will be executed in the Data Verification or Verification web-station, other stages will be executed in the Verification web-station.

Collapsed The Advanced mode

The Advanced mode allows you to configure complex workflow schemas. In this mode you can both edit base stages and create custom stages.

Note: There is a time delay between the time Advanced workflow settings apply in the Project Setup Station and when they are displayed in the Verification Station.

The Advanced schema consists of the following base stages:

  • Exceptions
  • Scanning
  • Rescanning
  • Recognition
  • Unattended Processing
  • Data verification
  • Verification
  • Document assembly check
  • Batch integrity check
  • Export confirmation
  • Export
  • Processed

Select the stages to be included in the workflow schema. All stages except Scanning and Processed are optional.
To change the sequence order of stages, use the Move Up and Move Down buttons on the right. For stages, which cannot be executed earlier or later, the corresponding buttons are greyed out.

For each stage, the maximum number of documents a task can contain is specified in the Documents Per Task column. To change the number of document per task for a stage, click on the number and enter a new value.
Note: In the Batch integrity check and Processed stages, batches are processed in their entirety and not divided into tasks, so, for these stages, the number of documents per task cannot be changed.

The base type for each stage is specified in the Base Type column. The base type indicates the type whose base settings were used when creating the stage.

For each stage, you can view and edit its properties. To open a stage properties dialog box, select a stage and click the Edit… button on the right. For details, see Editing Stage Properties.

Apart from base stages, you can also create custom stages to be included in the workflow schema. Custom stages can be based on stage tools and allow you to create stages of the same base type but with different stage properties.

To add a stage, click the Stage… button on the right. In the window that will open, select a base stage on whose basis a new stage will be created and specify the stage properties. The new stage will be added to the schema. For details, see Creating Processing Stages.
To delete a custom stage, select the stage and click the Delete button on the right.

If transfer to the stage is conditional, the stage is marked with the [image] icon. If documents are always admitted to the stage, the stage has the [image] icon.

Collapsed The Unattanded mode

In the Unattended mode, the documents are processed and exported without operator intervention. If processing errors occur, the unrecognized image can be saved in a dedicated folder (this is specified on the Export tab) and the successfully processed documents will be automatically exported. In this mode, batches are processed in their entirety.

For Web Capture Station, workflow can be configured using the for Web Capture station and Advanced for Web Capture station modes.

Collapsed The mode for Web Capture station

In the for Web Capture station, you can specify the condition under which documents are routed to verification. If the option Skip verification and data verification if percentage of characters need verification is equal or less than is selected, documents will be sent for verification only if they contain errors or if the number of highlighted characters is higher than the one specified in the % per document field.

Collapsed The Advanced mode for Web Capture station

The Advanced for Web Capture station mode similarly to the Advanced mode allows you to configure complex workflow schemas by editing existing stages and adding new ones. As compared with the Advanced mode, the Advanced for Web Capture station has the following restrictions:

  • The set of predefined stages cannot be modified.
  • A custom stage can be based on the Automatic stage only.
  • In stage properties, only the stage name, exit routes, and enter conditions are allowed for editing.

Note: When switching from the Advanced for Web Capture station mode to the Advanced mode and vice versa, all specified settings are reset to default.


Creating Processing Stages

Custom stages are created in the Advanced mode of the Workflow setup.
To add a custom stage, click the Stage… button on the right. The Create Processing Stage window that will open contains the list of base and earlier created custom stages on whose basis a new stage can be created. The properties of the selected stage are displayed at the bottom of the dialog box under the caption Selected Settings.

There are three types of stages in the Advanced mode:

  1. Automatic - tasks of this type are executed on the Processing Station without operator intervention.
    The Automatic stage includes the following substages:
    • Recognition
    • Unattended Processing
    • Export
  2. Interactive - tasks of this type are processed by operators in the Verification Station, Data Verification Station or Scanning Station.
    The Interactive stage includes the following substages:
    • Scanning
    • Data verification
    • Document assembly check
    • Verification
    • Batch integrity check
    • Export confirmation
  3. User Type - tasks of this type are taken, executed and returned to the next stage by external clients via Web Service API.

Note: To add a processing script to the workflow schema, select the Automatic stage.

Select a base stage on whose basis you wish to create a new stage and click OK. A Workflow Stage Properties dialog box will open. This dialog box contains the following tabs:

  • General
  • Field Set (for the Data verification and Verification stages only)
  • Script (for the Automatic stage only)
  • Exit Routes (for all stages, except Exceptions, Rescanning and Processed)
  • Entry Conditions (for all stages, except Exceptions and Processed)
  • Roles (for stages based on custom Stage Tools)

The list of options on each tab depends on the selected stage or type. For detailed description of stages properties, see Editing Stage Properties.