Leadtools.Forms.Ocr Requires Document/Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
IOcrSettingManager Interface
See Also  Members   Example
Leadtools.Forms.Ocr Namespace : IOcrSettingManager Interface



Manages the underlying engine-specific settings of this IOcrEngine.

Syntax

Visual Basic (Declaration) 
Public Interface IOcrSettingManager 
Visual Basic (Usage)Copy Code
Dim instance As IOcrSettingManager
C# 
public interface IOcrSettingManager 
C++/CLI 
public interface class IOcrSettingManager 

Example

This example will start the LEADTOOLS OCR Plus engine. Shows the values of all the settings and change a few of them.

Visual BasicCopy Code
Public Sub OcrSettingManagerExample()
   ' Unlock the support needed for LEADTOOLS Plus OCR engine
   RasterSupport.Unlock(RasterSupportType.Document, "Replace with your own key here")
   RasterSupport.Unlock(RasterSupportType.OcrPlus, "Replace with your own key here")
   RasterSupport.Unlock(RasterSupportType.OcrPlusPdfLeadOutput, "Replace with your own key here")
   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, False)
      ' Start the engine using default parameters
      ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)

      Dim settingManager As IOcrSettingManager = ocrEngine.SettingManager

      ' Dump all the settings supported by this engine to a text file on disk
      DumpAllSettings(settingManager)

      ' Change the format level to drop
      Dim settingName As String = "SaveDocument.FormatLevel"
      settingManager.SetEnumValue(settingName, "Drop")

      ' Now use the new settings, notice that the result PDF file should not contain images
      Dim tifFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.tif"
      Dim pdfFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.pdf"

      ' Create an OCR document
      Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument()
         ' Add a page to the document
         Dim ocrPage As IOcrPage = ocrDocument.Pages.AddPage(tifFileName, Nothing)

         ' Recognize the page
         ' Note, Recognize can be called without calling AutoZone or manually adding zones. The engine will
         ' check and automatically auto-zones the page
         ocrPage.Recognize(Nothing)

         ' Save the document we have as PDF
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, Nothing)
      End Using

      ' Shutdown the engine
      ' Note: calling Dispose will also automatically shutdown the engine if it has been started
      ocrEngine.Shutdown()
   End Using
End Sub

Private Sub DumpAllSettings(ByVal settingManager As IOcrSettingManager)
   ' Write all the settings into a disk file
   Dim settingsFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Settings.txt"
   Using writer As StreamWriter = File.CreateText(settingsFileName)
      writer.WriteLine("Settings")
      Dim settingNames() As String = settingManager.GetSettingNames()

      For Each settingName As String In settingNames
         Dim sd As IOcrSettingDescriptor = settingManager.GetSettingDescriptor(settingName)

         writer.WriteLine(" Name: {0}", sd.Name)
         writer.WriteLine(" ValueType: {0}", sd.ValueType)
         writer.WriteLine(" FriendlyName: {0}", sd.FriendlyName)

         Select Case (sd.ValueType)
            Case OcrSettingValueType.BeginCategory
               writer.WriteLine("-------------------------------------")

            Case OcrSettingValueType.Integer
               writer.WriteLine(" Units: {0}", sd.Units)
               writer.WriteLine(" IntegerMinimumValue: {0}", sd.IntegerMinimumValue)
               writer.WriteLine(" IntegerMaximumValue: {0}", sd.IntegerMaximumValue)

            Case OcrSettingValueType.Enum
               writer.WriteLine(" EnumIsFlags: {0}", sd.EnumIsFlags)
               writer.WriteLine(" EnumMemberFriendlyNames")
               Dim values() As Integer = sd.GetEnumMemberValues()
               Dim names() As String = sd.GetEnumMemberFriendlyNames()
               For i As Integer = 0 To values.Length - 1
                  writer.WriteLine(" {0} : {1}", names(i), values(i))
               Next

            Case OcrSettingValueType.Double
               writer.WriteLine(" Units: {0}", sd.Units)
               writer.WriteLine(" DoubleMinimumValue: {0}", sd.DoubleMinimumValue)
               writer.WriteLine(" DoubleMaximumValue: {0}", sd.DoubleMaximumValue)

            Case OcrSettingValueType.Boolean

            Case OcrSettingValueType.Character

            Case OcrSettingValueType.String
               writer.WriteLine(" StringMaximumLength: {0}", sd.StringMaximumLength)
               writer.WriteLine(" StringNullAllowed: {0}", sd.StringNullAllowed)

            Case OcrSettingValueType.Rectangle

            Case OcrSettingValueType.EndCategory

         End Select
      Next
   End Using
