Custom Script Creation Using VB.NET
Kofax Capture Developer's Guide
21
DocumentValidationScript Class
The DocumentValidationScript class contains the events that are available for use in a
validation script. You add code for a selected event to perform a custom data validation
routine. The following events, event arguments, and their associated properties can be used.
Table 2-1. Validation Script Events
Events
Description
BatchLoading
Called when a batch is opened.
BatchUnloading
Called when a batch is closed.
DocumentPreProcessing
Called each time a new document is opened.
DocumentPostProcessing
Called after each document is closed.
PreDocumentEventArgs
This class represents the event arguments for the
DocumentValidationScript.DocumentPreProcessing event.
PostDocumentEventArgs
This class represents the event arguments for the
DocumentValidationScript.DocumentPostProcessing event.
Exceptions
To signal an error state, the VB.NET script can throw an exception during event handling.
Three types of exceptions are available:
▪ FatalErrorException
▪ RejectAndSkipDocumentException
▪ ValidationErrorException
For details about each event, event arguments, and properties, refer to the Kofax Capture API
Reference. For more information about exceptions, refer to Error Handling in VB.NET
.
VB.NET Project File Location
The file name assigned to the script is shown in the title bar of the programming product.
The default location for each project is a numeric folder name under the 
~AdminDB\Scripts
folder.
Default location of the 
AdminDB
folder:
▪ Server: 
\\<server name>\CaptureSV
▪ Standalone: 
C:\ProgramData\Kofax\Capture
Note  Validation of a batch field and batch totals through VB.NET scripting is not supported.
However, batch fields are exposed through the Batch object, which can be accessed from the
parameter of the event handler.
You must compile the script and publish your batch class before the script can be used in
batches. Your script cannot be applied to a batch created before the new publication date. In
addition, you must republish if you make changes to the script.
Pdf change page size - Compress reduce PDF size in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
C# Code & .NET API to Compress & Decompress PDF Document
adjusting page size in pdf; apple compress pdf
Pdf change page size - VB.NET PDF File Compress Library: Compress reduce PDF size in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Compression and Decompression Control SDK
change font size pdf form; change paper size pdf
Custom Script Creation Using VB.NET
22
Kofax Capture Developer's Guide
Deployment of a VB.NET Project
VB.NET scripts have a folder of source files and a folder of executables. The entire VB.NET
script project is deployed to the 
Local\Scripts
folder before the Validation or Recognition
Server module is launched for either a standalone or remote/central site environment.
The VB.NET script is opened each time a batch is opened (if the script is not already present)
and a new script ID folder is created for a published batch class. VB.NET scripts can include
field scripts, which are executed when there is no document/folder validation script.
Batches using VB.NET scripts are deployed automatically on standalone workstations and
on Kofax Capture Network Server remote sites through synchronization by the Remote
Synchronization Agent. Scripts are downloaded when the remote site synchronizes with the
central site.
Script Publishing Requirements
A VB.NET script must be compiled before it can be published. Otherwise, an error occurs.
The publish check is performed only on a newly created VB.NET script. The publish check
is not performed on updated or changed scripts, and it is the responsibility of the script
developer to recompile scripts as needed. Also, a publish check is not performed on VB.NET
scripts for imported and exported batch classes.
Sample VB.NET Validation Script
This section describes how to create a sample VB.NET document validation script named
SampleScript, which contains the fields ClientName and SSN. The sample script is used in the
next section, which explains how to add custom code to validate a social security number.
Note  To use the sample, you need a database, which is used for the SSN value lookup. You
will need the database name, password, and host name for the location where the database
resides.
Navigate to the Kofax Capture 10.1 program folder and click Administration.
Create a document class with the name SampleScript.
On the Document class tree view, select SampleScript, right-click, and then click
Properties.
The Document Class Properties window appears.
4
On the General tab, use New Index Field to add two fields with the following
information:
a
Name: ClientName, Field Type: Alphanumeric_25, Default set to empty, Required set
to True.
b
Name: SSN, Field Type: Alphanumeric_12, Default set as empty, Required set to True.
c
Save the changes and close the Document Class Properties window.
5
Verify that the SampleScript document class is selected.
6
On the Home tab, in the Document Class group, click Validation Script.
VB.NET Image: How to Create Visual Basic .NET Windows Image Viewer
formats, including png, jpeg, gif, tiff, bmp, PDF, and Word can get a basic idea of the page layout from from that, you are entitled to change the orientation
change font size in pdf comment box; adjust size of pdf in preview
C# PDF insert text Library: insert text into PDF content in C#.net
formatted text and plain text to PDF page using .NET NET PDF edit control allows modify existing scanned PDF text. Ability to change text font, color, size and
change page size pdf acrobat; pdf compression
Custom Script Creation Using VB.NET
Kofax Capture Developer's Guide
23
On the Document Validation Script window, on the Document classes list, select
SampleScript.
On the Scripting language list, select VB.NET.
Click Create.
Sample Validation Script Code
Using the sample validation script created in the previous section, you can add code that
compares and validates a social security number field from a scanned document to a social
security number that is already in the database for the client. The first function of the code is
the FieldPostProcessing event followed by helper functions.
After you add the following code, compile the script. When the script is successfully
compiled, publish the batch class by right-clicking the batch class and selecting Publish.
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Kofax.AscentCapture.NetScripting
Imports Kofax.Capture.CaptureModule.InteropServices
Imports Kofax.Capture.CaptureModule
Imports System.Data.SqlClient
Namespace SampleScript
<SuppressFieldEventsOnDocClose(False)> _
Public Class SampleScript
Inherits DocumentValidationScript
<IndexFieldVariableAttribute("ClientName")> _
Dim WithEvents ClientName As FieldScript
<IndexFieldVariableAttribute("SSN")> _
Dim WithEvents SSN As FieldScript
Private Sub SSN_FieldPostProcessing(ByVal sender As Object, ByVal
e As Kofax.AscentCapture.NetScripting.PostFieldEventArgs) Handles
SSN.FieldPostProcessing
Dim oConnection As IDbConnection
oConnection = OpenDatabaseConnection()
Try
oConnection.Open()
If (Not FindSsnInDatabase(oConnection, SSN.IndexField.Value)) Then
Throw New
Kofax.AscentCapture.NetScripting.ValidationErrorException("SSN missing from
the database.", SSN.IndexField)
End If
Finally
oConnection.Close()
End Try
End Sub
Private Function OpenDatabaseConnection() As IDbConnection
Dim oConnectionStringBuilder As SqlConnectionStringBuilder
oConnectionStringBuilder = New SqlConnectionStringBuilder()
oConnectionStringBuilder.DataSource = "DBServer00\SQL2005" _
'*** server name
oConnectionStringBuilder.UserID = "User1" '*** user name
oConnectionStringBuilder.Password = "abc123" '*** password
oConnectionStringBuilder.InitialCatalog = "SocialSecurityDB" _
'*** database name
Dim oConnection As SqlConnection
oConnection = New SqlConnection
oConnection.ConnectionString = oConnectionStringBuilder.ConnectionString
C# PDF Convert: How to Convert Word, Excel, PowerPoint, Tiff
Support conversion to PDF from other documents, keeping original document page size. Support rendering image to a PDF document page, no change for image size.
adjust size of pdf; best compression pdf
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Able to edit and change PDF annotation properties such as font size or color. Perform Various annotations on PDF Page using C#.NET Demo Codes.
pdf compressor; change font size in fillable pdf
Custom Script Creation Using VB.NET
24
Kofax Capture Developer's Guide
Return oConnection
End Function
Private Function FindSsnInDatabase(ByVal oConnection As IDbConnection, _
ByVal strSsn As String) As Boolean
Dim oCommand As IDbCommand
oCommand = oConnection.CreateCommand()
'*** The database has a "Customers" table with a column for SSN
oCommand.CommandText = String.Format("SELECT SSN FROM Customers WHERE
SSN=N'{0}'", strSsn)
oCommand.CommandType = CommandType.Text
Dim oReader As IDataReader
oReader = oCommand.ExecuteReader()
Dim bFound As Boolean
bFound = oReader.Read()
oReader.Close()
Return bFound
End Function
End Class
End Namespace
Testing VB.NET Custom Scripts
You can test and debug a VB.NET custom validation script without republishing the
associated batch class. However, the batch class (with one or more associated VB.NET scripts)
must have been previously published and a batch must be ready to be processed.
When a VB.NET script is tested, the script in the Administration module is loaded instead of
the published script. In this case, the VB.NET script being debugged is the unpublished copy.
However, the batch class and script must be republished before changes can take effect.
Note  The ability to debug and modify the VB.NET script without republishing the batch class
is not supported in Visual Basic Express Edition. It is only supported in Visual Studio.
When debugging a validation script in VB.NET, if you stop the debugger while a batch is
open, the validation process is terminated and the batch is left in an “In progress” state. It
may take time for the batch to return to the “Ready” state.
Here is the typical process for testing and debugging a VB.NET document validation script:
1
A user with administrator rights creates a VB.NET document validation script in the
Administration module and publishes a batch class.
2
A batch is created and processed through the Validation module.
3
The VB.NET script project is opened in Visual Studio.
4
Break points are set in the script, and changes are made to the script.
5
The validation script is run from Visual Studio, and the debugger stops at the first break
point.
6
Testing and debugging continues until the script is ready to use.
7
The script is compiled, and the batch is published.
C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.
public override Bitmap ConvertToImage(Size targetSize). Description: Convert the PDF page to bitmap with specified size. Parameters:
pdf reduce file size; best online pdf compressor
C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF file into multiple files by outputting PDF file size. control, C# developers can easily and accurately disassemble multi-page PDF document into two
best way to compress pdf files; pdf form change font size
Custom Script Creation Using VB.NET
Kofax Capture Developer's Guide
25
Error Handling in VB.NET
A VB.NET script uses an exception during event handling to signal an error state. The Kofax
Capture .NET Scripting API provides the following exceptions:
▪ FatalErrorException
▪ RejectAndSkipDocumentException
▪ ValidationErrorException
FatalErrorException
Used to signal a fatal error, this exception can be used in validation, recognition, and field
scripts. When this exception is thrown, the error message is displayed in Validation or
Verification, or logged in the Recognition Server. The batch is set to an error state and sent to
Quality Control.
Example:
Throw New FatalErrorException("Missing validation resource")
RejectAndSkipDocumentException
Used by the validation script to reject and skip a document and to advance to the next
document, this exception is thrown in document validation scripts only.
The FieldScript.FieldPreProcessing and FieldScript.FieldPostProcessing
events for any unvalidated fields in the document are skipped. However, the
DocumentValidationScript.DocumentPostProcessing event is called.
Example:
Throw New FatalErrorException("Missing validation resource")
ValidationErrorException
Used to signal a validation error, this exception is to be thrown in validation scripts only. If
the Recognition Server receives this exception, It is treated as a fatal error.
There are two versions of this exception:
▪ ValidationErrorException (ErrMsg)
▪ ValidationErrorException (ErrMsg, IndexField)
ValidationErrorException (ErrMsg)
If this version is used, the error message is displayed in the status bar of the Validation or
Verification module and will not advance the focus to the next field. The focus remains on the
last field that is being validated.
Example:
Throw New ValidationErrorException()
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Separate source PDF document file by defined page range in VB.NET class application. Divide PDF file into multiple files by outputting PDF file size.
change font size in pdf form; adjust pdf size
Create Thumbnail Winforms | Online Tutorials
editor: Click "Add" to add new items in thumbnail; Click "Swap" to change two items Multi-page Tiff Processing; RasterEdge OCR Engine; PDF Reading; Encode &
change paper size in pdf document; change file size of pdf document
Custom Script Creation Using VB.NET
26
Kofax Capture Developer's Guide
ValidationErrorException (ErrMsg, IndexField)
This version is similar to the previous version for ValidationErrorException, except that it
allows the developer to set the focus on a particular field. IndexField specifies the field to get
the focus. If the field does not exist or is null, then the last field being evaluated gets the focus.
For example, if cross-field validation is being performed in the
DocumentValidationScript.DocumentPostProcessing event and a computation routine
determines that the third field does not match the sum of the first and second fields, an
exception is thrown with the third field getting the focus.
Example:
Throw New ValidationErrorException("Sum does not match",oIndexField)
Note  If ErrorMsg is empty, then the default error message is displayed.
Refer to the Kofax Capture API Reference for details about the syntax and parameters for these
exception classes.
Recognition Script Creation in VB.NET
Recognition scripts are useful for processing zone snippets with a custom recognition engine,
modifying the process of a Kofax recognition engine, or performing an offline recognition
process.
In this section, you will learn about the following:
▪ How to select VB.NET as the scripting language for the recognition script.
▪ Objects, methods, and properties that are available for use from the Kofax Capture .NET
Scripting API.
The VB.NET project location of your script, the script deployment, and publishing
requirements are the same as those for validation scripts.
Selecting the Scripting Language
Although it is possible to create a custom script outside Kofax Capture using a supported
Visual Studio environment, you typically create a custom script from the Kofax Capture
Administration module. Before creating a custom recognition script, a recognition profile
must exist.
On the Tools tab, in the Recognition group, click Scripts.
The Recognition Script window appears.
On the Recognition profiles list, select the recognition profile for which you want to
create a script.
On the Scripting language list, select a scripting language to create the script. In this case,
select VB.NET.
Click Create.
A VB.NET project is created for the script and opens in the code editor of your .NET
application. Add your code to create the custom script.
Custom Script Creation Using VB.NET
Kofax Capture Developer's Guide
27
Kofax Capture .NET Scripting API
Your recognition script project has access to the events and properties of the Kofax Capture
.NET Scripting library. Each script can consist of several events and event handlers.
RecognitionScript Class
The RecognitionScript class contains the events that are available for use in a recognition
script. You add code for a selected event to perform a custom recognition routine. You can
use the following events, event arguments, and their associated properties.
Table 2-2. Recognition Script Events
Events
Description
BatchLoading
Called when a batch is opened.
BatchUnloading
Called when a batch is closed.
RecognitionPreProcessing
Called before each zone snippet is processed.
RecognitionPostProcessing
Called after each zone snippet is processed.
PreRecognitionEventArgs
This class represents the event arguments for the
RecognitionScript.RecognitionPreProcessing event.
PostRecognitionEventArgs
This class represents the event arguments for the
RecognitionScript.RecognitionPostProcessing event.
Exceptions
To signal an error state, the VB.NET script can throw an exception during event handling.
Three types of exceptions are available:
▪ FatalErrorException
▪ RejectAndSkipDocumentException
▪ ValidationErrorException
For details about each event, event arguments, and properties, refer to the Kofax Capture API
Reference. For more information about exceptions, refer to Error Handling in VB.NET
.
Creating a Recognition Script Using VB.NET
You can use the Kofax Capture Administration module to create a recognition script. VB.NET
recognition scripts can be created for separator zones, form identification zones, or index
zones.
Note  You can create scripts only for custom recognition profiles. You cannot create scripts for
full text OCR or page-level form identification profiles.
1
On the Tools tab, in the Recognition group, click Scripts.
The Recognition Script window appears.
On the Recognition profiles list, select the custom recognition profile for which you want
to create a script.
In the Scripting language box, select the scripting language. In this case, select VB.NET.
Custom Script Creation Using VB.NET
28
Kofax Capture Developer's Guide
Click Create.
A new script is created and displayed in the VB.NET code editor. The file name assigned
to the script appears in the title bar.
When finished writing your code, compile the script, exit the editor, and close the
Recognition Script window.
You must compile the script and publish your batch class before the script can be used in
batches. Your script cannot be applied to a batch created before the new publication date. In
addition, you must republish if you make changes to the script.
Debugging Your Settings with a VB.NET Recognition Script
You can use a VB.NET recognition script to display the zone snippet when the batch is
processed in the Recognition Server module. This is a good way to test your settings.
1
In the Administration module, create a recognition profile for a zone.
2
On the Tools tab, in the Recognition group, click Scripts.
The Recognition Script window appears.
Select a profile from the list of Recognition profiles.
Select a scripting language from the list of Scripting languages. In this case, select
VB.NET.
Select Create.
A new script appears in the VB.NET code editor.
Sample Code
Publish the batch class and process a test batch through the Recognition Server module.
For every zone to which the recognition profile is attached, a message displays the file
name of the zone snippet, the value, and the confidence. If you have access to a viewer,
you can display the zone snippet file to see the zone snippet image.
Private Sub CustomRecognitionProfile_BatchLoading(ByVal sender As Object,
ByRef ImageFileRequired As Boolean) Handles Me.BatchLoading
'*** Enable the image file property when loading the batch.
ImageFileRequired = True
End Sub
Private Sub CustomRecognitionProfile_RecognitionPostProcessing(ByVal _
sender As Object, _
ByVal e As Kofax.AscentCapture.NetScripting.PostRecognitionEventArgs)
Handles Me.RecognitionPostProcessing
'*** Display a message box with the image file, value, and confidence
'*** for each field.
MessageBox.Show(e.ImageFile + " " + e.Value + " " +
e.Confidence.ToString())
End Sub
Sample VB.NET Recognition Script
The following recognition script demonstrates how to set recognition criteria to enhance a
field that may display poorly. The confidence level is set to 75%. If the confidence level for the
field falls below 75%, the document is sent to the Quality Control module.
Private Sub ConfidenceScript_RecognitionPostProcessing( _
ByVal sender As Object, ByVal e As  _
Kofax.AscentCapture.NetScripting.PostRecognitionEventArgs) _
Handles Me.RecognitionPostProcessing
If (e.Confidence < 75) Then
Custom Script Creation Using VB.NET
Kofax Capture Developer's Guide
29
Throw New Kofax.AscentCapture.NetScripting.FatalErrorException _
("Confidence value was less than 75 percent.")
End If
End Sub
Removing a Recognition Script
You can remove a recognition script to restore the default recognition procedures.
Use the Administration module to remove recognition scripts. When you remove a
recognition script, the source code file is not deleted from the Scripts folder. Although you
cannot select the file to “reattach” it to a recognition profile, you can add the customizations
to a new script. The easiest way to do this is to create a new recognition script and open the
old recognition script in a text editor such as Notepad. Then, you can copy code from the old
script to the new script.
1
On the Tools tab, in the Recognition group, click Scripts.
The Recognition Script window appears.
2
On the Recognition profiles list, select the recognition profile for which you want to
restore the default processing.
3
Click Remove.
The script is no longer associated with the recognition profile.
Field Script
A field script is a small program that can contain variables and functions needed for
validating an index field with an associated field type.
A field script is invoked when there is no document validation script for a document class,
and the field script can be referenced by other custom scripts for documents.
A field script can have only one script language defined: either VB.NET or SBL. However, it is
possible to have a combination of VB.NET field scripts and SBL field macros for index fields
of the same document class. The following exceptions are enforced:
▪ If an index field of the same field type is defined in a batch, then the VB.NET field script is
called.
▪ If a document class (with a custom SBL validation script) includes a field based on a field
type with an SBL field type macro and another field based on a field type with a VB.NET
field script, then all of the scripts are run. That is, the SBL validation script, SBL field type
macros, and VB.NET field scripts are executed.
▪ If a document class (with a custom VB.NET validation script) includes a field based on
a field type with an SBL field type macro and another field based on a field type with a
VB.NET field script, then only the VB.NET validation script and the VB.NET field scripts
are executed. The SBL field type macros are not run.
Note  Although SBL is available in this version of Kofax Capture, it has been deprecated. As
a result, SBL will be removed in a future product release. Therefore, we recommend that you
convert any existing SBL scripts to VB.NET.
A field script can contain field formatting functions and event arguments associated with
each event.
Custom Script Creation Using VB.NET
30
Kofax Capture Developer's Guide
Table 2-3. Field Script Events
Event
Description
FieldFormatting
Called for every field as every other field is exited. Allows the display of a field
to differ from the stored value.
FieldPreProcessing
Called as the field is entered. Set e.SaveAndSkipField = True to save the field
and move to the next field.
FieldPostProcessing
Called as the field is exited. Set e.SaveAndSkipDocument = True to save the
field and move to the next document.
FormatFieldEventArgs
This class represents the event arguments for the FieldScript.FieldFormatting
event.
PreFieldEventArgs
This class represents the event arguments for the
FieldScript.FieldPreProcessing event.
PostFieldEventArgs
This class represents the event arguments for the
FieldScript.FieldPostProcessing event.
For details about each event, event arguments, and properties, refer to the Kofax Capture API
Reference.
Sample VB.NET Field Script
When you create a new field script, a new class is derived from the FieldScript class of the
Kofax Capture NET Scripting API. The name of the class is based on the field type name (all
non-alphanumeric characters of the class name are replaced with underscore characters). The
name of the class can be changed; however, the changed name is not automatically updated
in the generated field script.
The following is a field script sample that changes all mixed case letters of a particular field to
upper case letters for reading clarity.
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Kofax.AscentCapture.NetScripting
Imports Kofax.Capture.CaptureModule.InteropServices
Namespace UppercaseField20
Public Class UppercaseField20
Inherits FieldScript
Private Sub UppercaseField20_FieldFormatting(ByVal sender As Object,
ByVal e As Kofax.AscentCapture.NetScripting.FormatFieldEventArgs) Handles
Me.FieldFormatting
'*** Convert the string to upper case.
Dim strUpperCase As String
strUpperCase = Me.IndexField.Value.ToUpper()
'*** Set the value to the uppercase string.
Me.IndexField.Value = strUpperCase
End Sub
End Class
End Namespace
Documents you may be interested
Documents you may be interested