Browse our Products

Latest release

What was changed

KeySummaryCategory
OCRNET‑1122Added CSV output format support for table detection (in OcrOutput class). Added OCRTable recognition result format.Enhancement
OCRNET‑1118Integrated formula detection and recognition functionality.Enhancement

Public API changes and backwards compatibility

This section lists all public API changes introduced in Aspose.OCR for .NET 25.11.0 that November affect the code of existing applications.

Added public APIs:

The following public APIs have been introduced in this release:

RecognizeFormula(OcrInput input, boolean detectAreas) method

A specialized recognition method for extracting and recognizing formulas from images.

RecognizeFormula() method has parameter:

  • boolean detectAreas If set to true, automatically detects and isolates formula regions before performing recognition. If false, processes the entire image as a formula.

OCRTable class

Represents the full result of table recognition for all processed pages.

MethodReturn
getPages()List<OCRTablePage>

OCRTablePage class

Represents table recognition results for a single page. A page consists of multiple rows extracted from the recognized table.

MethodReturn
getRows()List<OCRTableRow>
getPageIndex()Integer

OCRTableRow class

A row contains a collection of cells, each holding text from a corresponding column.

MethodReturn
getCells()List<OCRTableCell>
getRowIndex()Integer

OCRTableCell class

Represents a single table cell. A cell contains recognized text and its position in the row.

MethodReturn
getText()String
getColumnIndex()Integer

Updated public APIs:

The following public APIs have been changed in Aspose.OCR for Java 25.11.0 release:

Format enumeration

Aspose.OCR for Java can now output csv files:

ValueDescription
Format.CsvSaves the recognition result as a CSV (.csv) file.

OcrOutput class with method getTableData()

Aspose.OCR for Java can now output table data:

MethodReturn
getTableData()OCRTable object.

Deprecated APIs

The following public APIs have been marked as deprecated and will be removed in 25.11.0 (October 2025) release:

RectangleOutput class

AsposeOcr.DetectRectangles method

RecognitionResult.RecognitionAreasText

RecognitionResult.RecognitionAreasRectangles

RecognitionResult.Skew

CharacterRecognitionResult.ImageIndex

SkewOutput.ImageIndex

OcrPageRecognizeEventsArgs.CurrentImage

Removed public APIs:

No changes.

Examples

The code samples below illustrate the changes introduced in this release:

DetectAreasMode.FORMULA

Aspose.OCR.AsposeOcr recognitionEngine = new Aspose.OCR.AsposeOcr();
// Add images to OcrInput object
Aspose.OCR.OcrInput input = new Aspose.OCR.OcrInput(Aspose.OCR.InputType.SingleImage);
input.Add("source1.png");
input.Add("source2.jpg");
// Configure recognition settings for formulas
Aspose.OCR.RecognitionSettings settings = new Aspose.OCR.RecognitionSettings();
settings.DetectAreasMode = Aspose.OCR.DetectAreasMode.FORMULA;
// Recognize formulas on the image
Aspose.OCR.OcrOutput results = recognitionEngine.Recognize(input, recognitionSettings);
foreach(Aspose.OCR.RecognitionResult result in results)
{
	Console.WriteLine(result.RecognitionText);
}

RecognizeFormula(OcrInput images, bool detectAreas = true)

Aspose.OCR.AsposeOcr recognitionEngine = new Aspose.OCR.AsposeOcr();
// Add images to OcrInput object
Aspose.OCR.OcrInput input = new Aspose.OCR.OcrInput(Aspose.OCR.InputType.SingleImage);
input.Add("source1.png");
input.Add("source2.jpg");

// Recognize formulas with areas detection
Aspose.OCR.OcrOutput results = recognitionEngine.RecognizeFormula(input, true);
// Parameter bool detectAreas - if set to true, automatically detects and isolates formula regions before performing recognition. If false, processes the entire image as a formula.

foreach(Aspose.OCR.RecognitionResult result in results)
{
	Console.WriteLine(result.RecognitionText);
}

DetectAreasMode.TABLE and GetTableData

The following code example shows how to extract text from table and get rows and columns structure:

Aspose.OCR.AsposeOcr recognitionEngine = new Aspose.OCR.AsposeOcr();
// Add images to OcrInput object
Aspose.OCR.OcrInput input = new Aspose.OCR.OcrInput(Aspose.OCR.InputType.SingleImage);
input.Add("source1.png");
input.Add("source2.jpg");
// Configure recognition settings for table
Aspose.OCR.RecognitionSettings settings = new Aspose.OCR.RecognitionSettings();
settings.DetectAreasMode = Aspose.OCR.DetectAreasMode.TABLE;
// Recognize tables on the image
Aspose.OCR.OcrOutput results = recognitionEngine.Recognize(input, recognitionSettings);
OCRTable table = results.GetTableData();
foreach (OCRTablePage p in table.Pages)
{
      Console.WriteLine($"page {p.PageIndex}");
      foreach (OCRTableRow r in p.Rows)
      {
          Console.Write($"row {r.RowIndex}\t");
          foreach (OCRTableCell c in r.Cells)
          {
              Console.Write($"col {c.ColumnIndex}  {c.Text} \t");
          }

          Console.WriteLine();
      }
}

Save results as CSV file

Aspose.OCR.OcrOutput results = recognitionEngine.Recognize(input);
// Save result
results.Save("result.txt", Aspose.OCR.SaveFormat.Text);