- Introducing ABBYY FlexiCapture
- ABBYY FlexiCapture architecture
-
Using scripts in ABBYY FlexiCapture
- Specifics of scripts written in .Net languages
- External assemblies
- Script editor
- 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 script for Web Verification Station
-
Application Programming Interface (API)
- About the ABBYY FlexiCapture Application Server Web Services API
- Using the Web Services API of the ABBYY FlexiCapture Application Server
-
References
- API Methods
- Data types
- Working with files
- Web Services Mobile API
- Web Services for user account management
- Examples of API Use
- Integrating Web Stations into third-party systems
- Configuring additional settings and customizing Web Stations
- Custom reports
-
Appendix
- Supported recognition languages
- Fonts for correct characters rendering
- Supported text types
- Supported barcode types
- Supported input formats
- Export file formats
- Date formats
- Alphabet used in regular expressions
- Protecting Document Definitions and additional modules
- Glossary
- Patents
- Third-party technologies
- Technical support
- End-User License Agreement (EULA)
Protecting Document Definitions and additional modules
You can develop solutions based on ABBYY FlexiCapture for sale to third parties. A solution is a Document Definition and may include the following additional components:
- A FlexiLayout created in FlexiLayout Studio
- A rule module or a special data checking algorithm that uses rules to check data
- An export module or a custom export procedure
You can protect your solution from unlicensed use using a Developer's License and a unique solution identifier. Only users with a User's License will be able to make use of your solution.
Protecting Document Definitions
- Send a message describing your solution and listing its components to the ABBYY office in your region.
- Depending on the type of the solution you are developing, the ABBYY office will provide you with unique identifiers for your solution's components, and in some cases a developer's license. The unique identifiers can be included in the source code of your solution's components and checked against the identifiers specified in a User's License.
- Start ABBYY FlexiCapture, open the Document Definition editor, click Document Definition Properties... on the Document Definition menu in the editor, select the General tab and enter the unique solution identifier you received from the ABBYY office.
- When selling your solution to a client, ask the ABBYY office for a User's License that includes the unique solution identifier. Without this license, your client will not be able to use the Document Definition or FlexiLayout to process documents.
Protecting individual components
Any component can be developed and protected independently from a complete solution.
If you want to protect a FlexiLayout, you will need a Developer's License. For details, see the Projects → Protection features for FlexiLayouts and Сlassifiers article of ABBYY FlexiLayout Studio help.
Export modules and rule modules are integrated into a Document Definition using a script. You will not need a Developer's License to protect these modules. If your solution allows using modules with any Document Definitions, you can protect them by including a unique identifier check in the module's code.
Note: We recommend developing an external library in the *.dll format and integrating it with ABBYY FlexiCapture. This will make the source code unavailable to users.
To do this, use the IsModuleAllowedByLicense method in your module to check whether the user's license allows using the module:
IsModuleAllowedByLicense ( authorId : string, moduleName : string ) : bool
In the code sample above, authorId is the unique identifier of the developer, and moduleName is the unique identifier of the solution.
Code samples
The following code sample illustrates how a method can check for a parameter in a license:
private bool CheckLicense() { if (FCTools.IsModuleAllowedByLicense("ABBYY RU", "ModuleName") == false) { FCTools.ShowMessage("Your license does not allow the use of this module", true); return false; } else { // FCTools.ShowMessage("License is OK", false); return true; } }
You can call the license check method in an export script as follows:
public void ExportDocument(ref IExportDocument docRef, ref FCTools FCTools ) { if (CheckLicense() == true) { … exportImages(docRef, FCTools, exportFolder); // export information about the document exportDocInfo(docRef, sw); // export fields exportFields(docRef.Children, sw, ""); } }
If the license does not include a module with the name ModuleName and the author ABBYY RU, exporting documents will result in an error.
02.03.2021 8:10:41