←Select platform

Save(Stream,OcrWriteXmlOptions) Method

Summary
Saves the OCR engine current settings to a .NET stream.
Syntax
C#
C++/CLI
Python
public void Save( 
   Stream stream, 
   OcrWriteXmlOptions xmlOptions 
) 
void Save(  
   Stream^ stream, 
   OcrWriteXmlOptions^ xmlOptions 
)  
def Save(self,stream,xmlOptions): 

Parameters

stream
The stream to write the settings to.

xmlOptions
XML options to use.

Remarks

Once you set up the OCR engine, you can re-use these settings by saving the engine state into memory or to an XML file on disk. Later, reload these settings and use them in the same or different instance of IOcrEngine.

The following table lists all the states loaded from the XML file. After the load operation completes, some or all of the settings below will be changed.

Part Members
IOcrSettingManager (accessed through IOcrEngine.SettingManager All the settings as obtained through IOcrSettingManager.GetSettingNames
IOcrLanguageManager (accessed through IOcrEngine.LanguageManager The value of IOcrLanguageManager.GetEnabledLanguages
IOcrSpellCheckManager (accessed through IOcrEngine.SpellCheckManager The values of IOcrSpellCheckManager.SpellCheckEngine and IOcrSpellCheckManager.SpellLanguage.
IOcrDocumentManager (accessed through IOcrEngine.DocumentManager The values of the IOcrDocumentManager.RejectionSymbol and IOcrDocumentManager.MissingSymbol.
Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Document.Writer; 
 
public void LoadSettingsExample2() 
{ 
   string userDictionaryFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyDictionary.ud"); 
 
   // Stream to save the settings to 
   MemoryStream ms = new MemoryStream(); 
 
   // Create an instance of the engine 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      // Start the engine using default parameters 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      IOcrSettingManager settingManager = ocrEngine.SettingManager; 
 
      // Enable English and German character sets 
      ocrEngine.LanguageManager.EnableLanguages(new string[] { "en", "de" }); 
 
      // Set the spell checking options 
      ocrEngine.SpellCheckManager.SpellCheckEngine = OcrSpellCheckEngine.None; 
      ocrEngine.SpellCheckManager.SpellLanguage = "en"; 
 
      // Change some settings 
      settingManager.SetValue("SaveDocument.FormatLevel", "Part"); 
      settingManager.SetBooleanValue("SaveDocument.Document.TextInBoxes", false); 
      settingManager.SetIntegerValue("SaveDocument.Document.Margin.Left", 2400); 
      settingManager.SetStringValue("SaveDocument.Character.ProportionalSansSerifFontName", "MyFont"); 
      settingManager.SetStringValue("SaveDocument.Mark.BeforeMissingCharacterSeparator", "MyMark"); 
      settingManager.SetValue("SaveDocument.Mark.BeginOfLineSeparator", null); 
      // Change an enum using an integer 
      settingManager.SetEnumValue("SaveDocument.Mark.SuspectedCharacterColor", 7); 
      // Change an enum using strings 
      settingManager.SetEnumValue("SaveDocument.Mark.RejectionCharacterColor", "Blue, Green, Red"); 
 
      // Save the settings 
      settingManager.Save(ms); 
 
      // Note: calling Dispose will also automatically shutdown the engine if it has been started 
      ocrEngine.Shutdown(); 
   } 
 
   // Reset the stream position to the beginning 
   ms.Position = 0; 
 
   // Now create another instance of the engine, load the settings and make sure they are the same 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      // Start the engine using default parameters 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      IOcrSettingManager settingManager = ocrEngine.SettingManager; 
 
      // Load the settings 
      settingManager.Load(ms); 
 
      // Check the character set 
      string[] languages = ocrEngine.LanguageManager.GetEnabledLanguages(); 
      Debug.Assert(languages[0] == "en" && languages[1] == "de"); 
 
      // Check the spell checking options 
      Debug.Assert(ocrEngine.SpellCheckManager.SpellCheckEngine == OcrSpellCheckEngine.Native); 
      Debug.Assert(ocrEngine.SpellCheckManager.SpellLanguage == "en"); 
 
      // Check the settings 
      Debug.Assert(settingManager.GetValue("SaveDocument.FormatLevel") == "Part"); 
      Debug.Assert(settingManager.GetBooleanValue("SaveDocument.Document.TextInBoxes") == false); 
      Debug.Assert(settingManager.GetIntegerValue("SaveDocument.Document.Margin.Left") == 2400); 
      Debug.Assert(settingManager.GetStringValue("SaveDocument.Character.ProportionalSansSerifFontName") == "MyFont"); 
      Debug.Assert(settingManager.GetStringValue("SaveDocument.Mark.BeforeMissingCharacterSeparator") == "MyMark"); 
      Debug.Assert(settingManager.GetValue("SaveDocument.Mark.BeginOfLineSeparator") == null); 
      Debug.Assert(settingManager.GetEnumValue("SaveDocument.Mark.SuspectedCharacterColor") == 7); 
      Debug.Assert(settingManager.GetEnumValueAsString("SaveDocument.Mark.RejectionCharacterColor") == "Blue, Green, Red"); 
 
      // Note: calling Dispose will also automatically shutdown the engine if it has been started 
      ocrEngine.Shutdown(); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime"; 
} 
Requirements

Target Platforms

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

Leadtools.Ocr Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.