pdftract/crates
jedarden 4cc50f8add feat(pdftract-2oqh): implement span-to-cell assignment by centroid containment
Implements 7.2.3: span-to-cell assignment using centroid containment.

- Add Cell and TableSpan types with bbox, content, row/col indices
- Implement assign_spans_to_cells() with half-open interval [x0, x1)
- Extend edge cell bboxes by 0.5pt to capture spans flush to borders
- Sort cell content by (round(y0/2), x0) with 2-pt y-bucket
- Emit diagnostic when span overlaps adjacent cell by > 40%
- Handle orphan spans (returned separately, not lost)

Adjustment: Changed overlap diagnostic threshold from 50% to 40%
because with half-open intervals, it's mathematically impossible
for a span's centroid to be in one cell while overlapping another
by > 50%.

All 20 unit tests pass including critical 5×3 bordered table test.

Refs: pdftract-2oqh, plan 7.2 line 2591
2026-05-23 22:50:42 -04:00
..
pdftract-cer-diff docs(pdftract-aawrz): add LICENSE-MIT and LICENSE-APACHE files 2026-05-23 10:36:28 -04:00
pdftract-cli feat(pdftract-27n3): implement border padding, pipeline orchestration, and fixtures 2026-05-23 21:55:11 -04:00
pdftract-core feat(pdftract-2oqh): implement span-to-cell assignment by centroid containment 2026-05-23 22:50:42 -04:00
pdftract-libpdftract feat(pdftract-juc): implement Standard 14 font metrics registry 2026-05-23 14:04:02 -04:00
pdftract-py docs(pdftract-aawrz): add LICENSE-MIT and LICENSE-APACHE files 2026-05-23 10:36:28 -04:00