TableRecognitionSettings
Settings for TableRecognition. Values fall back through three levels: document → SDK → built-in default. Writes target the document only when set on a document’s settings, otherwise the SDK globally when set on SdkSettings.
Tags: Vision, Advanced
from nutrient_sdk import TableRecognitionSettingsConstruction
TableRecognitionSettings is accessed through a Document instance for per-document overrides, or via SdkSettings for SDK-wide defaults.
# Per-document overridewith Document.open("input.pdf") as doc: settings = doc.settings.table_recognition_settings settings.some_field = new_value # mutate fields directly
# SDK-wide default (applies to all documents)SdkSettings.table_recognition_settings.some_field = new_valueSettings are configured by writing to fields on the returned object. The settings property itself cannot be reassigned — doc.settings.table_recognition_settings = other_settings is rejected.
Properties
preserve_unmatched_table_words
@propertydef preserve_unmatched_table_words(self) -> bool
@preserve_unmatched_table_words.setterdef preserve_unmatched_table_words(self, value: bool) -> NoneKeeps the text of a table region that the recognized cell structure does not account for. Words that fall inside a detected table but outside every recognized cell (a total line under the last row, a line the structure recognizer merged into a neighbouring row) are exported as plain text lines following the table instead of being dropped. The table itself is unchanged. Disabling it restores the previous behaviour, where such words were silently omitted from the output. The default (true) keeps every recognized word.
Type: bool
Default: true
row_collapse_coverage_divisor
@propertydef row_collapse_coverage_divisor(self) -> int
@row_collapse_coverage_divisor.setterdef row_collapse_coverage_divisor(self, value: int) -> NoneCoverage divisor for the row-collapse trigger: a whole-crop decode is a collapse candidate when decodedRows * divisor <= estimatedTextLines. Larger divisors fire less often. The shipped value is 3; the consumer clamps overrides to the 2..4 range the guard was measured on. The default (3) reproduces the shipped guard.
Type: int
Default: 3
row_collapse_guard_enabled
@propertydef row_collapse_guard_enabled(self) -> bool
@row_collapse_guard_enabled.setterdef row_collapse_guard_enabled(self, value: bool) -> NoneEnables the row-collapse guard on the table split-and-stitch rescue path. When enabled (the default), a whole-crop decode that covers far too few of the zone’s own text lines is treated as a collapse candidate, and the banded re-decode is attempted and gated by row coverage. Disabling it restores the pre-guard split behaviour exactly. The default (true) reproduces the shipped guard.
Type: bool
Default: true
stack_repeated_column_groups
@propertydef stack_repeated_column_groups(self) -> bool
@stack_repeated_column_groups.setterdef stack_repeated_column_groups(self, value: bool) -> NoneRearranges a table whose header repeats across side-by-side column groups. A long list printed as the same columns several times across the page is returned as one table with the groups read one after another, instead of one wide table whose rows join unrelated records. Titles printed over the groups split it into one table per title. The default (false) returns the groups side by side, as printed.
Type: bool
Default: false
target_size
@propertydef target_size(self) -> int
@target_size.setterdef target_size(self, value: int) -> NoneTarget size for image preprocessing (height and width). Default is 448x448 as specified in the TableFormer model.
Type: int
Default: 448