←Select platform

GetSupportedEngineFormats Method

Summary
Gets a list of the engine native formats supported by this IOcrEngine.
Syntax
C#
C++/CLI
Java
Python
public string[] GetSupportedEngineFormats() 
public String[] getSupportedEngineFormats() 
array<String^>^ GetSupportedEngineFormats();  
def GetSupportedEngineFormats(self): 
Remarks

It is recommended that you always use the formats supported by the LEADTOOLS Document Writers when saving OCR recognition data. For more information refer to DocumentFormat. Support for native engine formats may be deprecated in later versions of LEADTOOLS.

Use the GetSupportedEngineFormats method in OcrEngineType.LEAD to get a list of names of the supported native formats. If the native format is supported, a native format can be used to save it, instead of using the save mechanism of the LEADTOOLS Document Writers.

Steps to Save Using the Engine's Native Format

To save the recognition results using the engine native format:

If DocumentFormat.User is passed to the save method, then the document is saved using the native engine's format set in IOcrDocumentManager.EngineFormat. However, if the engine does not support a native format, an exception will be thrown.

Note that the LEADTOOLS default installation does not ship with native engine format support. You must download and install the "OCR Additional Features" setup available at https://www.leadtools.com to add this feature. To get a list of the engine native formats available but not installed for the current OCR engine, use GetAdditionalEngineFormats.

For more information about the various document formats supported by LEADTOOLS refer to DocumentFormat.

To determine whether a specific engine native format is supported by this IOcrEngine, use IsEngineFormatSupported.

To get the file extension for a specific engine native format, use GetEngineFormatFileExtension.

To get the friendly name for a specific engine native format, use GetEngineFormatFriendlyName.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Forms.Common; 
using Leadtools.Document.Writer; 
using Leadtools.WinForms; 
 
public void OcrDocumentManagerExample() 
{ 
   string tifFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"); 
   string tifFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"); 
   string outputDirectory = Path.Combine(LEAD_VARS.ImagesDir, "OutputDirectory"); 
 
   // Create the output directory 
   if (Directory.Exists(outputDirectory)) 
      Directory.Delete(outputDirectory, true); 
   Directory.CreateDirectory(outputDirectory); 
 
   // Create an instance of the engine 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      // Start the engine using default parameters 
      Console.WriteLine("Starting up the engine..."); 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      // Create the OCR document 
      Console.WriteLine("Creating the OCR document..."); 
      IOcrDocumentManager ocrDocumentManager = ocrEngine.DocumentManager; 
      using (IOcrDocument ocrDocument = ocrDocumentManager.CreateDocument()) 
      { 
         // Add the pages to the document 
         Console.WriteLine("Adding the pages..."); 
         ocrDocument.Pages.AddPage(tifFileName1, null); 
         ocrDocument.Pages.AddPage(tifFileName2, null); 
 
         // Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize 
         Console.WriteLine("Recognizing all the pages..."); 
         ocrDocument.Pages.Recognize(null); 
 
         // Save to all the formats supported by this OCR engine 
         Array formats = Enum.GetValues(typeof(DocumentFormat)); 
         foreach (DocumentFormat format in formats) 
         { 
            string friendlyName = DocumentWriter.GetFormatFriendlyName(format); 
            Console.WriteLine("Saving (using default options) to {0}...", friendlyName); 
 
            // Construct the output file name (output_directory + document_format_name + . + extension) 
            string extension = DocumentWriter.GetFormatFileExtension(format); 
            string outputFileName = Path.Combine(outputDirectory, format.ToString() + "." + extension); 
 
            // Save the document 
            ocrDocument.Save(outputFileName, format, null); 
 
            // If this is the LTD format, convert it to PDF 
            if (format == DocumentFormat.Ltd) 
            { 
               Console.WriteLine("Converting the LTD file to PDF..."); 
               string pdfFileName = Path.Combine(outputDirectory, format.ToString() + "_pdf.pdf"); 
 
               DocumentWriter docWriter = ocrEngine.DocumentWriterInstance; 
               docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf); 
            } 
         } 
 
         // Now save to all the engine native formats (if any) supported by the engine 
         string[] engineFormats = ocrDocumentManager.GetSupportedEngineFormats(); 
         foreach (string engineFormat in engineFormats) 
         { 
            string friendlyName = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat); 
            Console.WriteLine("Saving to engine native format {0}...", friendlyName); 
 
            // Construct the output file name (output_directory + "engine" + engine_format_name + . + extension) 
            string extension = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat); 
            string outputFileName = Path.Combine(outputDirectory, "engine_" + engineFormat + "." + extension); 
 
            // To use this format, set it in the IOcrDocumentManager.EngineFormat and do a normal save using DocumentFormat.User 
 
            // Save the document 
            ocrDocumentManager.EngineFormat = engineFormat; 
            ocrDocument.Save(outputFileName, DocumentFormat.User, null); 
         } 
      } 
 
      // Shutdown the engine 
      // Note: calling Dispose will also automatically shutdown the engine if it has been started 
      Console.WriteLine("Shutting down..."); 
      ocrEngine.Shutdown(); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime"; 
} 
Requirements

Target Platforms

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

Leadtools.Ocr Assembly

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