Component Management and Configuration
The Forms API encapsulates creation and destruction of Accusoft's FormSuite component objects in the Processor class. These component classes include SmartZone OCR, SmartZone ICR, ScanFix Xpress, and FormFix. The component class list may also include FormDirector, as noted below.
The Use of FormDirector
Calling code may pass the name of a form set file to one of the following:
- As a filename
- The Forms API will load the FormSet and FormDefinitions into memory from the file, using the FormDirector SDK.
- As an Accusoft.FormDirectorSdk.FormSet object to the Forms API
- The calling code must first load the FormSet and all FormDefinitions into memory from files, using the FormDirector SDK.
More information about loading FormSets and FormDefinitions can be found in the Accusoft FormDirector SDK help file.
Lazy Loading of Components
The Processor class does not create all required component classes during initialization of a Processor object; instead, these objects are created lazily on a needs basis. The maximum number of component instances that can be created depends on whether the Processor was built to support multithreading or not.
Runtime Licensing
The LicenseKeychain class provides a place to hold Runtime Licensing details used to unlock FormFix, FormDirector, SmartZone OCR, SmartZone ICR, and ScanFix Xpress component instances.
Processor objects are created from LicensingKeychain objects so that component instances can be unlocked as needed. By default, LicensingKeychain objects are empty and so components behave according to either Evaluation Licensing (or Toolkit Licensing if installed).
Evaluation Licensing
Accusoft components operating under Evaluation Licensing either display a trial dialog periodically or stop working after a timeout has elapsed. When Processor objects are created for windowless operation, trial dialogs are not shown and components begin throwing exceptions after a few minutes of operation.
Debug Configuration
Debug configuration of components is specified through properties of the components. Like with runtime unlocks, the Forms API provides a class where the caller can specify a debug configuration to use for each component that is created.
The Processor class has a property called DebugOptions that gets an object of type DebugOptions. The DebugOptions class exposes properties that get or set a value indicating whether debugging is enabled for all components, the debug log file that will be used for all components, and an ErrorLevel value that indicates the amount of information to write to the debug log for each component.
The ErrorLevel is set separately for each component and can be set to one of four different levels:
- Detailed - results in the most information being written to the debug log for a component.
- Development - results in the least information being written to the debug log for a component.
- Production -
- None - results in no information being written to the debug log for a component.