←Select platform

FormFieldResult Class

Summary

Provides the results of processing the field. The base class for all form field result classes.

Syntax

C#
VB
C++
Java
[SerializableAttribute()] 
public abstract class FormFieldResult 
  
<SerializableAttribute()> 
Public MustInherit Class FormFieldResult  
public abstract class FormFieldResult 
    implements java.io.Serializable 
[SerializableAttribute()] 
public ref class FormFieldResult abstract  

Remarks

Fields are defined for each page in the processing engine. All fields require you fill in the Property specifying where the field is located, and a Name Property.

Fields can be added or retrieved through the FormProcessingEngine.Pages property. Once fields are defined, they can be loaded/saved from disk using the FormProcessingEngine.LoadFields and FormProcessingEngine.SaveFields methods, allowing you to define MasterForm fields just once and save them to disk. LEADTOOLS supports TextFormField, OmrFormField, BarcodeFormField, ImageFormField, and custom user-defined fields derived from FormField. When obtaining processing results, you should check for the type of each field, and cast it to the appropriate type in order to obtain the field specific results (barcode, image, etc).

Example
C#
VB
using Leadtools; 
using Leadtools.Barcode; 
using Leadtools.Codecs; 
using Leadtools.Forms.Common; 
using Leadtools.Ocr; 
using Leadtools.Forms.Processing; 
using Leadtools.Forms.Recognition; 
using Leadtools.Forms.Recognition.Barcode; 
using Leadtools.Forms.Recognition.Ocr; 
 
///This example prints field results. 
private string GetDataString(byte[] data) 
{ 
   string result = string.Empty; 
 
   for (int i = 0; i < data.Length; i++) 
   { 
      result = result + System.Convert.ToChar(data[i]).ToString(); 
   } 
 
   return result; 
} 
public void PrintOutFieldResults(FormProcessingEngine processingEngine) 
{ 
   foreach (FormPage page in processingEngine.Pages) 
   { 
      foreach (FormField field in page) 
      { 
         string[] row = new string[5]; 
         row[0] = field.Name; 
         row[4] = field.Bounds.ToString(); 
 
         if (field.Result != null) 
         { 
            if (field is TextFormField) 
            { 
               row[1] = "Text"; 
               row[2] = ((field as TextFormField).Result as TextFormFieldResult).Text; 
               row[3] = ((field as TextFormField).Result as TextFormFieldResult).AverageConfidence.ToString(); 
            } 
            else if (field is OmrFormField) 
            { 
               row[1] = "Omr"; 
               row[2] = ((field as OmrFormField).Result as OmrFormFieldResult).Text; 
               row[3] = ((field as OmrFormField).Result as OmrFormFieldResult).AverageConfidence.ToString(); 
            } 
            else if (field is BarcodeFormField) 
            { 
               row[1] = "Barcode"; 
               for (int i = 0; i < ((field as BarcodeFormField).Result as BarcodeFormFieldResult).BarcodeData.Count; i++) 
                  row[2] = GetDataString(((field as BarcodeFormField).Result as BarcodeFormFieldResult).BarcodeData[i].GetData()); 
 
               row[3] = "N/A"; 
            } 
            else if (field is ImageFormField) 
            { 
               row[1] = "Image"; 
               row[2] = "N/A"; 
               row[3] = "N/A"; 
            } 
         } 
         foreach (string line in row) 
            Console.WriteLine(line + "\r\n"); 
      } 
   } 
} 
Imports Leadtools 
Imports Leadtools.Barcode 
Imports Leadtools.Codecs 
Imports Leadtools.Forms.Common 
Imports Leadtools.Ocr 
Imports Leadtools.Forms.Processing 
Imports Leadtools.Forms.Recognition 
Imports Leadtools.Forms.Recognition.Barcode 
Imports Leadtools.Forms.Recognition.Ocr 
 
'''This example prints field results. 
Private Function GetDataString(ByVal data As Byte()) As String 
   Dim result As String = String.Empty 
 
   Dim i As Integer = 0 
   Do While i < data.Length 
      result = result & System.Convert.ToChar(data(i)).ToString() 
      i += 1 
   Loop 
 
   Return result 
End Function 
Public Sub PrintOutFieldResults(ByVal processingEngine As FormProcessingEngine) 
   For Each page As FormPage In processingEngine.Pages 
      For Each field As FormField In page 
         Dim row As String() = New String(4) {} 
         row(0) = field.Name 
         row(4) = field.Bounds.ToString() 
 
         If Not field.Result Is Nothing Then 
            If TypeOf field Is TextFormField Then 
               row(1) = "Text" 
               row(2) = (TryCast((TryCast(field, TextFormField)).Result, TextFormFieldResult)).Text 
               row(3) = (TryCast((TryCast(field, TextFormField)).Result, TextFormFieldResult)).AverageConfidence.ToString() 
            ElseIf TypeOf field Is OmrFormField Then 
               row(1) = "Omr" 
               row(2) = (TryCast((TryCast(field, OmrFormField)).Result, OmrFormFieldResult)).Text 
               row(3) = (TryCast((TryCast(field, OmrFormField)).Result, OmrFormFieldResult)).AverageConfidence.ToString() 
            ElseIf TypeOf field Is BarcodeFormField Then 
               row(1) = "Barcode" 
               Dim i As Integer = 0 
               Do While i < (TryCast((TryCast(field, BarcodeFormField)).Result, BarcodeFormFieldResult)).BarcodeData.Count 
                  row(2) = GetDataString((TryCast((TryCast(field, BarcodeFormField)).Result, BarcodeFormFieldResult)).BarcodeData(i).GetData()) 
                  i += 1 
               Loop 
 
               row(3) = "N/A" 
            ElseIf TypeOf field Is ImageFormField Then 
               row(1) = "Image" 
               row(2) = "N/A" 
               row(3) = "N/A" 
            End If 
         End If 
         For Each line As String In row 
            Console.WriteLine(line & Constants.vbCrLf) 
         Next line 
      Next field 
   Next page 
End Sub 

Requirements

Target Platforms

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

Leadtools.Forms.Processing Assembly