diff --git a/backend/app/services/pdf_generator_service.py b/backend/app/services/pdf_generator_service.py index 759df53..124746a 100644 --- a/backend/app/services/pdf_generator_service.py +++ b/backend/app/services/pdf_generator_service.py @@ -248,14 +248,14 @@ class PDFGeneratorService: 'page': page_num - 1 # layout uses 0-based }) - # Also add to images_metadata for overlap filtering - # Tables are often rendered as images - table_id = element.element_id or f"table_{page_num}_{len(images_metadata)}" + # Add bbox to images_metadata for text overlap filtering + # (no actual image file, just bbox for filtering) images_metadata.append({ - 'image_path': f"table_{table_id}.png", + 'image_path': None, # No fake table image 'bbox': bbox_polygon, 'page': page_num - 1, # 0-based for images_metadata - 'type': 'table' + 'type': 'table', + 'element_id': element.element_id }) # Handle image/visual elements @@ -886,18 +886,8 @@ class PDFGeneratorService: bbox_polygon[2][1] # y1 ] - # Final fallback: check images_metadata (for backward compatibility) if not table_bbox: - for img_meta in images_metadata: - 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") + logger.warning(f"No bbox found for table element") return # Handle different bbox formats diff --git a/openspec/changes/pdf-layout-restoration/tasks.md b/openspec/changes/pdf-layout-restoration/tasks.md index 8a96a3f..6ae47e0 100644 --- a/openspec/changes/pdf-layout-restoration/tasks.md +++ b/openspec/changes/pdf-layout-restoration/tasks.md @@ -21,8 +21,8 @@ ### 2. Fix Table Rendering - [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.2 Remove image lookup in draw_table_region (now uses direct bbox first) + - [x] 2.1.1 Stop creating fake table_*.png references (changed to None) + - [x] 2.1.2 Remove image lookup fallback in draw_table_region - [x] 2.2 Use direct bbox from table element - [x] 2.2.1 Get bbox from table_element.get("bbox") - [x] 2.2.2 Fallback to bbox_polygon if needed