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
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 |