Test in production without watermarks.
Works wherever you need it to.
Get 30 days of fully functional product.
Have it up and running in minutes.
Full access to our support engineering team during your product trial
Explore many other features from IronOCR – the ideal library for all your OCR needs!
Effortlessly process multi-page documents stored in TIFF and GIF formats. IronOcr reads all pages or frames in a single operation, saving you the complexity of splitting files manually.
Learn how to:Read Multi-Frame/Page GIFs and TIFFsusing IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Import TIFF/TIF
using var imageInput = new OcrImageInput("sample.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);Accurately extract text directly from PDF files or memory streams, handling both native and scanned (image-based) PDFs with ease.
Learn how to:Read a PDF in .NET C#using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add PDF
using var pdfInput = new OcrPdfInput("sample.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);IronOCR supports all standard image formats, such as JPG, PNG, and BMP. Simply provide the file path, and IronOCR will handle the rest.
Learn how to:Read Images in .NET C#using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("Potter.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);Build highly scalable, responsive applications with full support for concurrent processing. Safely process multiple documents simultaneously in different threads for high-performance, server-side deployments.
Learn how to:Multithreaded Tesseract OCR in C#using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");
// Image processing is automatically multi-threaded
ocrInput.Deskew();
// OCR reading is automatically multi-threaded too
var ocrResult = ocrTesseract.Read(ocrInput);Maintain control over long-running OCR tasks. Use an abort token to gracefully suspend or cancel a process, which is useful for managing resources or implementing user-cancellable operations.
Learn how to:C# Tesseract Abort Tokenusing IronOcr;
using System.Threading;
// Opens a Large PDF which may need to be cancelled early
IronTesseract ocrTesseract = new IronTesseract() { Language = OcrLanguage.English };
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");
// Starts a read on the PDF using IronOCR
OcrReadTask ocrRead = ocrTesseract.ReadAsync(ocrInput);
Thread.Sleep(1000); // Time passes...
// Cancellation Example:
ocrRead.Cancel();
ocrRead.Wait();Prevent your application from hanging on difficult or corrupt files. Set a specific timeout duration for any OCR process to ensure better resource management and system stability.
Learn how to:C# Tesseract Timeoutsusing IronOcr;
int cancel_time = 1000;
// Opens a Large PDF which may need to be cancelled early
IronTesseract ocrTesseract = new IronTesseract() { Language = OcrLanguage.English };
var ocrInput = new OcrInput();
ocrInput.LoadPdf("large-report.pdf");
// Starts a read on the PDF using IronOCR with specified cancel time
OcrReadTask ocrRead = ocrTesseract.ReadAsync(ocrInput, cancel_time);Monitor the real-time progress of an OCR operation from 0% to 100%. This allows you to provide feedback to users with a progress bar or better estimate completion times for large jobs.
Learn how to:use Progress Tracking in .NET C#using IronOcr;
var ocrTesseract = new IronTesseract();
// Subscribe to OcrProgress event
ocrTesseract.OcrProgress += (_, ocrProgressEventsArgs) =>
{
Console.WriteLine("Progress(%) | Duration");
Console.WriteLine(" " + ocrProgressEventsArgs.ProgressPercent + "% | " + ocrProgressEventsArgs.Duration.TotalSeconds + "s");
};
using var input = new OcrInput();
input.LoadPdf("Experiences-in-Biodiversity-Research-A-Field-Course.pdf");
// Progress events will fire during the read operation
var result = ocrTesseract.Read(input);