Manages the OCR documents of this
IOcrEngine.
Syntax
Visual Basic (Declaration) | |
---|
Public Interface 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 Basic | Copy Code |
---|
Public Sub OcrDocumentManagerExample()
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")
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
If (Directory.Exists(outputDirectory)) Then
Directory.Delete(outputDirectory, True)
End If
Directory.CreateDirectory(outputDirectory)
Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, False)
Console.WriteLine("Starting up the engine...")
ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)
Console.WriteLine("Creating the OCR document...")
Dim ocrDocumentManager As IOcrDocumentManager = ocrEngine.DocumentManager
Using ocrDocument As IOcrDocument = ocrDocumentManager.CreateDocument()
Console.WriteLine("Adding the pages...")
ocrDocument.Pages.AddPage(tifFileName1, Nothing)
ocrDocument.Pages.AddPage(tifFileName2, Nothing)
Console.WriteLine("Recognizing all the pages...")
ocrDocument.Pages.Recognize(Nothing)
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)
Dim extension As String = DocumentWriter.GetFormatFileExtension(format)
Dim outputFileName As String = Path.Combine(outputDirectory, format.ToString() + "." + extension)
ocrDocument.Save(outputFileName, format, Nothing)
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
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)
Dim extension As String = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat)
Dim outputFileName As String = Path.Combine(outputDirectory, "engine_" + engineFormat + "." + extension)
ocrDocumentManager.EngineFormat = engineFormat
ocrDocument.Save(outputFileName, DocumentFormat.User, Nothing)
Next
End Using
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
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also