public IOcrSettingDescriptor GetSettingDescriptor(string settingName)
settingName
Unique setting name. If the IOcrEngine does not support the setting with the unique name settingName, an exception will be thrown. You can check which settings the engine supports by using GetSettingNames or IsSettingNameSupported.
An instance of IOcrSettingDescriptor that describe the type of the setting with the unique name settingName.
IOcrEngine is a wrapper for different OCR engines. These engines contain specific additional features and functionalities that can be queried and updated using the IOcrSettingManager interface.
You can 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). You can get all 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 setting get and set methods to query and change the value of a certain setting. 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 IOcrSettingManager for a complete example.
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";}