LEADTOOLS Forms (Leadtools.Forms.Auto assembly)
LEAD Technologies, Inc

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

Example 





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.
Performs field processing on the recognized form image.
Syntax
'Declaration
 
Public Overloads Sub ProcessForm( _
   ByVal form As RasterImage, _
   ByVal pageRequestCallback As PageRequestCallback, _
   ByVal userData As Object, _
   ByVal masterAttributes As FormRecognitionAttributes, _
   ByVal formFields As FormPages _
) 
'Usage
 
Dim instance As AutoFormsEngine
Dim form As RasterImage
Dim pageRequestCallback As PageRequestCallback
Dim userData As Object
Dim masterAttributes As FormRecognitionAttributes
Dim formFields As FormPages
 
instance.ProcessForm(form, pageRequestCallback, userData, masterAttributes, formFields)
 function Leadtools.Forms.Auto.AutoFormsEngine.ProcessForm(RasterImage,PageRequestCallback,Object,FormRecognitionAttributes,FormPages)( 
   form ,
   pageRequestCallback ,
   userData ,
   masterAttributes ,
   formFields 
)

Parameters

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.
Remarks

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.

Example
 
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.Plus, False)
         ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)

         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"
End Class
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.Plus, false))
      {
         ocrEngine.Startup(null, null, null, null);

         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";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

AutoFormsEngine Class
AutoFormsEngine Members
Overload List

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Forms requires a Forms Module license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features