Performs field processing on the recognized form image.
public void ProcessForm(
Leadtools.RasterImage form,
Leadtools.Forms.Auto.PageRequestCallback pageRequestCallback,
object userData,
Leadtools.Forms.Recognition.FormRecognitionAttributes masterAttributes,
Leadtools.Forms.Processing.FormPages formFields
)
Public Overloads Sub ProcessForm( _
ByVal form As Leadtools.RasterImage, _
ByVal pageRequestCallback As Leadtools.Forms.Auto.PageRequestCallback, _
ByVal userData As Object, _
ByVal masterAttributes As Leadtools.Forms.Recognition.FormRecognitionAttributes, _
ByVal formFields As Leadtools.Forms.Processing.FormPages _
)
public:
void ProcessForm(
Leadtools.RasterImage^ form,
Leadtools.Forms.Auto.PageRequestCallback^ pageRequestCallback,
Object^ userData,
Leadtools.Forms.Recognition.FormRecognitionAttributes^ masterAttributes,
Leadtools.Forms.Processing.FormPages^ formFields
)
form
The recognized Form image.
pageRequestCallback
Page request callback if more form images are needed.
userData
The user defined data that is associated with PageRequestCallback.
masterAttributes
The Master Form attributes of the form type.
formFields
The fields to be processed for the Master Form of the form type.
If form does not have all form page images, during the processing if more pages are required for processing this method will ask for the required pages one page at a time using the pageRequestCallback. The PageRequestCallbackData.FormPageNumber will have the number of the needed page, and the user returns the requested page image through PageRequestCallbackData.Page.
If form has all form pages you can set pageRequestCallback to null.
This method is useful because it allows you to do the form processing later on or on another machine without the need to recreate the recognition result object
The form alignment is calculated from the recognition results.
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Forms.Auto
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms.Recognition
Imports Leadtools.Forms.Processing
Imports Leadtools.Barcode
Private Sub MyProgressEvent(ByVal sender As Object, ByVal e As AutoFormsProgressEventArgs)
Console.WriteLine("Operation {0} {1}%)", e.Operation, e.Percentage)
End Sub
<TestMethod>
Public Sub AutoFormRecognitionAndProcessing1()
Dim root As String = Path.Combine(LEAD_VARS.ImagesDir, "Forms\FormsDemo\OCR_Test")
Dim codecs_Renamed As RasterCodecs = New RasterCodecs()
'create repository
Dim repository As DiskMasterFormsRepository = New DiskMasterFormsRepository(codecs_Renamed, root)
Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)
Dim engineBarcode As BarcodeEngine = New BarcodeEngine()
Dim autoEngine As AutoFormsEngine = New AutoFormsEngine(repository, ocrEngine, engineBarcode, 30, 80, True)
AddHandler autoEngine.Progress, AddressOf MyProgressEvent
'Load the first page of the for,
Dim form As RasterImage = codecs_Renamed.Load(Path.Combine(LEAD_VARS.ImagesDir, "Forms\Images\FCC-107_OCR_Filled.tif"), _
1, CodecsLoadByteOrder.Bgr, 1, 1)
'recognize the form
Dim result As AutoFormsRecognizeFormResult = autoEngine.RecognizeForm(form, Nothing)
If result Is Nothing Then
Return
End If
'check if we have all pages
If form.PageCount <> result.Properties.Pages Then
form.AddPages(codecs_Renamed.Load(FormFileName, 1, CodecsLoadByteOrder.Bgr, 2, -1), 1, -1)
End If
'get form fields
Dim formFields As FormPages = result.MasterForm.ReadFields()
Dim attributes As FormRecognitionAttributes = result.MasterForm.ReadAttributes()
'process form
autoEngine.ProcessForm(form, Nothing, Nothing, attributes, formFields)
End Using
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Forms.Auto;
using Leadtools.Forms.Ocr;
using Leadtools.Forms.Recognition;
using Leadtools.Forms.Processing;
using Leadtools.Barcode;
public void MyProgressEvent(object sender, AutoFormsProgressEventArgs e)
{
Console.WriteLine("Operation: {0} {1}%", e.Operation, e.Percentage);
}
public void AutoFormRecognitionAndProcessing1()
{
string root = Path.Combine(LEAD_VARS.ImagesDir, @"Forms\FormsDemo\OCR_Test");
RasterCodecs codecs = new RasterCodecs();
//create repository
DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, root);
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
{
ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);
BarcodeEngine barcodeEngine = new BarcodeEngine();
AutoFormsEngine autoEngine = new AutoFormsEngine(repository, ocrEngine, barcodeEngine, 30, 80, true);
autoEngine.Progress += MyProgressEvent;
//Load the first page of the for,
RasterImage form = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"Forms\Images\FCC-107_OCR_Filled.tif"),
1, CodecsLoadByteOrder.Bgr, 1, 1);
//recognize the form
AutoFormsRecognizeFormResult result = autoEngine.RecognizeForm(form, null);
if (result == null)
return;
//check if we have all pages
if (form.PageCount != result.Properties.Pages)
{//load the remaining pages of the form
form.AddPages(codecs.Load(FormFileName, 1, CodecsLoadByteOrder.Bgr, 2, -1), 1, -1);
}
//get form fields
FormPages formFields = result.MasterForm.ReadFields();
FormRecognitionAttributes attributes = result.MasterForm.ReadAttributes();
//process form
autoEngine.ProcessForm(form, null, null, attributes, formFields);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime";
}
Products |
Support |
Feedback: ProcessForm(RasterImage,PageRequestCallback,Object,FormRecognitionAttributes,FormPages) Method - Leadtools.Forms.Auto |
Introduction |
Help Version 19.0.2017.3.22
|
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.