- Introducing ABBYY FlexiCapture
- Installing and running the program
- ABBYY FlexiCapture architecture
-
Program settings
- ABBYY FlexiCapture Setup
- Multitenancy
- Creating a project
-
Document Definitions
- Creating fixed Document Definitions
- Creating Document Definitions for semi-structured documents
- Document Definitions without automatic fields extraction
- Document sets
-
Document Definition fields
- Text entry fields
- Checkmarks
- Checkmark groups
- Barcodes
- Pictures
- Tables
- Field group
- Service fields
- Index fields
- Link to an existing field
- Fields without a region
- Creating a field with a non-rectangular region
- Fields with several instances
- Fields with several regions
- How to change a field name
- Copying, moving, deleting fields
- Exclusion of a region from recognition
- Document Definition Wizard
- Editing and publishing a Document Definition
- Creating Document Definitions
- Document Definition properties
- Properties of a Document Definition section
- Rule validation
- Export settings
- Configuring data presentation in the document window
- Testing Document Definitions
- Localizing a Document Definition
- Classification
- Field extraction training
- Operating a configured project
-
ABBYY FlexiCapture for Invoices
- Features of ABBYY FlexiCapture for Invoices
- How to capture invoices
-
How to set up an invoice capture project
- Country and language settings
- Connecting vendor and business unit databases
- Data export settings
- The status of documents in ABBYY FlexiCapture for Invoices projects
- Training ABBYY FlexiCapture for Invoices
- Rules
- Capturing additional invoice fields
- Purchase Order Matching
- Enabling additional program features for operators
- Using multiple Document Definitions
- Editing invoice processing settings in XML files
- Updating the Document Definition for invoices
- Tax systems
- Specifications
- Capturing receipts
- Capturing purchase orders
- Using NLP to process unstructured documents
- ABBYY FlexiCapture interface
-
Appendix
-
Using scripts in ABBYY FlexiCapture
- Specifics of scripts written in .Net languages
- External assemblies
- Object model
-
Scripts for customizing processing stages
-
Types of scripts
- Script rule
- Autocorrection script
- Export script
- User script (custom action)
- Document assembly script
- Custom recognition script
- Stage rule
- Processing scripts
- Data set update script
- Data set validation scripts
- Document classification script
-
Event handlers
- Batch created
- Batch deleted
- Batch parameter change
- Batch structure change (page added/page deleted/document added/document deleted)
- Pages moved
- Batch opened/closed
- Batch integrity check
- Document parameter changed
- Document state changed
- Export completed
- Script that is run after rule checks
- Before matching
- Field verification request
-
Objects
- IActionResult
- IAssemblingError
- IAssemblingErrors
- IBatch
- IBatchCheckResults
- IBatchItem
- IBatchItems
- IBatchTypeClassifier
- IBatchTypeClassifierResult
- IBinarizationParams
- IBoxedBoolean
- ICharacterParams
- ICharactersParams
- ICheckmarkGroupValue
- ICheckmarkValue
- IDataSet
- IDataSetQuery
- IDataSetRecord
- IDocument
- IDocuments
- IDocumentExportResults
- IDocumentsExportResults
- IDocumentDefinitionInfo
- IDocumentDefinitionInfoArray
- IEditablePictureObject
- IExportFieldsToRedact
- IExportImageSavingOptions
- IField
- IFieldRegion
- IFieldRegions
- IFields
- IFlexiCaptureTools
- ILocalContrastParams
- IMatchedSectionInfo
- IMatchingInfo
- IPage
- IPageClassificationResult
- IPages
- IPictureObject
- IPictureObjectsInfo
- IPrincipal
- IPrincipals
- IProcessingCallback
- IProject
- IProperties
- IProperty
- IPropertyModificationInfo
- IRecordCheckResult
- IRecordset
- IRect
- IRects
- IRoutingRuleResult
- IRuleContext
- IRuleError
- IRuleErrors
- IRuleTag
- IRuleTags
- IScriptBinaryAttributes
- IScriptDefinitionContext
- ISectionDefinitionInfo
- ISectionDefinitionInfoArray
- IShadowsHighlightsParams
- IStageInfo
- IUserAttachment
- IUserAttachments
- IUserSessionInfo
- IValue
- IVARIANTArray
- TAssemlingErrorType
- TBatchItemType
- TColorToFilter
- TExportFieldType
- TExportType
- TImageCompressionType
- TPageClassificationType
- TPdfAVersion
- TPdfDocumentInfoType
- TPdfTextSearchAreaType
- TPrincipalType
- TProcessingPriority
- TPropertyType
- TRuleErrorType
- TStateType
- Sample scripts
- Internal names of recognition languages
-
Types of scripts
-
Scripts for processing interface events
-
Event handlers
- On Document Closed
- On Project Closed
- On Activate Document
- On Field Control Activate
- On Return From Task
- On User Command
- On Field Control Deactivate
- On Closing Document
- On Task Close
- On Closing Project
- On Region Change
- On Task Window Mode Changed
- On Open Document
- On Task Window Create
- On Task Reject
- On Region Control Draw
- On Task Send To Stage
- On Text Field Validating
-
Objects
- 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
- TDocumentState
- TErrorType
- TSelectionType
- TTaskWindowMode
- TTextSize
- TUserRole
- TWorkWindowType
-
Event handlers
- User scripts for the Web Verification Station
- Creating a machine-readable form
- Hot keys
- Additional options
- Description of Processing Server commands
- ABBYY FlexiCapture sample projects
- Supported recognition languages
- Supported classifier languages
- Fonts for correct characters rendering
- Supported text types
- Supported barcode types
- Supported input formats
- Processing PDF files
- Export file formats
- Date formats
- Alphabet used in regular expressions
- Patents
- Third-party technologies
- Glossary
- Technical support
- How to buy ABBYY FlexiCapture
- End-User License Agreement (EULA)
-
Using scripts in ABBYY FlexiCapture
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:
- On the .Net References of the project properties, click Add...
- In the Add Assembly 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.
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:
- On the .Net References of batch type or Document Definition properties, click Add...
- In the Add Assembly dialog box that opens select Shared assembly.
- Select the assembly name from the Reference list.
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\12.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\12.0\Controller\ScriptSupport\ [PDBSearchLocations] = - 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.
3/2/2021 8:10:42 AM