feat(tables): extract tables from tagged PDF structure tree (#17)
When a PDF has a well-formed structure tree with /Table > /TR > /TD|TH elements linked to MCIDs, build tables directly from the semantic hierarchy. Runs as highest-priority detection (step 0) before rect-based, line-based, and heuristic strategies. - Add StructTree::extract_tables() to walk the tree and collect table descriptors with row/cell/MCID info - Add detect_tables_from_struct_tree() to match MCIDs to TextItems - Reject tables with <30% MCID cell coverage (stale structure trees) - Update 2013-app2 snapshot (struct-tree gives valid but different column ordering) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
61a4c7a088
commit
b6764e7ca9
@@ -5,6 +5,7 @@
|
||||
mod detect_heuristic;
|
||||
mod detect_lines;
|
||||
mod detect_rects;
|
||||
mod detect_struct;
|
||||
mod financial;
|
||||
mod format;
|
||||
mod grid;
|
||||
@@ -13,6 +14,7 @@ pub use detect_heuristic::detect_tables;
|
||||
pub use detect_lines::detect_tables_from_lines;
|
||||
pub(crate) use detect_rects::cluster_rects;
|
||||
pub use detect_rects::{detect_tables_from_rects, RectHintRegion};
|
||||
pub use detect_struct::detect_tables_from_struct_tree;
|
||||
pub use format::table_to_markdown;
|
||||
|
||||
use crate::types::TextItem;
|
||||
|
||||
Reference in New Issue
Block a user