The ProcessForm(RasterImage,PageRequestCallback,Object,FormRecognitionAttributes,FormPages) Method is available as an add-on to the LEADTOOLS Document and Medical Imaging toolkits.
- 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.
Visual Basic (Declaration) | |
---|---|
Overloads Public Sub ProcessForm( _ ByVal form As RasterImage, _ ByVal pageRequestCallback As PageRequestCallback, _ ByVal userData As Object, _ ByVal masterAttributes As FormRecognitionAttributes, _ ByVal formFields As FormPages _ ) |
Visual Basic (Usage) | Copy Code |
---|---|
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) |
C# | |
---|---|
public void ProcessForm( RasterImage form, PageRequestCallback pageRequestCallback, object userData, FormRecognitionAttributes masterAttributes, FormPages formFields ) |
C++/CLI | |
---|---|
public: void ProcessForm( RasterImage^ form, PageRequestCallback^ pageRequestCallback, Object^ userData, FormRecognitionAttributes^ masterAttributes, FormPages^ 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.
Visual Basic | Copy Code |
---|---|
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 |
C# | Copy Code |
---|---|
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"; } |
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.
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7