End Sub
C#Copy Code
public void OcrSettingManagerExample() 

   // Unlock the support needed for LEADTOOLS Plus OCR engine 
   RasterSupport.Unlock(RasterSupportType.Document, "Replace with your own key here"); 
   RasterSupport.Unlock(RasterSupportType.OcrPlus, "Replace with your own key here"); 
   RasterSupport.Unlock(RasterSupportType.OcrPlusPdfLeadOutput, "Replace with your own key here"); 
   // Create an instance of the engine 
   using(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, false)) 
   { 
      // Start the engine using default parameters 
      ocrEngine.Startup(null, null, null, null); 
 
      IOcrSettingManager settingManager = ocrEngine.SettingManager; 
 
      // Dump all the settings supported by this engine to a text file on disk 
      DumpAllSettings(settingManager); 
 
      // Change the format level to drop 
      string settingName = "SaveDocument.FormatLevel"; 
      settingManager.SetEnumValue(settingName, "Drop"); 
 
      // Now use the new settings, notice that the result PDF file should not contain images 
      string tifFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.tif"; 
      string pdfFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.pdf"; 
 
      // Create an OCR document 
      using(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument()) 
      { 
         // Add a page to the document 
         IOcrPage ocrPage = ocrDocument.Pages.AddPage(tifFileName, null); 
 
         // Recognize the page 
         // Note, Recognize can be called without calling AutoZone or manually adding zones. The engine will 
         // check and automatically auto-zones the page 
         ocrPage.Recognize(null); 
 
         // Save the document we have as PDF 
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, null); 
      } 
 
      // Shutdown the engine 
      // Note: calling Dispose will also automatically shutdown the engine if it has been started 
      ocrEngine.Shutdown(); 
   } 

 
private void DumpAllSettings(IOcrSettingManager settingManager) 

   // Write all the settings into a disk file 
   string settingsFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Settings.txt"; 
   using(StreamWriter writer = File.CreateText(settingsFileName)) 
   { 
      writer.WriteLine("Settings"); 
      string[] settingNames = settingManager.GetSettingNames(); 
 
      foreach(string settingName in settingNames) 
      { 
         IOcrSettingDescriptor sd = settingManager.GetSettingDescriptor(settingName); 
 
         writer.WriteLine("  Name:           {0}", sd.Name); 
         writer.WriteLine("  ValueType:      {0}", sd.ValueType); 
         writer.WriteLine("  FriendlyName:   {0}", sd.FriendlyName); 
 
         switch(sd.ValueType) 
         { 
            case OcrSettingValueType.BeginCategory: 
               writer.WriteLine("-------------------------------------"); 
               break; 
 
            case OcrSettingValueType.Integer: 
               writer.WriteLine("    Units: {0}", sd.Units); 
               writer.WriteLine("    IntegerMinimumValue: {0}", sd.IntegerMinimumValue); 
               writer.WriteLine("    IntegerMaximumValue: {0}", sd.IntegerMaximumValue); 
               break; 
 
            case OcrSettingValueType.Enum: 
               writer.WriteLine("    EnumIsFlags: {0}", sd.EnumIsFlags); 
               writer.WriteLine("    EnumMemberFriendlyNames"); 
               { 
                  int[] values = sd.GetEnumMemberValues(); 
                  string[] names = sd.GetEnumMemberFriendlyNames(); 
                  for(int i = 0; i < values.Length; i++) 
                  { 
                     writer.WriteLine("      {0} : {1}", names[i], values[i]); 
                  } 
               } 
               break; 
 
            case OcrSettingValueType.Double: 
               writer.WriteLine("    Units: {0}", sd.Units); 
               writer.WriteLine("    DoubleMinimumValue: {0}", sd.DoubleMinimumValue); 
               writer.WriteLine("    DoubleMaximumValue: {0}", sd.DoubleMaximumValue); 
               break; 
 
            case OcrSettingValueType.Boolean: 
               break; 
 
            case OcrSettingValueType.Character: 
               break; 
 
            case OcrSettingValueType.String: 
               writer.WriteLine("    StringMaximumLength:   {0}", sd.StringMaximumLength); 
               writer.WriteLine("    StringNullAllowed:     {0}", sd.StringNullAllowed); 
               break; 
 
            case OcrSettingValueType.Rectangle: 
               break; 
 
            case OcrSettingValueType.EndCategory: 
               break; 
 
            default: 
               break; 
         } 
      } 
   } 
}

