←Select platform

OcrRuntimeFile Class

Summary

Data for the IOcrEngine.RuntimeFileCallback callback.

Syntax
C#
C++/CLI
Python
public class OcrRuntimeFile 
public: 
   ref class OcrRuntimeFile 
class OcrRuntimeFile: 
Remarks

Refer to IOcrEngine.RuntimeFileCallback for more information.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Document.Writer; 
 
public static void OcrRuntimeFileCallbackExample() 
{ 
   // This example assumes that some or all of the OCR runtime files are copied into "C:\MyDir" folder and simulates 
   // an environment where the runtime files can be obtained through helper methods HasResource and GetResourceStream. 
 
   // Create an OCR engine instance 
   IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD); 
 
   // Install a OCR file runtime handler 
   ocrEngine.RuntimeFileCallback = MyRuntimeFileCallback; 
 
   // Startup the engine 
   ocrEngine.Startup(null, null, null, 
      null /* startupParameters is null*/); 
 
   // Perform OCR operation 
   ocrEngine.AutoRecognizeManager.Run( 
      @"C:\LEADTOOLS22\Resources\Images\ocr1.tif", 
      @"C:\LEADTOOLS22\Resources\Images\out.pdf", 
      DocumentFormat.Pdf, 
      null, 
      null); 
 
   // Shutdown 
   ocrEngine.Shutdown(); 
   // Remove the handler 
   ocrEngine.RuntimeFileCallback = null; 
   // Dispose the engine 
   ocrEngine.Dispose(); 
} 
 
private static RasterExceptionCode MyRuntimeFileCallback(IOcrEngine engine, OcrRuntimeFile runtimeFile) 
{ 
   // Called by the OCR engine for each runtime file operation 
 
   RasterExceptionCode result = RasterExceptionCode.Success; 
 
   // Check the operation: 
   switch (runtimeFile.Mode) 
   { 
      case OcrRuntimeFileMode.Exists: 
         Debug.WriteLine($"MyRuntimeFileCallback does '{runtimeFile.FileName}' exist"); 
         // The engine is checking if a certain file exists, call our HasResource helper 
         if (!HasResource(runtimeFile.FileName)) 
            result = RasterExceptionCode.FileNotFound; 
         break; 
 
      case OcrRuntimeFileMode.Open: 
         Debug.WriteLine($"MyRuntimeFileCallback open '{runtimeFile.FileName}'"); 
         // The engine requested to open the file for reading, call our GetResourceStream helper 
         // and set the Stream property accordingly 
         runtimeFile.Stream = GetResourceStream(runtimeFile.FileName); 
         break; 
 
      case OcrRuntimeFileMode.Close: 
         Debug.WriteLine($"MyRuntimeFileCallback close '{runtimeFile.FileName}'"); 
         // The engine requested to close the file after reading. 
         // Dispose our stream 
         runtimeFile.Stream.Dispose(); 
         break; 
   } 
 
   return result; 
} 
 
private static bool HasResource(string resourceName) 
{ 
   // Do we have this resource? 
   // In our simulation, we will simply check if the file exist on disk 
   // In an Android application, this can check if a resource with this name was embedded 
   return System.IO.File.Exists(Path.Combine(@"C:\MyDir", resourceName)); 
} 
 
private static Stream GetResourceStream(string resourceName) 
{ 
   // Get a stream that can read from resource 
   // In our simulation, we will simply check if the file exist on disk 
   // In an Android application, this can call the appropriate platform API to obtain 
   // a stream to the resource 
   return System.IO.File.OpenRead(Path.Combine(@"C:\MyDir", resourceName)); 
} 
 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.assertTrue; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.document.writer.*; 
import leadtools.ocr.*; 
 
 
public void IOcrRuntimeFileCallbackExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   final String OCR_LEAD_RUNTIME_DIR = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime"; 
 
   // Create an OCR engine instance 
   OcrEngine ocrEngine = OcrEngineManager.createEngine(OcrEngineType.LEAD); 
 
   // Install a OCR file runtime handler 
   ocrEngine.setRuntimeFileCallback(MyRuntimeFileCallback); 
 
   // Startup the engine 
   ocrEngine.startup(null, null, null, OCR_LEAD_RUNTIME_DIR); 
   assertTrue(ocrEngine.isStarted()); 
 
   // Perform OCR operation 
   ocrEngine.getAutoRecognizeManager().run( 
         combine(LEAD_VARS_IMAGES_DIR, "ocr1.tif"), 
         combine(LEAD_VARS_IMAGES_DIR, "out.pdf"), 
         DocumentFormat.PDF, null); 
 
   // Shutdown 
   ocrEngine.shutdown(); 
   assertTrue(!ocrEngine.isStarted()); 
   // Remove the handler 
   ocrEngine.setRuntimeFileCallback(null); 
   // Dispose the engine 
   ocrEngine.dispose(); 
 
   System.out.println("OCR operation completed successfully"); 
} 
 
OcrRuntimeFileCallbackListener MyRuntimeFileCallback = new OcrRuntimeFileCallbackListener() { 
 
   @Override 
   public RasterExceptionCode onCallback(OcrEngine arg0, OcrRuntimeFile runtimeFile) { 
      // Called by the OCR engine for each runtime file operation 
 
      RasterExceptionCode result = RasterExceptionCode.SUCCESS; 
      System.out.println(runtimeFile.getFileName()); 
 
      // Check the operation: 
      switch (runtimeFile.getMode()) { 
         case EXISTS: 
            System.out.println("MyRuntimeFileCallback does " + runtimeFile.getFileName() + " exist"); 
            // The engine is checking if a certain file exists, call our HasResource helper 
            if (!hasResource(runtimeFile.getFileName())) 
               result = RasterExceptionCode.FILE_NOT_FOUND; 
            break; 
 
         case OPEN: 
            System.out.println("MyRuntimeFileCallback open " + runtimeFile.getFileName()); 
            // The engine requested to open the file for reading, call our GetResourceStream 
            // helper 
            // and set the Stream property accordingly 
            runtimeFile.setStream(getResourceStream(runtimeFile.getFileName())); 
            break; 
 
         case CLOSE: 
            System.out.println("MyRuntimeFileCallback close " + runtimeFile.getFileName()); 
            // The engine requested to close the file after reading. 
            // Dispose our stream 
            runtimeFile.getStream().dispose(); 
            break; 
      } 
 
      return result; 
   } 
 
}; 
 
private boolean hasResource(String resourceName) { 
   final String OCR_LEAD_RUNTIME_DIR = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime"; 
   // Do we have this resource? 
   // In our simulation, we will simply check if the file exist on disk 
   // In an Android application, this can check if a resource with this name was 
   // embedded 
   File file = new File(combine(OCR_LEAD_RUNTIME_DIR, resourceName)); 
   return file.exists(); 
} 
 
private ILeadStream getResourceStream(String resourceName) { 
 
   final String OCR_LEAD_RUNTIME_DIR = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime"; 
   // Get a stream that can read from resource 
   // In our simulation, we will simply check if the file exist on disk 
   // In an Android application, this can call the appropriate platform API to 
   // obtain 
   // a stream to the resource 
   return LeadStreamFactory.create(combine(OCR_LEAD_RUNTIME_DIR, resourceName)); 
 
} 
Requirements

Target Platforms

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

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