←Select platform

ProcessForm(RasterImage,PageRequestCallback,object,FormRecognitionAttributes,FormPages) Method

Performs field processing on the recognized form image.
Public Overloads Sub ProcessForm( _ 
   ByVal form As RasterImage, _ 
   ByVal pageRequestCallback As PageRequestCallback, _ 
   ByVal userData As Object, _ 
   ByVal masterAttributes As FormRecognitionAttributes, _ 
   ByVal formFields As FormPages _ 
public void processForm( 


The recognized Form image.

Page request callback if more form images are needed.

The user defined data that is associated with PageRequestCallback.

The Master Form attributes of the form type.

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.

using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms.Common; 
using Leadtools.Forms.Auto; 
using Leadtools.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.LEAD)) 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
      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\Forms to be Recognized\OCR\FCC-107_OCR_Filled.tif"), 
                                     1, CodecsLoadByteOrder.Bgr, 1, 1); 
      //recognize the form 
      AutoFormsRecognizeFormResult result = autoEngine.RecognizeForm(form, null); 
      if (result == null) 
      //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:\LEADTOOLS21\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS21\Bin\Common\OcrLEADRuntime"; 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms.Common 
Imports Leadtools.Forms.Auto 
Imports Leadtools.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 
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.LEAD) 
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrLEADRuntimeDir) 
      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 
      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:\LEADTOOLS21\Resources\Images" 
   Public Const OcrLEADRuntimeDir As String = "C:\LEADTOOLS21\Bin\Common\OcrLEADRuntime" 
End Class 

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Forms.Auto Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.