←Select platform

JobOperation Event

Summary
Occurs while a job is running.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public event EventHandler<OcrAutoRecognizeJobOperationEventArgs> JobOperation 
- (void)autoRecognizeManager:(LTOcrAutoRecognizeManager *)manager willRunOperation:(LTOcrAutoRecognizeJobOperationEventArgs *)operation 
- (void)autoRecognizeManager:(LTOcrAutoRecognizeManager*)manager didRunOperation:(LTOcrAutoRecognizeJobOperationEventArgs*)operation 
synchronized public void addJobOperationListener(OcrAutoRecognizeJobOperationListener listener) 
synchronized public void removeJobOperationListener(OcrAutoRecognizeJobOperationListener listener) 
event EventHandler<OcrAutoRecognizeJobOperationEventArgs^>^ JobOperation 
def JobOperation(sender,e): # sender: IOcrAutoRecognizeManager e: OcrAutoRecognizeJobOperationEventArgs 
Event Data

The event handler receives an argument of type OcrAutoRecognizeJobOperationEventArgs containing data related to this event. The following OcrAutoRecognizeJobOperationEventArgs properties provide information specific to this event.

PropertyDescription
Document Gets the OCR document being used in the current operation.
Remarks

This event will occur when Run, RunJob or RunJobAsync is called.

You can use this event to get information on the current operation (creating an OCR document, loading a page, zoning, recognizing, saving, etc.).

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Document.Writer; 
using Leadtools.Forms.Common; 
using Leadtools.WinForms; 
 
public void JobOperationExample() 
{ 
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"); 
   string documentFileName = Path.Combine(LEAD_VARS.ImagesDir, "JobOperation.pdf"); 
 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      IOcrAutoRecognizeManager autoRecognizeManager = ocrEngine.AutoRecognizeManager; 
      autoRecognizeManager.JobOperation += new EventHandler<OcrAutoRecognizeJobOperationEventArgs>(autoRecognizeManager_JobOperation); 
 
      IOcrAutoRecognizeJob job = autoRecognizeManager.CreateJob(new OcrAutoRecognizeJobData(imageFileName, DocumentFormat.Pdf, documentFileName)); 
      autoRecognizeManager.RunJob(job); 
 
      autoRecognizeManager.JobOperation -= new EventHandler<OcrAutoRecognizeJobOperationEventArgs>(autoRecognizeManager_JobOperation); 
   } 
} 
 
private static void autoRecognizeManager_JobOperation(object sender, OcrAutoRecognizeJobOperationEventArgs e) 
{ 
   // We did not pass a zone to the job, so the engine will attempt to do AutoZone unless we 
   // add any zone to the input document. 
   // We can also check for e.PostOperation equals to true and manipulate the zones 
   // found the engine at this point 
 
   // Add a graphics zone. 
   // If you comment out this code, the result PDF will contain text, but since we will be adding a zone here, 
   // the engine will not auto-zone the document for us. Also, since the zone we are adding is 
   // graphics that takes up the whole page, the result PDF will contain a raster image and no text. 
   if (!e.PostOperation && e.ImagePageNumber == 1) 
   { 
      OcrZone ocrZone = new OcrZone(); 
      ocrZone.ZoneType = OcrZoneType.Graphic; 
      ocrZone.Bounds = new LeadRect(0, 0, e.Page.Width, e.Page.Height); 
      e.Page.Zones.Add(ocrZone); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime"; 
} 
 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.io.FilenameFilter; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.util.ArrayList; 
import java.util.concurrent.ExecutorService; 
import java.util.concurrent.Executors; 
import java.util.concurrent.atomic.AtomicInteger; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.document.writer.*; 
import leadtools.internal.AutoResetEvent; 
import leadtools.ocr.*; 
 
 
public void OcrAutoRecognizeManagerJobOperationExample() { 
   String LEAD_VARS_ImagesDir = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String LEAD_VARS_OcrLEADRuntimeDir = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime"; 
   String imageFileName = combine(LEAD_VARS_ImagesDir, "Ocr1.tif"); 
   String documentFileName = combine(LEAD_VARS_ImagesDir, "JobOperation.pdf"); 
 
   OcrEngine ocrEngine = OcrEngineManager.createEngine(OcrEngineType.LEAD); 
   ocrEngine.startup(null, null, null, LEAD_VARS_OcrLEADRuntimeDir); 
 
   OcrAutoRecognizeManager autoRecognizeManager = ocrEngine.getAutoRecognizeManager(); 
   autoRecognizeManager.addJobOperationListener(autoRecognizeManager_JobOperation); 
 
   OcrAutoRecognizeJob job = autoRecognizeManager 
         .createJob(new OcrAutoRecognizeJobData(imageFileName, DocumentFormat.PDF, documentFileName)); 
   autoRecognizeManager.runJob(job); 
 
   autoRecognizeManager.removeJobOperationListener(autoRecognizeManager_JobOperation); 
   ocrEngine.dispose(); 
} 
 
OcrAutoRecognizeJobOperationListener autoRecognizeManager_JobOperation=new OcrAutoRecognizeJobOperationListener(){ 
 
   @Override public void onOperation(OcrAutoRecognizeJobOperationEvent e){ 
      // We did not pass a zone to the job, so the engine will attempt to do AutoZone 
      // unless we 
      // add any zone to the input document. 
      // We can also check for e.PostOperation equals to true and manipulate the zones 
      // found the engine at this point 
 
      // Add a graphics zone. 
      // If you comment out this code, the result PDF will contain text, but since we 
      // will be adding a zone here, 
      // the engine will not auto-zone the document for us. Also, since the zone we 
      // are adding is 
      // graphics that takes up the whole page, the result PDF will contain a raster 
      // image and no text. 
      if (!e.isPostOperation()&&e.getImagePageNumber()==1) { 
         OcrZone ocrZone=new OcrZone(); 
         ocrZone.setZoneType(OcrZoneType.GRAPHIC); 
         ocrZone.setBounds(new LeadRect(0,0,e.getPage().getWidth(),e.getPage().getHeight()));e.getPage().getZones().add(ocrZone); 
      } 
   } 
 
}; 
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.