Search Results for

    Show / Hide Table of Contents

    Class OcrResult.Line

    A line of text within an Paragraph

    Inheritance
    System.Object
    OcrResult.OcrResultElement
    OcrResult.OcrResultTextElement
    OcrResult.Line
    Implements
    IronSoftware.Abstractions.Pdf.IDocumentTextObject
    IronSoftware.Abstractions.Pdf.IBoundedPdfDocumentObject
    IronSoftware.Abstractions.Pdf.IPdfDocumentObject
    IronSoftware.Abstractions.IDocumentObject
    IronSoftware.Abstractions.IBounded
    IronSoftware.ITransformable
    IronSoftware.Abstractions.IColored
    System.ICloneable
    Inherited Members
    OcrResult.OcrResultTextElement.ToString()
    OcrResult.OcrResultTextElement.Clone()
    OcrResult.OcrResultTextElement.TextDirection
    OcrResult.OcrResultTextElement.Text
    OcrResult.OcrResultTextElement.Confidence
    OcrResult.OcrResultTextElement.PageIndex
    OcrResult.OcrResultTextElement.PdfDocumentId
    OcrResult.OcrResultTextElement.ObjNum
    OcrResult.OcrResultTextElement.Contents
    OcrResult.OcrResultTextElement.Left
    OcrResult.OcrResultTextElement.Right
    OcrResult.OcrResultTextElement.Top
    OcrResult.OcrResultTextElement.Bottom
    OcrResult.OcrResultTextElement.Color
    OcrResult.OcrResultTextElement.BoundingBox
    OcrResult.OcrResultTextElement.Scale
    OcrResult.OcrResultTextElement.Translate
    OcrResult.OcrResultTextElement.Matrix
    OcrResult.OcrResultElement.ToBitmap(OcrInput)
    OcrResult.OcrResultElement.Width
    OcrResult.OcrResultElement.Height
    OcrResult.OcrResultElement.X
    OcrResult.OcrResultElement.Y
    OcrResult.OcrResultElement.Location
    Namespace: IronOcr
    Assembly: IronOcr.dll
    Syntax
    public class Line : OcrResult.OcrResultTextElement

    A single line of recognized text, with the words and characters that make it up, is exposed through OcrResult.Line. It sits between paragraphs and words in the IronOCR result tree, so it is the level you read when you want text grouped the way it appears on the page, line by line, rather than as one flat string or as individual glyphs.

    You obtain lines by walking an OcrResult from IronTesseract.Read: enumerate a page's paragraphs and their Lines, or read the Lines array on a Block. Each line carries the inherited Text and Confidence from OcrResult.OcrResultTextElement, plus LineNumber for its one-based position within the result. From a line you can drill down with the Words and Characters arrays, or move up to the containing Block and Paragraph fields, which keeps navigation in both directions without re-reading the document.

    For layout-sensitive work the line adds geometry beyond the inherited bounding box. BaselineAngle reports the angle at which the line slopes, and BaselineOffset gives the pixel offset that defines that slope, both helpful when a scan is skewed and you need to measure or correct orientation before further processing. Reading Text per line is the common path; the Words and Characters arrays are there when you need to go finer within a line you have already located, and the Block and Paragraph fields let you confirm which region a given line belongs to.

    using IronOcr;
    
    var ocr = new IronTesseract();
    using var input = new OcrInput("document.png");
    OcrResult result = ocr.Read(input);
    foreach (OcrResult.Line line in result.Pages[0].Lines)
        Console.WriteLine($"{line.LineNumber}: {line.Text}");

    The working with OCR results how-to walks the result tree from pages to lines to words, the detect page rotation how-to covers handling skewed scans, and the results objects example reads line-level text from a scan.

    Fields

    BaselineAngle

    Angle, in radians, at which this line of text slopes (derived from the end points of the line's baseline).

    Declaration
    public double BaselineAngle
    Field Value
    Type Description
    System.Double

    BaselineOffset

    Vertical pixel offset from the bottom of this line's bounding box to its baseline (negative when the line has descenders such as g, j, p, q or y). This is not a slope; use BaselineAngle for the line's skew.

    Declaration
    public double BaselineOffset
    Field Value
    Type Description
    System.Double

    Block

    The Block of text which contains this line.

    Declaration
    public OcrResult.Block Block
    Field Value
    Type Description
    OcrResult.Block

    Paragraph

    The Paragraph which contains this line of text.

    Declaration
    public OcrResult.Paragraph Paragraph
    Field Value
    Type Description
    OcrResult.Paragraph

    Properties

    Characters

    Every symbol (char) contained within this Line. In order of appearance.

    Declaration
    public OcrResult.Character[] Characters { get; }
    Property Value
    Type Description
    OcrResult.Character[]

    LineNumber

    One based line number (identified) within this OcrResult object.

    Declaration
    public int LineNumber { get; }
    Property Value
    Type Description
    System.Int32

    Words

    Every OcrResult.Word contained within this Line. In order of appearance.

    Declaration
    public OcrResult.Word[] Words { get; }
    Property Value
    Type Description
    OcrResult.Word[]

    Implements

    IronSoftware.Abstractions.Pdf.IDocumentTextObject
    IronSoftware.Abstractions.Pdf.IBoundedPdfDocumentObject
    IronSoftware.Abstractions.Pdf.IPdfDocumentObject
    IronSoftware.Abstractions.IDocumentObject
    IronSoftware.Abstractions.IBounded
    IronSoftware.ITransformable
    IronSoftware.Abstractions.IColored
    System.ICloneable

    Inherited members

    ToString()
    Clone()
    TextDirection
    Text
    Confidence
    PageIndex
    PdfDocumentId
    ObjNum
    Contents
    Left
    Right
    Top
    Bottom
    Color
    BoundingBox
    Scale
    Translate
    Matrix
    ToBitmap(OcrInput)
    Width
    Height
    X
    Y
    Location
    ☀
    ☾
    Downloads
    • Download with Nuget
    • Start for Free
    In This Article
    Back to top
    Install with Nuget