From d7e50434bfa2dfb5e9fbc43e2d7baa9a47dc9193 Mon Sep 17 00:00:00 2001 From: Chuang Men Date: Thu, 20 Nov 2025 09:36:47 +0800 Subject: [PATCH] Improve the performance of table-extraction by judging whether to do "make_chars" or "make_edges" by checking strategy --- src/table.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/table.py b/src/table.py index 9b73782d3..2daad996f 100644 --- a/src/table.py +++ b/src/table.py @@ -2656,15 +2656,19 @@ def find_tables( tset = TableSettings.resolve(settings=settings) page.table_settings = tset - make_chars(page, clip=clip) # create character list of page - make_edges( - page, - clip=clip, - tset=tset, - paths=paths, - add_lines=add_lines, - add_boxes=add_boxes, - ) # create lines and curves + if tset.vertical_strategy == "text" or tset.horizontal_strategy == "text": + make_chars(page, clip=clip) # create character list of page + if tset.vertical_strategy.startswith( + "lines" + ) or tset.horizontal_strategy.startswith("lines"): + make_edges( + page, + clip=clip, + tset=tset, + paths=paths, + add_lines=add_lines, + add_boxes=add_boxes, + ) # create lines and curves tbf = TableFinder(page, settings=tset)