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



Manages the OCR documents of this IOcrEngine.

Syntax

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

Example

This example save a page to all the formats supported by the LEADTOOLS OCR Plus engine

Visual BasicCopy Code
Public Sub OcrDocumentManagerExample()
   ' 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")
   ' We will use engine native PDF, so unlock it
   RasterSupport.Unlock(RasterSupportType.OcrPlusPdfOutput, "Replace with your own key here")
   Dim tifFileName1 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.tif"
   Dim tifFileName2 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr2.tif"
   Dim outputDirectory As String = LeadtoolsExamples.Common.ImagesPath.Path

   ' Create the output directory
   If (Directory.Exists(outputDirectory)) Then
      Directory.Delete(outputDirectory, True)
   End If
   Directory.CreateDirectory(outputDirectory)

   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, False)
      ' Start the engine using default parameters
      Console.WriteLine("Starting up the engine...")
      ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)

      ' Create the OCR document
      Console.WriteLine("Creating the OCR document...")
      Dim ocrDocumentManager As IOcrDocumentManager = ocrEngine.DocumentManager
      Using ocrDocument As IOcrDocument = ocrDocumentManager.CreateDocument()

         ' Add the pages to the document
         Console.WriteLine("Adding the pages...")
         ocrDocument.Pages.AddPage(tifFileName1, Nothing)
         ocrDocument.Pages.AddPage(tifFileName2, Nothing)

         ' 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(Nothing)

         ' Save to all the formats supported by this OCR engine
         Dim formats As Array = System.Enum.GetValues(GetType(DocumentFormat))
         For Each format As DocumentFormat In formats
            Dim friendlyName As String = DocumentWriter.GetFormatFriendlyName(format)
            Console.WriteLine("Saving (using default options) to {0}...", friendlyName)

            ' Construct the output file name (output_directory + document_format_name + . + extension)
            Dim extension As String = DocumentWriter.GetFormatFileExtension(format)
            Dim outputFileName As String = Path.Combine(outputDirectory, format.ToString() + "." + extension)

            ' Save the document
            ocrDocument.Save(outputFileName, format, Nothing)

            ' If this is the LTD format, convert it to PDF
            If format = DocumentFormat.Ltd Then
               Console.WriteLine("Converting the LTD file to PDF...")
               Dim pdfFileName As String = Path.Combine(outputDirectory, format.ToString() + "_pdf.pdf")

               Dim docWriter As DocumentWriter = ocrEngine.DocumentWriterInstance
               docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf)
            End If
         Next

         ' Now save to all the engine native formats (if any) supported by the engine
         Dim engineFormats() As String = ocrDocumentManager.GetEngineSupportedFormats()
         For Each engineFormat As String In engineFormats
            Dim friendlyName As String = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat)
            Console.WriteLine("Saving to engine native format {0}...", friendlyName)

            ' Construct the output file name (output_directory + "engine" + engine_format_name + . + extension)
            Dim extension As String = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat)
            Dim outputFileName As String = 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, Nothing)
         Next
      End Using

      ' Shutdown the engine
      ' Note: calling Dispose will also automatically shutdown the engine if it has been started
      Console.WriteLine("Shutting down...")
      ocrEngine.Shutdown()
   End Using
End Sub
C#Copy Code
public void OcrDocumentManagerExample() 

   // 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"); 
   // We will use engine native PDF, so unlock it 
   RasterSupport.Unlock(RasterSupportType.OcrPlusPdfOutput, "Replace with your own key here"); 
   string tifFileName1 = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.tif"; 
   string tifFileName2 = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr2.tif"; 
   string outputDirectory = LeadtoolsExamples.Common.ImagesPath.Path; 
 
   // 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.Plus, false)) 
   { 
      // Start the engine using default parameters 
      Console.WriteLine("Starting up the engine..."); 
      ocrEngine.Startup(null, null, null, null); 
 
      // 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.GetEngineSupportedFormats(); 
         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(); 
   } 
}

Remarks

You can access the instance of the IOcrDocumentManager used by an IOcrEngine through the IOcrEngine.DocumentManager property.

The IOcrDocumentManager interface allows you to create IOcrDocument objects that encapsulate an OCR'ed document. Each OCR document contains a collection of IOcrPage that you can use to add and remove pages from the document. After you add the pages to the document and optionally manage the zones on the pages, you can call the IOcrPage.Recognize method on each page to obtain the recognition data and store them internally in the pages. Once you are done, you can use the save methods of the IOcrDocument object to save the document into its final format.

LEADTOOLS supports saving to various standard document formats such as PDF, Microsoft Word, HTML and several others through the LEADTOOLS Document Writers engine. For more information, refer to IOcrDocument and DocumentFormat.

Typical OCR operation using the IOcrEngine involves starting up the engine, create an IOcrDocument object using the IOcrDocumentManager.CreateDocument method and adding the pages into it and perform either automatic or manual zoning. Once this is done, After the recognition data is collected using IOcrPage.Recognize, you use the various IOcrDocument.Save methods to save the document to its final format such as PDF, DOC or HTML.

In addition to the above, you can use IOcrDocument.SaveXml to save the document as XML.

Requirements

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

See Also

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