Search Results for

    Show / Hide Table of Contents

    Class TableObject

    Represents an extracted table with structural information

    Contains the data and metadata for a table extracted from a PDF document.

    Provides convenient methods to access table data and structure.

    Inheritance
    System.Object
    TableObject
    Namespace: IronPdf.Extractions
    Assembly: IronPdf.dll
    Syntax
    public class TableObject : Object

    TableObject is what IronPDF C# code uses for text extraction. It represents an extracted table with structural information Contains the data and metadata for a table extracted from a PDF document.

    TableObject matters when an application needs to configure or invoke text extraction from C# code. The class encapsulates the related options and behavior in a single object that is set up once and reused across render or processing calls. Typical scenarios include batch generation pipelines, templated document workflows, and integration with existing C# document services.

    To use TableObject, instantiate or obtain it from the relevant entry point in the IronPDF C# API. Key properties include BoundingBox, ColumnCount, DataRows, HasHeaders. Assign options or invoke methods on the instance to configure or perform the operation. The access PDF DOM object covers typical usage in C# end to end.

    using IronPdf;
    
    var instance = new TableObject();
    var current = instance.BoundingBox;
    // Read or assign other properties such as ColumnCount, DataRows
    instance.GetCell();

    For the broader workflow, see the metadata guide in the IronPDF C# documentation. For broader context, the text extraction portion of the IronPDF C# API contains related types that work with TableObject directly. TableObject exposes additional members beyond those highlighted above; the reference tables on this page list the full set. In application code, treat TableObject as a configured object that is constructed once and reused across operations rather than instantiated per call. Configuration is generally idempotent: assigning the same property value twice has the same effect as assigning it once. For diagnostic purposes, inspect the relevant TableObject property after each operation to confirm the configured state. See the constructors, properties, and methods tables below for the complete API surface of TableObject.

    Constructors

    TableObject()

    Declaration
    public TableObject()

    Properties

    BoundingBox

    Bounding box of the table on the page

    Represents the physical area occupied by the table.

    Declaration
    public  < 7  b56d8b3 - e75c - 452  b - af2b - e32243b44b60 > PdfRectangle BoundingBox { get; }
    Property Value
    Type Description
    <7b56d8b3-e75c-452b-af2b-e32243b44b60>PdfRectangle

    ColumnCount

    Number of columns in the table

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

    DataRows

    List of data rows in the table

    Contains all non-header rows in the table.

    Declaration
    public List<TableRow> DataRows { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<TableRow>

    HasHeaders

    Indicates whether the table has header rows

    Declaration
    public bool HasHeaders { get; }
    Property Value
    Type Description
    System.Boolean

    HasSpans

    Indicates whether the table contains merged cells (spans)

    Declaration
    public bool HasSpans { get; }
    Property Value
    Type Description
    System.Boolean

    HeaderRows

    List of header rows in the table

    May be empty if the table has no headers.

    Declaration
    public List<TableRow> HeaderRows { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<TableRow>

    PageNumber

    Page number where the table was found (1-based)

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

    RowCount

    Total number of rows in the table (headers + data)

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

    TableId

    Unique identifier for the table

    Format: "table_{pageNumber}_{tableIndex}"

    Declaration
    public string TableId { get; }
    Property Value
    Type Description
    System.String

    TableIndexOnPage

    Index of the table on the page (0-based)

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

    Methods

    GetCell(Int32, Int32)

    Gets a specific cell by row and column indices

    Row and column indices are 0-based.

    Declaration
    public TableCell GetCell(int row, int col)
    Parameters
    Type Name Description
    System.Int32 row

    Row index (0-based)

    System.Int32 col

    Column index (0-based)

    Returns
    Type Description
    TableCell

    TableCell at the specified position

    GetColumnHeaders()

    Gets the column headers as a list of strings

    Returns the text content of the first header row's cells.

    Declaration
    public List<string> GetColumnHeaders()
    Returns
    Type Description
    System.Collections.Generic.List<System.String>

    List of column header strings, or empty list if no headers

    GetDataAsStrings()

    Gets the table data as a list of lists of strings

    Returns the text content of all data rows and their cells.

    Declaration
    public List<List<string>> GetDataAsStrings()
    Returns
    Type Description
    System.Collections.Generic.List<System.Collections.Generic.List<System.String>>

    List of rows, each containing a list of cell text strings

    GetRow(Int32)

    Gets a specific row by index

    Index 0 refers to the first row, which may be a header or data row depending on the table structure.

    Declaration
    public TableRow GetRow(int rowIndex)
    Parameters
    Type Name Description
    System.Int32 rowIndex

    Row index (0-based)

    Returns
    Type Description
    TableRow

    TableRow at the specified index

    Exceptions
    Type Condition
    System.ArgumentOutOfRangeException

    Thrown if the index is out of range

    IsEmpty()

    Checks if the table is empty

    A table is considered empty if it has no rows or all cells in all rows are empty.

    Declaration
    public bool IsEmpty()
    Returns
    Type Description
    System.Boolean

    True if the table is empty, false otherwise

    ☀
    ☾
    Downloads
    • Download with Nuget
    • Start for Free
    In This Article
    Back to top
    Install with Nuget
    %s requires a valid license key for further deployment. Get Trial Below.
    ironsuite
    Blue key in circleGet Started for Free
    30 days full access • No credit card required
    Test in a live environment

    Test in production without watermarks.
    Works wherever you need it to.

    Fully-functional product

    Get 30 days of fully functional product.
    Have it up and running in minutes.

    24/5 technical support

    Full access to our support engineering team during your product trial

    Grey key in circleGet Started for Free
    The trial form was submitted successfully.
    Grey check in circleTrial key delivered
    Your key has been issued and sent to your email.
    Calendar in circleBook Free Live Demo
    No cards • no pitches • no commitments Pick a time for a quick, personalized demo
    Get the most out of your 30-day trial with:

    Live product and key features walk-through

    Project-specific recommendations

    All your questions answered

    Grey key in circleBook Free Live Demo
    Your booking has been completed Check your e-mail for confirmation

    Want to deploy Iron Suite
    to a live project for FREE?

    What’s included?

    • Test in production without watermarks
    • 30 days fully functional product
    • 24/5 technical support during trial
    ironpdf Logo
    ironword Logo
    ironxl Logo
    ironppt Logo
    ironocr Logo
    ironbarcode Logo
    ironqr Logo
    ironprint Logo
    ironzip Logo
    ironwebscraper Logo
    Iron Software sales team
    Online 24/5
    Have Enterprise licensing requirements?
    Request Iron Suite Enterprise trial
    Key in blue circle

    Get your free 30-day Trial Key instantly

    Your trial license will be sent to your email address

    No limitations. 100% unlocked. No credit card.

    bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
    Or
    Key in blue circle

    Complete Your Trial Key Signup

    Tell us a little more about yourself.

    Key in blue circleNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
    Key in blue circle

    Your license key has been delivered to your inbox

    Can't find it? Check your spam folder.

    What’s next?
    Install with NuGet
    Add IronPDF to your project
    Quickstart Guide
    Helpful resources to get started

    Need help getting started?

    Book a Free Live Demo

    See IronPDF in action and get your licensing questions answered, or

    Key in blue circle

    Your demo request is in.

    You'll receive an invite via email shortly.

    What’s next?
    Explore Documentation
    Review Licensing Options
    badge_greencheck_in_yellowcircle
    Thank you
    Your trial key should be in the email.
    If it is not, please contact support@ironsoftware.com
    • Logo Aetna
    • Logo NASA
    • Logo GE
    • Logo Porsche
    • Logo USDA
    • Logo Qatar
    Join Millions of Engineers who’ve tried IronPDF
    Your trial key should be in the email.
    If it is not, please contact support@ironsoftware.com