←Select platform

OcrAutoRecognizeJobOperationEventArgs Class

Summary
Contains data for the IOcrAutoRecognizeManager.JobOperation event.
Syntax
C#
Objective-C
C++/CLI
Java
Python
[SerializableAttribute()] 
public class OcrAutoRecognizeJobOperationEventArgs : EventArgs 
@interface LTOcrAutoRecognizeJobOperationEventArgs : NSObject 
public class OcrAutoRecognizeJobOperationEvent extends EventObject 
[SerializableAttribute()] 
public ref class OcrAutoRecognizeJobOperationEventArgs : public System.EventArgs  
class OcrAutoRecognizeJobOperationEventArgs(EventArgs): 
Remarks

IOcrAutoRecognizeManager.JobOperation will trigger 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.).

This class contains the following members:

Member Description
Status The status of the job. You can set this from the default value of OcrAutoRecognizeManagerJobStatus.Success to OcrAutoRecognizeManagerJobStatus.Abort to abort the recognition process.
Job The instance of the IOcrAutoRecognizeJob currently being run. You can use this member to get information about the job, for example, the image file name and page numbers to recognize and the output document file name and format through IOcrAutoRecognizeJob.JobData. Note that OcrAutoRecognizeJobData.LastPageNumber will have the true value of the last page number in the image file if a value of -1 (for up to last page) was passed in the original object used to create IOcrAutoRecognizeJob.
PostOperation A boolean value that indicates whether the engine is preparing to run the operation (the value of PostOperation is false) or whether the operation has already run (the value of PostOperation is true). This is useful if you want to manipulate operation data as shown in the example.
Operation An OcrAutoRecognizeManagerJobOperation enumeration member that specifies the current operation.
Document An IOcrDocument instance that specifies the OCR document being used in the current operation. This object is not valid and will be null (Nothing in Visual Basic) when the current operation is ConvertDocument (or in CreateDocument with PostOperation equals to false).
Page an IOcrPage instance that specifies the OCR page being used in the current operation. This object is not valid and will be null (Nothing in Visual Basic) when the current operation is CreateDocument, PrepareDocument, SaveDocument or ConvertDocument.
ImagePageNumber The page number in the input (image) file name for the current operation. This member is not valid and will be 0 when the current operation is CreateDocument, PrepareDocument, SaveDocument or ConvertDocument.
PageImage The raster image object used for the current operation. This member is only valid when the current operation is LoadPage and SavePage.
LtdFileName The name of the LEAD Temporary Document (LTD) being used in the current operation. Depending on how the IOcrAutoRecognizeManager was setup, the engine might create LTD files during the recognition process to support multi-threading or recognition of images with large amount of pages. The value of this member is valid only when the current operation is SavePage (as the LTD for this page), AppendLtd (as the source file name) or ConvertDocument (as the source file name).
Format An DocumentFormat enumeration member that specifies the format being used in the current operation. This member will be equal to the original OcrAutoRecognizeJobData.Format value except for the following operations: SavePage and AppendLtd where it will be DocumentFormat.Ltd or SaveDocument where it can either be the original format or DocumentFormat.Ltd if LTD is being used to create a temporary document during recognition.
DocumentFileName The name of the document file being saved in the current operation. This member will be equal to the original OcrAutoRecognizeJobData.DocumentFileName value except for the following operations: SavePage and AppendLtd where it will be destination file name or SaveDocument where it can either be the original document file name or the name of a temporary LTD file if LTD is being used to create a temporary document during recognition.
DocumentWriterInstance The DocumentWriter instance being used in the current operation. This member will be equal to IOcrDocument.DocumentWriterInstance in all operations where an Document is available. When the operation is ConvertDocument, this instance will point to the DocumentWriter object being used to convert the document.
Example

This example will use the IOcrAutoRecognizeManager.JobOperation to change the zones of a document being recognized with IOcrAutoRecognizeManager.RunJob.

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.