public interface IOcrProgressData
@interface LTOcrProgressData : NSObject
public class OcrProgressData
public interface class IOcrProgressData
class IOcrProgressData:
An object of type IOcrProgressData is passed to the OcrProgressCallback delegate every time the operation or the percentage of the operation is changed.
IOcrProgressData is also used as the type for the OcrAutoRecognizeJobProgressEventArgs.Data property used by the IOcrAutoRecognizeManager.JobProgress event.
You can examine the members of IOcrProgressData to show information on the current page, operation and percentage complete of the OCR process.
You can also use the Status property to abort the OCR operation.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Ocr;
using Leadtools.Document.Writer;
using Leadtools.Forms.Common;
using Leadtools.WinForms;
public void OcrProgressCallbackExample()
{
string logFileName = Path.Combine(LEAD_VARS.ImagesDir, "log.txt");
string multiPageTifFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr.tif");
string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.pdf");
// Create the log text writer
_log = File.CreateText(logFileName);
// Create an instance of the engine
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
// Start the engine using default parameters
ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir);
// Create an OCR document
using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
{
// Add this image to the document
_log.WriteLine("Adding the pages");
_log.WriteLine("********************************");
ocrDocument.Pages.AddPages(multiPageTifFileName, 1, -1, new OcrProgressCallback(MyOcrProgressCallback));
// Auto-recognize the zones in all the pages
_log.WriteLine("Auto-zoning");
_log.WriteLine("********************************");
ocrDocument.Pages.AutoZone(new OcrProgressCallback(MyOcrProgressCallback));
// Recognize it and save it as PDF
_log.WriteLine("Recognizing");
_log.WriteLine("********************************");
ocrDocument.Pages.Recognize(new OcrProgressCallback(MyOcrProgressCallback));
_log.WriteLine("Saving to PDF");
_log.WriteLine("********************************");
ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, new OcrProgressCallback(MyOcrProgressCallback));
}
// Shutdown the engine
// Note: calling Dispose will also automatically shutdown the engine if it has been started
ocrEngine.Shutdown();
}
_log.WriteLine("********************************");
_log.WriteLine("Complete");
_log.Flush();
_log.Close();
}
// Text writer to save the log to
private StreamWriter _log;
private void MyOcrProgressCallback(IOcrProgressData data)
{
if (data.Percentage == 0)
_log.WriteLine("--------------------------");
_log.WriteLine("Page:{0}({1}:{2}) {3}% Operation:{4}",
data.CurrentPageIndex.ToString("00"),
data.FirstPageIndex.ToString("00"),
data.LastPageIndex.ToString("00"),
data.Percentage.ToString("000"),
data.Operation);
}
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.FileWriter;
import java.io.IOException;
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.codecs.*;
import leadtools.document.writer.*;
import leadtools.ocr.*;
// Text writer to save the log to
private FileWriter _log;
public void OcrProgressCallbackExample() throws IOException {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
final String OCR_LEAD_RUNTIME_DIR = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime";
String logFileName = combine(LEAD_VARS_IMAGES_DIR, "log.txt");
String multiPageTifFileName = combine(LEAD_VARS_IMAGES_DIR, "Ocr1.tif");
String pdfFileName = combine(LEAD_VARS_IMAGES_DIR, "Ocr1.pdf");
// Create the log text writer
_log = new FileWriter(logFileName);
// Create an instance of the engine
OcrEngine ocrEngine = OcrEngineManager.createEngine(OcrEngineType.LEAD);
RasterCodecs codecs = new RasterCodecs();
// Start the engine using default parameters
ocrEngine.startup(null, null, null, OCR_LEAD_RUNTIME_DIR);
// Create an OCR document
OcrDocument ocrDocument = ocrEngine.getDocumentManager().createDocument();
// Add this image to the document
_log.write("Adding the pages\n");
_log.write("********************************\n");
RasterImage image = codecs.load(multiPageTifFileName, 16, CodecsLoadByteOrder.BGR, 1, -1);
ocrDocument.getPages().addPages(image, 1, -1, myOcrProgressCallback);
// Auto-recognize the zones in all the pages
_log.write("Auto-zoning\n");
_log.write("********************************\n");
ocrDocument.getPages().autoZone(myOcrProgressCallback);
// Recognize it and save it as PDF
_log.write("Recognizing\n");
_log.write("********************************\n");
ocrDocument.getPages().recognize(myOcrProgressCallback);
_log.write("Saving to PDF\n");
_log.write("********************************\n");
ocrDocument.save(pdfFileName, DocumentFormat.PDF, myOcrProgressCallback);
// Shutdown the engine
// Note: calling Dispose will also automatically shutdown the engine if it has
// been started
ocrEngine.shutdown();
_log.write("********************************\n");
_log.write("Complete\n");
_log.flush();
_log.close();
assertTrue("Log file unsuccessfully created", new File(logFileName).exists());
System.out.println("output file successfully created");
}
OcrProgressListener myOcrProgressCallback = new OcrProgressListener() {
@Override
public void onProgress(OcrProgressData data) {
if (data.getPercentage() == 0) {
try {
_log.write("--------------------------\n");
} catch (IOException e) {
e.printStackTrace();
}
}
try {
_log.write("Page:" + data.getCurrentPageIndex() + "(" + data.getFirstPageIndex() + ":"
+ data.getLastPageIndex() + ") " + data.getPercentage() + "% Operation:" + data.getOperation()
+ "\n");
} catch (IOException e) {
e.printStackTrace();
}
}
};
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document