Class OcrResult.Page
Represents a single page within an OcrResult object.
Implements
Inherited Members
Namespace: IronOcr
Assembly: IronOcr.dll
Syntax
public class Page : OcrResult.OcrResultTextElement
Everything OCR recognized on a single scanned or rendered page, structured for reading, lives on OcrResult.Page. One page object groups its text into words, lines, paragraphs, and blocks, surfaces any tables and barcodes found, and reports the page geometry, so you can extract plain text or navigate the layout from one place.
You get pages from a finished read: OcrResult.Pages returns an OcrResultPagesCollection, and each entry is a Page. A multi-page TIFF or PDF produces one Page per source page, ordered by PageNumber (1 based), which is why iterating result.Pages is the normal way to process a document. Each page derives from OcrResult.OcrResultTextElement, so it also carries the shared text, confidence, and bounding members.
The members fall into clear groups. The text-hierarchy properties are Words, Lines, Paragraphs, Blocks, and Characters, each an array in reading order from coarse to fine; WordCount gives a quick total. The structured-content properties are Tables, an array of OcrResult.Table detected on the page, and Barcodes, populated only when barcode reading is enabled on the input. The geometry properties are Width, Height, Rotation (degrees the original was turned to produce this result), and ContentArea, the Rectangle region OCR was applied to. ObjectModel exposes the page as an IOcrPageObjectModel, and ContentAreaToBitmap returns an AnyBitmap crop of the content area for a given OcrInput. Pick the level you need rather than reading every array.
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("invoice.pdf");
OcrResult result = ocr.Read(input);
foreach (OcrResult.Page page in result.Pages)
Console.WriteLine($"Page {page.PageNumber}: {page.WordCount} words, {page.Tables.Length} tables");The OCR results objects example walks the page tree, the read PDFs how-to produces a page per PDF page, and the read tables how-to works through the Tables array.
Properties
Barcodes
Represents every barcode discovered in this Page. Developers must set ReadBarCodes = True for this feature to be active.
Declaration
public OcrResult.Barcode[] Barcodes { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Barcode[] |
Blocks
Represents every block of text discovered within this OcrResult.Page in order of appearance.
Declaration
public OcrResult.Block[] Blocks { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Block[] |
Characters
Represents every symbol (char) discovered within this OcrResult.Page in order of appearance.
Declaration
public OcrResult.Character[] Characters { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Character[] |
Confidence
OCR statistical accuracy confidence as an average of every character.
1 = 100%, 0 = 0%
Declaration
public override double Confidence { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Overrides
ContentArea
Represents the rectangular area of this OcrResult.Page page on which OCR has been applied. Dimensions are in Pixels.
Default value is the entire size of the Page. Relates to IronOcr.OcrInput.AddImage(IronSoftware.Drawing.AnyBitmap,IronSoftware.Drawing.Rectangle)
Declaration
public Rectangle ContentArea { get; set; }
Property Value
| Type | Description |
|---|---|
| IronSoftware.Drawing.Rectangle |
Height
Declaration
public double Height { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Lines
Represents every line of text discovered within this OcrResult.Page in order of appearance.
Declaration
public OcrResult.Line[] Lines { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Line[] |
ObjectModel
Declaration
public IOcrPageObjectModel ObjectModel { get; }
Property Value
| Type | Description |
|---|---|
| IOcrPageObjectModel |
PageIndex
Declaration
public int PageIndex { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
PageNumber
A 1 based unique identifier for this page within an OcrResult object. The first page is number 1.
Declaration
public int PageNumber { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Paragraphs
Represents every paragraph of text discovered within this OcrResult.Page in order of appearance.
Declaration
public OcrResult.Paragraph[] Paragraphs { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Paragraph[] |
Rotation
The number of degrees the original page has been rotated to produce this result.
Declaration
public double Rotation { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Tables
Represents every Grouping of Lines that can represent a table.
Declaration
public OcrResult.Table[] Tables { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Table[] |
Width
Declaration
public double Width { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
WordCount
The number of words on this page.
Declaration
public int WordCount { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Words
Represents every word discovered within this OcrResult.Page in order of appearance.
Declaration
public OcrResult.Word[] Words { get; }
Property Value
| Type | Description |
|---|---|
| OcrResult.Word[] |
Methods
ContentAreaToBitmap(OcrInput)
Returns an image of the ContentArea of this OcrResult.Page.
Declaration
public AnyBitmap ContentAreaToBitmap(OcrInput Input)
Parameters
| Type | Name | Description |
|---|---|---|
| OcrInput | Input | The OcrInput document that was read by IronTesseract |
Returns
| Type | Description |
|---|---|
| IronSoftware.Drawing.AnyBitmap | A IronSoftware.Drawing.AnyBitmap. |