Remarks

Access the instance of the IOcrSettingManager used by an IOcrEngine through the IOcrEngine.SettingManager property.

IOcrSettingManager allows you to do the following:

  • Get and set the underlying engine-specific settings. IOcrEngine is a wrapper for different OCR engines. These engines contain additional specific features and functionalities that can be queried and updated using the IOcrSettingManager interface.
  • Load and save the engine settings. Once you set up the OCR engine, re-use these settings by saving the engine state into memory or to an XML file on disk. You can later reload these settings and use them in the same or a different instance of IOcrEngine.

Use the different methods of the IOcrSettingManager interface to get and set the engine-specific settings. Each setting has a unique name (a string value). Get all of the settings available to the current OCR engine through the GetSettingNames method. The GetSettingDescriptor method returns a description of the setting (its type, friendly name and value range). You can then use the various get and set methods to query and change the values of specific settings. For example, if the setting type is OcrSettingValueType.Integer, you can use the GetIntegerValue to get the current value of the setting and the SetIntegerValue to change its value. Refer to the example below for a complete demo.

This interface also contains methods to load and save the engine state to a .NET stream or an XML file on disk. The following table lists all the states saved:
PartMembers
IOcrSettingManager (accessed through IOcrEngine.SettingManagerAll the settings as obtained through IOcrSettingManager.GetSettingNames
IOcrLanguageManager (accessed through IOcrEngine.LanguageManagerThe value of IOcrLanguageManager.GetEnabledLanguages
IOcrSpellCheckManager (accessed through IOcrEngine.SpellCheckManagerThe values of IOcrSpellCheckManager.Enabled, IOcrSpellCheckManager.SpellLanguage and IOcrSpellCheckManager.UserDictionary.
IOcrDocumentManager (accessed through IOcrEngine.DocumentManagerThe values of IOcrDocumentManager.EngineFormat, IOcrDocumentManager.RejectionSymbol and IOcrDocumentManager.MissingSymbol.
IOcrZoneManager (accessed through IOcrEngine.ZoneManagerThe values of IOcrZoneManager.OmrOptions.FrameDetectionMethod, IOcrZoneManager.OmrOptions.Sensitivity and the state characters of IOcrZoneManager.OmrOptions.GetStateRecognitionCharacter.

You must call the IOcrEngine.Startup method before you can use the IOcrEngine.SettingManager property.

Note: The IOcrEngine.LanguageManager and IOcrEngine.SpellCheckManager state is also saved when the engine settings are saved. For more information, refer to IOcrSettingManager.Save.

For a list of supported engine-specific settings and their meanings, refer to OCR engine-specific Settings.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also

IOcrSettingManager requires an OCR module license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features