public IOcrSettingManager SettingManager { get; }
The instance of the IOcrSettingManager object used to manage the underlying OCR engine-specific settings of this IOcrEngine.
The SettingManager allows you to do the following:
For more information, refer to IOcrSettingManager.
You must call the Startup method before you can use the SettingManager.
Note: The LanguageManager and SpellCheckManager state is also saved when the engine settings are saved. For more information, refer to IOcrSettingManager.
For a list of supported engine-specific settings and their meanings, refer to OCR engine-specific Settings.
using Leadtools;using Leadtools.Codecs;using Leadtools.Ocr;using Leadtools.Document.Writer;public void OcrSettingManagerExample(){// Create an instance of the engineusing (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)){// Start the engine using default parametersocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir);IOcrSettingManager settingManager = ocrEngine.SettingManager;// Dump all the settings supported by this engine to a text file on diskDumpAllSettings(settingManager);// Image file to OCRstring tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");// File formats to saveDocumentFormat[] formats = { DocumentFormat.Text, DocumentFormat.Pdf };foreach (DocumentFormat format in formats){// Generate the output file namestring outFileName = Path.ChangeExtension(tifFileName, DocumentWriter.GetFormatFileExtension(format));Console.WriteLine("Format: {0}\nOutput file: {1}", format, outFileName);int detectFontStyles = 0;bool recognizeFontAttributes = false;if (format == DocumentFormat.Text){// This is 'text' format, we dont need to recognize fonts attributes such as bold and italic// This will make the recognition process fasterConsole.WriteLine("Turning off font attributes");// Save the old settingsdetectFontStyles = settingManager.GetEnumValue("Recognition.Fonts.DetectFontStyles");recognizeFontAttributes = settingManager.GetBooleanValue("Recognition.Fonts.RecognizeFontAttributes");// Turn them off nowsettingManager.SetEnumValue("Recognition.Fonts.DetectFontStyles", "None");settingManager.SetBooleanValue("Recognition.Fonts.RecognizeFontAttributes", false);}// Show the settings we are usingConsole.WriteLine("Recognizing using these font attributes settings:");Console.WriteLine("Recognition.Fonts.DetectFontStyles: {0}", settingManager.GetEnumValueAsString("Recognition.Fonts.DetectFontStyles"));Console.WriteLine("Recognition.Fonts.RecognizeFontAttributes: {0}", settingManager.GetBooleanValue("Recognition.Fonts.RecognizeFontAttributes"));// Recognize and save the file to the output formatusing (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument()){// Add a page to the documentIOcrPage 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 pageocrPage.Recognize(null);// Save the document we have as PDFocrDocument.Save(outFileName, format, null);}// Re-set the original settingsif (format == DocumentFormat.Text){Console.WriteLine("Resetting original settings");settingManager.SetEnumValue("Recognition.Fonts.DetectFontStyles", detectFontStyles);settingManager.SetBooleanValue("Recognition.Fonts.RecognizeFontAttributes", recognizeFontAttributes);}}// Shutdown the engine// Note: calling Dispose will also automatically shutdown the engine if it has been startedocrEngine.Shutdown();}}private static void DumpAllSettings(IOcrSettingManager settingManager){// Write all the settings into a disk filestring settingsFileName = Path.Combine(LEAD_VARS.ImagesDir, "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;}}}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime";}