diff --git a/magic_pdf/pdf_parse_union_core_v2.py b/magic_pdf/pdf_parse_union_core_v2.py index 29ca1351..74d93b81 100644 --- a/magic_pdf/pdf_parse_union_core_v2.py +++ b/magic_pdf/pdf_parse_union_core_v2.py @@ -108,6 +108,10 @@ def fill_char_in_spans(spans, all_chars): spans = sorted(spans, key=lambda x: x['bbox'][1]) for char in all_chars: + # 跳过非法bbox的char + x1, y1, x2, y2 = char['bbox'] + if abs(x1 - x2) <= 0.01 or abs(y1 - y2) <= 0.01: + continue for span in spans: if calculate_char_in_span(char['bbox'], span['bbox'], char['c']): span['chars'].append(char) diff --git a/magic_pdf/pre_proc/remove_bbox_overlap.py b/magic_pdf/pre_proc/remove_bbox_overlap.py index 71a05721..35f96a10 100644 --- a/magic_pdf/pre_proc/remove_bbox_overlap.py +++ b/magic_pdf/pre_proc/remove_bbox_overlap.py @@ -70,7 +70,7 @@ def _remove_overlap_between_bboxes(arr): res[i] = None else: keeps[idx] = False - drop_reasons.append(drop_reasons) + drop_reasons.append(drop_reason) if keeps[idx]: res[idx] = v return res, drop_reasons