fix: properly complete task 2.1 - remove fake table image dependency
Correctly implement task 2.1 by completely removing dependency on fake table_*.png references as originally intended. **Changes**: - Set table image_path to None instead of fake "table_*.png" - Removed backward compatibility fallback that looked for fake table images - Tables now exclusively use element's own bbox for rendering - Kept bbox in images_metadata only for text overlap filtering **Rationale**: The previous implementation kept creating fake table_*.png references and included fallback logic to find them. This defeated the purpose of task 2.1 which was to eliminate dependency on non-existent image files. Now tables render purely based on their own bbox data without any reference to fake image files. **Files Modified**: - backend/app/services/pdf_generator_service.py:251-259 (fake path removed) - backend/app/services/pdf_generator_service.py:874-891 (fallback removed) - openspec/changes/pdf-layout-restoration/tasks.md (accurate status) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -248,14 +248,14 @@ class PDFGeneratorService:
|
|||||||
'page': page_num - 1 # layout uses 0-based
|
'page': page_num - 1 # layout uses 0-based
|
||||||
})
|
})
|
||||||
|
|
||||||
# Also add to images_metadata for overlap filtering
|
# Add bbox to images_metadata for text overlap filtering
|
||||||
# Tables are often rendered as images
|
# (no actual image file, just bbox for filtering)
|
||||||
table_id = element.element_id or f"table_{page_num}_{len(images_metadata)}"
|
|
||||||
images_metadata.append({
|
images_metadata.append({
|
||||||
'image_path': f"table_{table_id}.png",
|
'image_path': None, # No fake table image
|
||||||
'bbox': bbox_polygon,
|
'bbox': bbox_polygon,
|
||||||
'page': page_num - 1, # 0-based for images_metadata
|
'page': page_num - 1, # 0-based for images_metadata
|
||||||
'type': 'table'
|
'type': 'table',
|
||||||
|
'element_id': element.element_id
|
||||||
})
|
})
|
||||||
|
|
||||||
# Handle image/visual elements
|
# Handle image/visual elements
|
||||||
@@ -886,18 +886,8 @@ class PDFGeneratorService:
|
|||||||
bbox_polygon[2][1] # y1
|
bbox_polygon[2][1] # y1
|
||||||
]
|
]
|
||||||
|
|
||||||
# Final fallback: check images_metadata (for backward compatibility)
|
|
||||||
if not table_bbox:
|
if not table_bbox:
|
||||||
for img_meta in images_metadata:
|
logger.warning(f"No bbox found for table element")
|
||||||
img_path = img_meta.get('image_path', '')
|
|
||||||
if 'table' in img_path.lower() and img_meta.get('type') == 'table':
|
|
||||||
bbox = img_meta.get('bbox', [])
|
|
||||||
if bbox and len(bbox) >= 4:
|
|
||||||
table_bbox = bbox
|
|
||||||
break
|
|
||||||
|
|
||||||
if not table_bbox:
|
|
||||||
logger.warning("No bbox found for table element")
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# Handle different bbox formats
|
# Handle different bbox formats
|
||||||
|
|||||||
@@ -21,8 +21,8 @@
|
|||||||
|
|
||||||
### 2. Fix Table Rendering
|
### 2. Fix Table Rendering
|
||||||
- [x] 2.1 Remove dependency on fake image references
|
- [x] 2.1 Remove dependency on fake image references
|
||||||
- [x] 2.1.1 Stop creating fake table_*.png references (kept for backward compatibility)
|
- [x] 2.1.1 Stop creating fake table_*.png references (changed to None)
|
||||||
- [x] 2.1.2 Remove image lookup in draw_table_region (now uses direct bbox first)
|
- [x] 2.1.2 Remove image lookup fallback in draw_table_region
|
||||||
- [x] 2.2 Use direct bbox from table element
|
- [x] 2.2 Use direct bbox from table element
|
||||||
- [x] 2.2.1 Get bbox from table_element.get("bbox")
|
- [x] 2.2.1 Get bbox from table_element.get("bbox")
|
||||||
- [x] 2.2.2 Fallback to bbox_polygon if needed
|
- [x] 2.2.2 Fallback to bbox_polygon if needed
|
||||||
|
|||||||
Reference in New Issue
Block a user