Critical Fix - Complete Solution:
Previous fix missed image_regions and tables fields, causing incorrect
scale factors when images or tables extended beyond text regions.
User's Scenario (multiple JSON files):
- text_regions: max coordinates ~1850
- image_regions: max coordinates ~2204 (beyond text!)
- tables: max coordinates ~3500 (beyond both!)
- Without checking all fields → scale=1.0 → content out of bounds
Complete Fix:
Now checks ALL possible bbox sources:
1. text_regions - text content
2. image_regions - images/figures/charts (NEW)
3. tables - table structures (NEW)
4. layout - legacy field
5. layout_data.elements - PP-StructureV3 format
Changes:
- backend/app/services/pdf_generator_service.py:
- Add image_regions check (critical for images at X=1434, X=2204)
- Add tables check (critical for tables at Y=3500)
- Add type checks for all fields for safety
- Update warning message to list all checked fields
- backend/test_all_regions.py:
- Test all region types are properly checked
- Validates max dimensions from ALL sources
- Confirms correct scale factors (~0.27, ~0.24)
Test Results:
✓ All 5 regions checked (text + image + table)
✓ OCR dimensions: 2204 x 3500 (from ALL regions)
✓ Scale factors: X=0.270, Y=0.241 (correct!)
This is the COMPLETE fix for the dimension inference bug.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>