fix(layout,table): update e2e test

Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com>
This commit is contained in:
Clément Doumouro 2025-07-09 17:00:31 +02:00
parent bba05d1c37
commit 7b4a4457e8
40 changed files with 25443 additions and 23945 deletions

View File

@ -102,12 +102,7 @@ class LayoutModel(BasePageModel):
)
def draw_clusters_and_cells_side_by_side(
self,
conv_res,
page,
clusters,
mode_prefix: str,
show: bool = False,
self, conv_res, page, clusters, mode_prefix: str, show: bool = False
):
"""
Draws a page image side by side with clusters filtered into two categories:
@ -115,9 +110,9 @@ class LayoutModel(BasePageModel):
- Right: Clusters including FORM, KEY_VALUE_REGION, and PICTURE.
Includes label names and confidence scores for each cluster.
"""
page_image = deepcopy(page.image)
scale_x = page_image.width / page.size.width
scale_y = page_image.height / page.size.height
scale_x = page.image.width / page.size.width
scale_y = page.image.height / page.size.height
# Filter clusters for left and right images
exclude_labels = {
DocItemLabel.FORM,
@ -127,8 +122,8 @@ class LayoutModel(BasePageModel):
left_clusters = [c for c in clusters if c.label not in exclude_labels]
right_clusters = [c for c in clusters if c.label in exclude_labels]
# Create a deep copy of the original image for both sides
left_image = page_image
right_image = copy.deepcopy(left_image)
left_image = copy.deepcopy(page.image)
right_image = copy.deepcopy(page.image)
# Draw clusters on both images
draw_clusters(left_image, left_clusters, scale_x, scale_y)
@ -191,10 +186,7 @@ class LayoutModel(BasePageModel):
if settings.debug.visualize_raw_layout:
self.draw_clusters_and_cells_side_by_side(
conv_res,
page,
clusters,
mode_prefix="raw",
conv_res, page, clusters, mode_prefix="raw"
)
# Apply postprocessing
@ -228,10 +220,7 @@ class LayoutModel(BasePageModel):
if settings.debug.visualize_layout:
self.draw_clusters_and_cells_side_by_side(
conv_res,
page,
processed_clusters,
mode_prefix="postprocessed",
conv_res, page, processed_clusters, mode_prefix="postprocessed"
)
yield page

View File

@ -107,10 +107,10 @@ class OcrMacModel(BaseOcrModel):
x2 = x1 + w * im_width
y1 = y2 - h * im_height
left = x1 / self.scale
top = y1 / self.scale
right = x2 / self.scale
bottom = y2 / self.scale
left = x1 / self.scale + ocr_rect.l
top = y1 / self.scale + ocr_rect.t
right = x2 / self.scale + ocr_rect.l
bottom = y2 / self.scale + ocr_rect.t
cells.append(
TextCell(

View File

@ -260,7 +260,7 @@ class TableStructureModel(BasePageModel):
)
new_bbox = _rotate_bbox(
new_cell.to_bounding_box(),
orientation=-cells_orientation,
orientation=cells_orientation,
im_size=scaled_page_im.size,
).model_dump()
tokens.append(

View File

@ -1,11 +1,8 @@
<document>
<subtitle-level-1><location><page_1><loc_33><loc_87><loc_68><loc_91></location>This is a table test</subtitle-level-1>
<paragraph><location><page_1><loc_12><loc_83><loc_61><loc_84></location>The test starts with some random text and then a table image:</paragraph>
<paragraph><location><page_1><loc_45><loc_76><loc_56><loc_77></location>Some column</paragraph>
<paragraph><location><page_1><loc_62><loc_76><loc_78><loc_77></location>Some other column</paragraph>
<paragraph><location><page_1><loc_29><loc_70><loc_37><loc_71></location>Some row</paragraph>
<paragraph><location><page_1><loc_47><loc_70><loc_54><loc_71></location>some cell</paragraph>
<paragraph><location><page_1><loc_65><loc_70><loc_76><loc_71></location>have content</paragraph>
<paragraph><location><page_1><loc_26><loc_64><loc_39><loc_65></location>Some other row</paragraph>
<paragraph><location><page_1><loc_46><loc_64><loc_55><loc_65></location>other don't</paragraph>
<table>
<location><page_1><loc_9><loc_45><loc_70><loc_86></location>
<row_0><col_0><col_header>Vertically merged</col_0><col_1><col_header>Other merged column</col_1><col_2><col_header>Yet another column</col_2></row_0>
<row_1><col_0><body>value</col_0><col_1><body>Some other value</col_1><col_2><body>Yet another value</col_2></row_1>
<row_2><col_0><body>value</col_0><col_1><body>Some other value</col_1><col_2><body>Yet another value</col_2></row_2>
</table>
</document>

View File

@ -27,13 +27,13 @@
"file-info": {
"filename": "ocr_test.pdf",
"filename-prov": null,
"document-hash": "4220c26a23a085eeca7ed3904ae0952e7e73458e65ce19e56170a9ce095b2313",
"document-hash": "0f391d12850f72bb91897f7f3bebfd4a0a8357e2a883ac1f664e32342c04e418",
"#-pages": 1,
"collection-name": null,
"description": null,
"page-hashes": [
{
"hash": "07ff68c95cc6ec01fb38d02dc5d5efc466f3cfbf2e1dcb6c16b4e722d7f9f657",
"hash": "32f328168da3f69890a725c1168799f9ff7337249e98b1f36c12965551477be5",
"model": "default",
"page": 1
}
@ -41,223 +41,307 @@
},
"main-text": [
{
"prov": [
{
"bbox": [
201.26343,
690.10254,
417.96021,
719.14941
],
"page": 1,
"span": [
0,
20
],
"__ref_s3_data": null
}
],
"text": "This is a table test",
"type": "subtitle-level-1",
"payload": null,
"name": "Section-header",
"font": null
},
{
"prov": [
{
"bbox": [
72.0,
655.42273,
376.27319,
667.7117899999998
],
"page": 1,
"span": [
0,
61
],
"__ref_s3_data": null
}
],
"text": "The test starts with some random text and then a table image:",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
275.33333333333337,
601.0,
343.66666666666663,
609.6666666666666
],
"page": 1,
"span": [
0,
11
],
"__ref_s3_data": null
}
],
"text": "Some column",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
381.3333333333333,
601.0,
479.3333333333333,
609.6666666666666
],
"page": 1,
"span": [
0,
17
],
"__ref_s3_data": null
}
],
"text": "Some other column",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
175.0,
554.6666666666667,
225.66666666666669,
563.3333333333333
],
"page": 1,
"span": [
0,
8
],
"__ref_s3_data": null
}
],
"text": "Some row",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
286.0,
554.6666666666667,
333.0,
563.3333333333333
],
"page": 1,
"span": [
0,
9
],
"__ref_s3_data": null
}
],
"text": "some cell",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
398.3333333333333,
554.6666666666667,
463.0,
563.3333333333333
],
"page": 1,
"span": [
0,
12
],
"__ref_s3_data": null
}
],
"text": "have content",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
160.33333333333334,
508.33333333333337,
240.33333333333331,
517.0
],
"page": 1,
"span": [
0,
14
],
"__ref_s3_data": null
}
],
"text": "Some other row",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
283.0,
508.33333333333337,
336.33333333333337,
517.0
],
"page": 1,
"span": [
0,
11
],
"__ref_s3_data": null
}
],
"text": "other don't",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
"name": "Table",
"type": "table",
"$ref": "#/tables/0"
}
],
"figures": [],
"tables": [],
"tables": [
{
"prov": [
{
"bbox": [
69.04969024658203,
277.41973876953125,
551.0990600585938,
524.3504486083984
],
"page": 1,
"span": [
0,
0
],
"__ref_s3_data": null
}
],
"text": "",
"type": "table",
"payload": null,
"#-cols": 3,
"#-rows": 3,
"data": [
[
{
"bbox": [
97.33333333333333,
105.66666666666666,
190.0,
126.33333333333334
],
"spans": [
[
0,
0
]
],
"text": "Vertically merged",
"type": "col_header",
"col": 0,
"col-header": true,
"col-span": [
0,
1
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
232.66666666666666,
105.66666666666666,
364.0,
126.33333333333334
],
"spans": [
[
0,
1
]
],
"text": "Other merged column",
"type": "col_header",
"col": 1,
"col-header": true,
"col-span": [
1,
2
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
406.3333333333333,
105.66666666666666,
518.3333333333333,
121.66666666666666
],
"spans": [
[
0,
2
]
],
"text": "Yet another column",
"type": "col_header",
"col": 2,
"col-header": true,
"col-span": [
2,
3
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
}
],
[
{
"bbox": [
121.66666666666667,
204.33333333333334,
168.66666666666666,
220.0
],
"spans": [
[
1,
0
]
],
"text": "value",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
},
{
"bbox": [
247.0,
188.33333333333331,
349.6666666666667,
204.33333333333334
],
"spans": [
[
1,
1
]
],
"text": "Some other value",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
},
{
"bbox": [
408.3333333333333,
188.33333333333331,
514.0,
204.33333333333334
],
"spans": [
[
1,
2
]
],
"text": "Yet another value",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
}
],
[
{
"bbox": [
121.66666666666667,
284.0,
168.66666666666666,
300.0
],
"spans": [
[
2,
0
]
],
"text": "value",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
},
{
"bbox": [
247.0,
268.0,
349.6666666666667,
284.0
],
"spans": [
[
2,
1
]
],
"text": "Some other value",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
},
{
"bbox": [
408.3333333333333,
268.0,
514.0,
284.0
],
"spans": [
[
2,
2
]
],
"text": "Yet another value",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
}
]
],
"model": null,
"bounding-box": null
}
],
"bitmaps": null,
"equations": [],
"footnotes": [],
"page-dimensions": [
{
"height": 792.0,
"height": 612.0,
"page": 1,
"width": 612.0
"width": 792.0
}
],
"page-footers": [],

View File

@ -1,5 +1,4 @@
| | Column 0 | Column 1 | Column 2 |
|----------------|------------|--------------|------------|
| this is row 0 | some cells | have content | and |
| and row 1 | | other | have |
| and last row 2 | nothing | | inside |
| Vertically merged | Other merged column | Yet another column |
|---------------------|-----------------------|----------------------|
| value | Some other value | Yet another value |
| value | Some other value | Yet another value |

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,8 @@
<document>
<table>
<location><page_1><loc_33><loc_13><loc_88><loc_61></location>
<row_0><col_0><col_header>inside</col_0><col_1><body></col_1><col_2><col_header>nothing</col_2><col_3><col_header>and last row 2</col_3></row_0>
<row_1><col_0><body>have</col_0><col_1><body>other</col_1><col_2><body></col_2><col_3><body>and row 1</col_3></row_1>
<row_2><col_0><body>and</col_0><col_1><body>have content</col_1><col_2><body>some cells</col_2><col_3><body>this is row 0</col_3></row_2>
<row_3><col_0><body>Column 2</col_0><col_1><body>Column 1</col_1><col_2><body>Column 0</col_2><col_3><body></col_3></row_3>
<location><page_1><loc_30><loc_14><loc_91><loc_55></location>
<row_0><col_0><col_header>Vertically merged</col_0><col_1><col_header>Other merged column</col_1><col_2><col_header>Yet another column</col_2></row_0>
<row_1><col_0><body>value</col_0><col_1><body>Some other value</col_1><col_2><body>Yet another value</col_2></row_1>
<row_2><col_0><body>value</col_0><col_1><body>Some other value</col_1><col_2><body>Yet another value</col_2></row_2>
</table>
</document>

View File

@ -27,13 +27,13 @@
"file-info": {
"filename": "ocr_test_rotated_180.pdf",
"filename-prov": null,
"document-hash": "687553cff95da8e2898fa50a68986ee2a3735ba5d287615e03c0d40fd3b33758",
"document-hash": "361fa0fc8db9c3a973d316d08509ac78cc0e7f81dea94358319092640d439ca0",
"#-pages": 1,
"collection-name": null,
"description": null,
"page-hashes": [
{
"hash": "9e7213c0aa5ff85dfdb9a5b7566dfd229a4c5b8a4e289dd68655ddb1197c3b1f",
"hash": "ab89ee70d4aee0b8dc5ed72ad42e16e98a8ec9c2eea1e03d99b50c25bbc5a806",
"model": "default",
"page": 1
}
@ -44,52 +44,6 @@
"name": "Table",
"type": "table",
"$ref": "#/tables/0"
},
{
"prov": [
{
"bbox": [
238.78076,
124.28821000000005,
540.0,
136.57727
],
"page": 1,
"span": [
0,
71
],
"__ref_s3_data": null
}
],
"text": "ehT t se t w strats it modnar emos h t xe t dna t a neh t elba i egam :",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"prov": [
{
"bbox": [
194.03979,
72.85058600000002,
410.73657,
101.89746000000002
],
"page": 1,
"span": [
0,
20
],
"__ref_s3_data": null
}
],
"text": "tset elbat a si sihT",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
}
],
"figures": [],
@ -98,10 +52,10 @@
"prov": [
{
"bbox": [
112.69406127929688,
163.70050048828125,
470.0718078613281,
302.27655029296875
240.90093994140625,
87.64955139160156,
722.950309753418,
334.58026123046875
],
"page": 1,
"span": [
@ -119,22 +73,39 @@
"data": [
[
{
"bbox": null,
"bbox": [
97.33333333333337,
105.66666666666669,
190.0,
126.33333333333337
],
"spans": [
[
0,
0
]
],
"text": "",
"type": "body"
"text": "Vertically merged",
"type": "col_header",
"col": 0,
"col-header": true,
"col-span": [
0,
1
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
303.0,
508.3333333333333,
329.0,
517.0
232.33333333333326,
105.66666666666669,
363.6666666666667,
126.33333333333337
],
"spans": [
[
@ -142,7 +113,7 @@
1
]
],
"text": "other don't",
"text": "Other merged column",
"type": "col_header",
"col": 1,
"col-header": true,
@ -159,10 +130,10 @@
},
{
"bbox": [
422.6666666666667,
508.3333333333333,
451.6666666666667,
517.0
406.3333333333333,
105.66666666666669,
518.0,
121.66666666666663
],
"spans": [
[
@ -170,7 +141,7 @@
2
]
],
"text": "Some other row",
"text": "Yet another column",
"type": "col_header",
"col": 2,
"col-header": true,
@ -189,10 +160,10 @@
[
{
"bbox": [
190.0,
554.6666666666666,
213.66666666666666,
563.3333333333334
121.66666666666663,
204.0,
168.66666666666663,
220.0
],
"spans": [
[
@ -200,8 +171,8 @@
0
]
],
"text": "have content",
"type": "row_header",
"text": "value",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
@ -209,7 +180,7 @@
1
],
"row": 1,
"row-header": true,
"row-header": false,
"row-span": [
1,
2
@ -217,10 +188,10 @@
},
{
"bbox": [
299.0,
554.6666666666666,
326.33333333333337,
561.0
247.0,
188.0,
349.6666666666667,
204.0
],
"spans": [
[
@ -228,7 +199,7 @@
1
]
],
"text": "some cell",
"text": "Some other value",
"type": "body",
"col": 1,
"col-header": false,
@ -246,9 +217,9 @@
{
"bbox": [
408.3333333333333,
554.6666666666666,
437.3333333333333,
563.3333333333334
188.0,
514.0,
204.0
],
"spans": [
[
@ -256,7 +227,7 @@
2
]
],
"text": "Some row",
"text": "Yet another value",
"type": "body",
"col": 2,
"col-header": false,
@ -275,10 +246,10 @@
[
{
"bbox": [
201.66666666666669,
601.0,
230.66666666666666,
609.6666666666666
121.66666666666663,
284.0,
168.66666666666663,
300.0
],
"spans": [
[
@ -286,8 +257,8 @@
0
]
],
"text": "Some other column",
"type": "row_header",
"text": "value",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
@ -295,7 +266,7 @@
1
],
"row": 2,
"row-header": true,
"row-header": false,
"row-span": [
2,
3
@ -303,10 +274,10 @@
},
{
"bbox": [
308.0,
601.0,
337.0,
609.6666666666666
247.0,
268.0,
349.6666666666667,
284.0
],
"spans": [
[
@ -314,7 +285,7 @@
1
]
],
"text": "Some column",
"text": "Some other value",
"type": "body",
"col": 1,
"col-header": false,
@ -330,15 +301,32 @@
]
},
{
"bbox": null,
"bbox": [
408.3333333333333,
268.0,
514.0,
284.0
],
"spans": [
[
2,
2
]
],
"text": "",
"type": "body"
"text": "Yet another value",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
}
]
],
@ -351,9 +339,9 @@
"footnotes": [],
"page-dimensions": [
{
"height": 792.0,
"height": 612.0,
"page": 1,
"width": 612.0
"width": 792.0
}
],
"page-footers": [],

View File

@ -1,5 +1,4 @@
| inside | | nothing | and last row 2 |
|----------|--------------|------------|------------------|
| have | other | | and row 1 |
| and | have content | some cells | this is row 0 |
| Column 2 | Column 1 | Column 0 | |
| Vertically merged | Other merged column | Yet another column |
|---------------------|-----------------------|----------------------|
| value | Some other value | Yet another value |
| value | Some other value | Yet another value |

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,6 @@
<document>
<table>
<location><page_1><loc_39><loc_33><loc_87><loc_88></location>
<row_0><col_0><body>and last row 2</col_0><col_1><body>and row 1</col_1><col_2><body>this is row 0</col_2><col_3><body></col_3></row_0>
<row_1><col_0><body>nothing</col_0><col_1><body></col_1><col_2><body>some cells</col_2><col_3><body>Column 0</col_3></row_1>
<row_2><col_0><body></col_0><col_1><body>other</col_1><col_2><body>have content</col_2><col_3><body>Column 1</col_3></row_2>
<row_3><col_0><body>inside</col_0><col_1><body>have</col_1><col_2><body>and</col_2><col_3><body>Column 2</col_3></row_3>
<location><page_1><loc_45><loc_30><loc_86><loc_91></location>
<row_0><col_0><body>Yet another value</col_0><col_1><body>Some other value</col_1><col_2><body>value</col_2></row_0>
</table>
</document>

View File

@ -27,13 +27,13 @@
"file-info": {
"filename": "ocr_test_rotated_270.pdf",
"filename-prov": null,
"document-hash": "6fefac7b5b41551979e0acb695ca99549a91784619c82c6095d8130179431437",
"document-hash": "753140dc9b8c39b67c6f6712e2a1de4c364c808ca09d13dd05b79c23192429dc",
"#-pages": 1,
"collection-name": null,
"description": null,
"page-hashes": [
{
"hash": "68730d83582a6ac50587fdba1a8ce6b263d682a0daf984522d4dbe9f9e3d4fbe",
"hash": "c8fa256d58940f76c5e0ec6b65548a2e939f867c2c75d0ee27f5f70ff32a44be",
"model": "default",
"page": 1
}
@ -44,92 +44,18 @@
"name": "Table",
"type": "table",
"$ref": "#/tables/0"
},
{
"prov": [
{
"bbox": [
640.87671,
235.72681,
653.16504,
533.28552
],
"page": 1,
"span": [
0,
49
],
"__ref_s3_data": null
}
],
"text": "heteststartswithsomerandomtextandthenatableimage:",
"type": "paragraph",
"payload": null,
"name": "Text",
"font": null
},
{
"name": "Picture",
"type": "figure",
"$ref": "#/figures/0"
},
{
"prov": [
{
"bbox": [
690.10272,
194.03976,
719.1490499999999,
410.73663
],
"page": 1,
"span": [
0,
20
],
"__ref_s3_data": null
}
],
"text": "This is a table test",
"type": "subtitle-level-1",
"payload": null,
"name": "Section-header",
"font": null
}
],
"figures": [
{
"prov": [
{
"bbox": [
668.9778442382812,
532.5339431762695,
683.4164962768555,
541.4290084838867
],
"page": 1,
"span": [
0,
0
],
"__ref_s3_data": null
}
],
"text": "",
"type": "figure",
"payload": null,
"bounding-box": null
}
],
"figures": [],
"tables": [
{
"prov": [
{
"bbox": [
460.5577697753906,
112.21743774414062,
599.0364074707031,
469.385986328125
277.4178771972656,
240.90216064453125,
524.3541717529297,
722.9614028930664
],
"page": 1,
"span": [
@ -142,9 +68,96 @@
"text": "",
"type": "table",
"payload": null,
"#-cols": 0,
"#-rows": 0,
"data": [],
"#-cols": 3,
"#-rows": 1,
"data": [
[
{
"bbox": [
98.0,
296.6666666666667,
203.66666666666669,
344.0
],
"spans": [
[
0,
0
]
],
"text": "Yet another value",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
262.3333333333333,
296.6666666666667,
365.0,
344.0
],
"spans": [
[
0,
1
]
],
"text": "Some other value",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
443.33333333333337,
312.0,
490.33333333333337,
328.0
],
"spans": [
[
0,
2
]
],
"text": "value",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
}
]
],
"model": null,
"bounding-box": null
}
@ -154,9 +167,9 @@
"footnotes": [],
"page-dimensions": [
{
"height": 612.0,
"height": 792.0,
"page": 1,
"width": 792.0
"width": 612.0
}
],
"page-footers": [],

View File

@ -1,5 +0,0 @@
| and last row 2 | and row 1 | this is row 0 | |
|------------------|-------------|-----------------|----------|
| nothing | | some cells | Column 0 |
| | other | have content | Column 1 |
| inside | have | and | Column 2 |

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,5 @@
<document>
<table>
<location><page_1><loc_13><loc_12><loc_61><loc_67></location>
<row_0><col_0><body>Column 2</col_0><col_1><body>and</col_1><col_2><body>have</col_2><col_3><body>inside</col_3></row_0>
<row_1><col_0><body>Column 1</col_0><col_1><body>have content</col_1><col_2><body>other</col_2><col_3><body></col_3></row_1>
<row_2><col_0><body>Column 0</col_0><col_1><body>some cells</col_1><col_2><body></col_2><col_3><body>nothing</col_3></row_2>
<row_3><col_0><body></col_0><col_1><body>this is row 0</col_1><col_2><body>and row 1</col_2><col_3><body>and last row 2</col_3></row_3>
<location><page_1><loc_14><loc_9><loc_55><loc_70></location>
</table>
</document>

View File

@ -27,13 +27,13 @@
"file-info": {
"filename": "ocr_test_rotated_90.pdf",
"filename-prov": null,
"document-hash": "2fb20caf4f54c878a0b454b496010d92adc6ae1b7f10fbd9ba1ba26260f818a8",
"document-hash": "418ae4425f514f002bd4223ea3003c17f319cbeafd67801732d58f2bedb3bd91",
"#-pages": 1,
"collection-name": null,
"description": null,
"page-hashes": [
{
"hash": "56c847ad7c5ab9f0346a325510af001ab66a9bb45f65ffc7bbfc60c929def7d2",
"hash": "36315c08dc861ecde4be6179d2f155da0519b93e0311c290f8db164f593d36d8",
"model": "default",
"page": 1
}
@ -52,10 +52,10 @@
"prov": [
{
"bbox": [
75.13359832763672,
102.99908447265625,
361.18695068359375,
562.1403198242188
87.64582824707031,
69.0385971069336,
334.5821228027344,
551.0978393554688
],
"page": 1,
"span": [
@ -68,415 +68,9 @@
"text": "",
"type": "table",
"payload": null,
"#-cols": 4,
"#-rows": 4,
"data": [
[
{
"bbox": [
105.0718660651769,
304.7354643560275,
119.73306194406335,
369.59883715876185
],
"spans": [
[
0,
0
]
],
"text": "Column 2",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
172.26899264661517,
324.3168597625203,
188.15195177751215,
352.46511670018316
],
"spans": [
[
0,
1
]
],
"text": "and",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
240.68788382926402,
321.869185135892,
256.570842960161,
356.13662847492196
],
"spans": [
[
0,
2
]
],
"text": "have",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
},
{
"bbox": [
312.772072637728,
319.42151173034614,
326.21150018118874,
359.8081389276117
],
"spans": [
[
0,
3
]
],
"text": "inside",
"type": "body",
"col": 3,
"col-header": false,
"col-span": [
3,
4
],
"row": 0,
"row-header": false,
"row-span": [
0,
1
]
}
],
[
{
"bbox": [
105.0718660651769,
419.77616156495424,
119.73306194406335,
483.4156981046677
],
"spans": [
[
1,
0
]
],
"text": "Column 1",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
},
{
"bbox": [
172.26898999097682,
408.7616301134671,
185.70842261785268,
495.6540658231026
],
"spans": [
[
1,
1
]
],
"text": "have content",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
},
{
"bbox": [
240.68788377535307,
433.23837164942523,
255.34907711253194,
468.729651251476
],
"spans": [
[
1,
2
]
],
"text": "other",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 1,
"row-header": false,
"row-span": [
1,
2
]
},
{
"bbox": null,
"spans": [
[
1,
3
]
],
"text": "",
"type": "body"
}
],
[
{
"bbox": [
105.07186605295925,
532.3691850430223,
119.73306193184567,
597.2325578457567
],
"spans": [
[
2,
0
]
],
"text": "Column 0",
"type": "body",
"col": 0,
"col-header": false,
"col-span": [
0,
1
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
},
{
"bbox": [
172.26899069197702,
529.9215107729757,
186.93018720629036,
600.9040699770771
],
"spans": [
[
2,
1
]
],
"text": "some cells",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
},
{
"bbox": null,
"spans": [
[
2,
2
]
],
"text": "",
"type": "body"
},
{
"bbox": [
311.49999737299976,
536.775000315586,
332.5000022770002,
592.9083316144141
],
"spans": [
[
2,
3
]
],
"text": "nothing",
"type": "body",
"col": 3,
"col-header": false,
"col-span": [
3,
4
],
"row": 2,
"row-header": false,
"row-span": [
2,
3
]
}
],
[
{
"bbox": null,
"spans": [
[
3,
0
]
],
"text": "",
"type": "body"
},
{
"bbox": [
172.2689900422697,
638.8430233885732,
186.93018846286373,
719.6162777831045
],
"spans": [
[
3,
1
]
],
"text": "this is row 0",
"type": "body",
"col": 1,
"col-header": false,
"col-span": [
1,
2
],
"row": 3,
"row-header": false,
"row-span": [
3,
4
]
},
{
"bbox": [
240.68788248006402,
647.4098827174411,
255.34907835895044,
712.2732555201754
],
"spans": [
[
3,
2
]
],
"text": "and row 1",
"type": "body",
"col": 2,
"col-header": false,
"col-span": [
2,
3
],
"row": 3,
"row-header": false,
"row-span": [
3,
4
]
},
{
"bbox": [
313.9938353514431,
633.9476737903873,
327.43326861374595,
725.735464724632
],
"spans": [
[
3,
3
]
],
"text": "and last row 2",
"type": "body",
"col": 3,
"col-header": false,
"col-span": [
3,
4
],
"row": 3,
"row-header": false,
"row-span": [
3,
4
]
}
]
],
"#-cols": 0,
"#-rows": 0,
"data": [],
"model": null,
"bounding-box": null
}
@ -486,9 +80,9 @@
"footnotes": [],
"page-dimensions": [
{
"height": 842.0,
"height": 792.0,
"page": 1,
"width": 595.0
"width": 612.0
}
],
"page-footers": [],

View File

@ -1,5 +0,0 @@
| Column 2 | and | have | inside |
|------------|---------------|-----------|----------------|
| Column 1 | have content | other | |
| Column 0 | some cells | | nothing |
| | this is row 0 | and row 1 | and last row 2 |

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
<doctag><otsl><loc_61><loc_63><loc_333><loc_303><ecel><ched>Column 0<ched>Column 1<ched>Column 2<nl><rhed>this is row 0<fcel>some cells<fcel>have content<fcel>and<nl><rhed>and row 1<ecel><fcel>other<fcel>have<nl><rhed>and last row 2<fcel>nothing<ecel><fcel>inside<nl></otsl>
<doctag><otsl><loc_44><loc_72><loc_348><loc_273><ched>Vertically merged<ched>Other merged column<ched>Yet another column<nl><fcel>value<fcel>Some other value<fcel>Yet another value<nl><fcel>value<fcel>Some other value<fcel>Yet another value<nl></otsl>
</doctag>

View File

@ -4,7 +4,7 @@
"name": "ocr_test",
"origin": {
"mimetype": "application/pdf",
"binary_hash": 3906211175708501508,
"binary_hash": 14846044078209721391,
"filename": "ocr_test.pdf"
},
"furniture": {
@ -41,10 +41,10 @@
{
"page_no": 1,
"bbox": {
"l": 103.33,
"t": 519.86,
"r": 560.95,
"b": 234.07,
"l": 69.05,
"t": 524.35,
"r": 551.1,
"b": 277.42,
"coord_origin": "BOTTOMLEFT"
},
"charspan": [
@ -60,67 +60,29 @@
"table_cells": [
{
"bbox": {
"l": 245.02,
"t": 106.57,
"r": 307.59,
"b": 120.29,
"l": 97.33,
"t": 105.67,
"r": 190.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Column 0",
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Vertically merged",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 358.65,
"t": 106.57,
"r": 421.22,
"b": 120.29,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Column 1",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 472.27,
"t": 106.57,
"r": 534.84,
"b": 120.29,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 2",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 123.52,
"t": 174.07,
"r": 200.67,
"b": 187.79,
"l": 121.67,
"t": 204.33,
"r": 168.67,
"b": 220.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -129,74 +91,17 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "this is row 0",
"column_header": false,
"row_header": true,
"row_section": false
},
{
"bbox": {
"l": 241.65,
"t": 174.07,
"r": 310.71,
"b": 187.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "some cells",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 347.4,
"t": 174.07,
"r": 431.1,
"b": 187.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 491.4,
"t": 174.07,
"r": 515.79,
"b": 187.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 130.27,
"t": 242.7,
"r": 194.46,
"b": 256.41,
"l": 121.67,
"t": 284.0,
"r": 168.67,
"b": 300.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -205,17 +110,112 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and row 1",
"text": "value",
"column_header": false,
"row_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 373.27,
"t": 242.7,
"r": 406.59,
"b": 256.41,
"l": 232.67,
"t": 105.67,
"r": 364.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Other merged column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 247.0,
"t": 188.33,
"r": 349.67,
"b": 204.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 247.0,
"t": 268.0,
"r": 349.67,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 406.33,
"t": 105.67,
"r": 518.33,
"b": 121.67,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 408.33,
"t": 188.33,
"r": 514.0,
"b": 204.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 408.33,
"t": 268.0,
"r": 514.0,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -224,110 +224,41 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 486.9,
"t": 242.7,
"r": 518.61,
"b": 256.41,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 116.77,
"t": 315.82,
"r": 207.76,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and last row 2",
"column_header": false,
"row_header": true,
"row_section": false
},
{
"bbox": {
"l": 251.77,
"t": 315.82,
"r": 299.73,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 484.65,
"t": 315.82,
"r": 522.85,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "inside",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
}
],
"num_rows": 4,
"num_cols": 4,
"num_rows": 3,
"num_cols": 3,
"grid": [
[
{
"bbox": {
"l": 97.33,
"t": 105.67,
"r": 190.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "",
"column_header": false,
"text": "Vertically merged",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 245.02,
"t": 106.57,
"r": 307.59,
"b": 120.29,
"l": 232.67,
"t": 105.67,
"r": 364.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -336,17 +267,17 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Column 0",
"text": "Other merged column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 358.65,
"t": 106.57,
"r": 421.22,
"b": 120.29,
"l": 406.33,
"t": 105.67,
"r": 518.33,
"b": 121.67,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -355,26 +286,7 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Column 1",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 472.27,
"t": 106.57,
"r": 534.84,
"b": 120.29,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 2",
"text": "Yet another column",
"column_header": true,
"row_header": false,
"row_section": false
@ -383,10 +295,10 @@
[
{
"bbox": {
"l": 123.52,
"t": 174.07,
"r": 200.67,
"b": 187.79,
"l": 121.67,
"t": 204.33,
"r": 168.67,
"b": 220.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -395,17 +307,17 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "this is row 0",
"text": "value",
"column_header": false,
"row_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 241.65,
"t": 174.07,
"r": 310.71,
"b": 187.79,
"l": 247.0,
"t": 188.33,
"r": 349.67,
"b": 204.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -414,17 +326,17 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "some cells",
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 347.4,
"t": 174.07,
"r": 431.1,
"b": 187.79,
"l": 408.33,
"t": 188.33,
"r": 514.0,
"b": 204.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -433,26 +345,7 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 491.4,
"t": 174.07,
"r": 515.79,
"b": 187.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
@ -461,10 +354,10 @@
[
{
"bbox": {
"l": 130.27,
"t": 242.7,
"r": 194.46,
"b": 256.41,
"l": 121.67,
"t": 284.0,
"r": 168.67,
"b": 300.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -473,29 +366,36 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and row 1",
"column_header": false,
"row_header": true,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 373.27,
"t": 242.7,
"r": 406.59,
"b": 256.41,
"l": 247.0,
"t": 268.0,
"r": 349.67,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 408.33,
"t": 268.0,
"r": 514.0,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -504,97 +404,7 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 486.9,
"t": 242.7,
"r": 518.61,
"b": 256.41,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 116.77,
"t": 315.82,
"r": 207.76,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and last row 2",
"column_header": false,
"row_header": true,
"row_section": false
},
{
"bbox": {
"l": 251.77,
"t": 315.82,
"r": 299.73,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 484.65,
"t": 315.82,
"r": 522.85,
"b": 329.54,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "inside",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
@ -610,8 +420,8 @@
"pages": {
"1": {
"size": {
"width": 842.0,
"height": 595.0
"width": 792.0,
"height": 612.0
},
"page_no": 1
}

View File

@ -1,5 +1,4 @@
| | Column 0 | Column 1 | Column 2 |
|----------------|------------|--------------|------------|
| this is row 0 | some cells | have content | and |
| and row 1 | | other | have |
| and last row 2 | nothing | | inside |
| Vertically merged | Other merged column | Yet another column |
|---------------------|-----------------------|----------------------|
| value | Some other value | Yet another value |
| value | Some other value | Yet another value |

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
<doctag><otsl><loc_167><loc_196><loc_439><loc_436><ched>inside<ecel><ched>nothing<ched>and last row 2<nl><fcel>have<fcel>other<ecel><fcel>and row 1<nl><fcel>and<fcel>have content<fcel>some cells<fcel>this is row 0<nl><fcel>Column 2<fcel>Column 1<fcel>Column 0<ecel><nl></otsl>
<doctag><otsl><loc_152><loc_227><loc_456><loc_428><ched>Vertically merged<ched>Other merged column<ched>Yet another column<nl><fcel>value<fcel>Some other value<fcel>Yet another value<nl><fcel>value<fcel>Some other value<fcel>Yet another value<nl></otsl>
</doctag>

View File

@ -4,7 +4,7 @@
"name": "ocr_test_rotated_180",
"origin": {
"mimetype": "application/pdf",
"binary_hash": 9953198396702586979,
"binary_hash": 16151733167151414937,
"filename": "ocr_test_rotated_180.pdf"
},
"furniture": {
@ -41,10 +41,10 @@
{
"page_no": 1,
"bbox": {
"l": 280.59,
"t": 361.27,
"r": 738.57,
"b": 75.91,
"l": 240.9,
"t": 334.58,
"r": 722.95,
"b": 87.65,
"coord_origin": "BOTTOMLEFT"
},
"charspan": [
@ -60,238 +60,10 @@
"table_cells": [
{
"bbox": {
"l": 534.41,
"t": 474.71,
"r": 596.97,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 420.78,
"t": 474.71,
"r": 483.35,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 307.16,
"t": 474.71,
"r": 369.73,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 641.33,
"t": 407.21,
"r": 718.47,
"b": 420.93,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "this is row 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 531.29,
"t": 407.21,
"r": 600.35,
"b": 420.93,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 410.9,
"t": 407.21,
"r": 494.6,
"b": 420.93,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 326.21,
"t": 407.21,
"r": 350.6,
"b": 420.93,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 647.54,
"t": 338.59,
"r": 711.72,
"b": 352.3,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and row 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 435.41,
"t": 338.59,
"r": 468.73,
"b": 352.3,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 323.39,
"t": 338.59,
"r": 355.1,
"b": 352.3,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 634.24,
"t": 265.46,
"r": 725.22,
"b": 279.18,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and last row 2",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 542.27,
"t": 265.46,
"r": 590.22,
"b": 279.18,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "nothing",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 319.15,
"t": 265.46,
"r": 357.35,
"b": 279.18,
"l": 97.33,
"t": 105.67,
"r": 190.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -300,22 +72,174 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "inside",
"text": "Vertically merged",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 121.67,
"t": 204.0,
"r": 168.67,
"b": 220.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 121.67,
"t": 284.0,
"r": 168.67,
"b": 300.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 232.33,
"t": 105.67,
"r": 363.67,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Other merged column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 247.0,
"t": 188.0,
"r": 349.67,
"b": 204.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 247.0,
"t": 268.0,
"r": 349.67,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 406.33,
"t": 105.67,
"r": 518.0,
"b": 121.67,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 408.33,
"t": 188.0,
"r": 514.0,
"b": 204.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 408.33,
"t": 268.0,
"r": 514.0,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
}
],
"num_rows": 4,
"num_cols": 4,
"num_rows": 3,
"num_cols": 3,
"grid": [
[
{
"bbox": {
"l": 319.15,
"t": 265.46,
"r": 357.35,
"b": 279.18,
"l": 97.33,
"t": 105.67,
"r": 190.0,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -324,29 +248,36 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "inside",
"text": "Vertically merged",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 232.33,
"t": 105.67,
"r": 363.67,
"b": 126.33,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "",
"column_header": false,
"text": "Other merged column",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 542.27,
"t": 265.46,
"r": 590.22,
"b": 279.18,
"l": 406.33,
"t": 105.67,
"r": 518.0,
"b": 121.67,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -355,26 +286,7 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "nothing",
"column_header": true,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 634.24,
"t": 265.46,
"r": 725.22,
"b": 279.18,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and last row 2",
"text": "Yet another column",
"column_header": true,
"row_header": false,
"row_section": false
@ -383,10 +295,10 @@
[
{
"bbox": {
"l": 323.39,
"t": 338.59,
"r": 355.1,
"b": 352.3,
"l": 121.67,
"t": 204.0,
"r": 168.67,
"b": 220.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -395,17 +307,17 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "have",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 435.41,
"t": 338.59,
"r": 468.73,
"b": 352.3,
"l": 247.0,
"t": 188.0,
"r": 349.67,
"b": 204.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -414,38 +326,26 @@
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "",
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 647.54,
"t": 338.59,
"r": 711.72,
"b": 352.3,
"l": 408.33,
"t": 188.0,
"r": 514.0,
"b": 204.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and row 1",
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
@ -454,10 +354,10 @@
[
{
"bbox": {
"l": 326.21,
"t": 407.21,
"r": 350.6,
"b": 420.93,
"l": 121.67,
"t": 284.0,
"r": 168.67,
"b": 300.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -466,17 +366,17 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 410.9,
"t": 407.21,
"r": 494.6,
"b": 420.93,
"l": 247.0,
"t": 268.0,
"r": 349.67,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -485,17 +385,17 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have content",
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 531.29,
"t": 407.21,
"r": 600.35,
"b": 420.93,
"l": 408.33,
"t": 268.0,
"r": 514.0,
"b": 284.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -504,97 +404,7 @@
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 641.33,
"t": 407.21,
"r": 718.47,
"b": 420.93,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "this is row 0",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 307.16,
"t": 474.71,
"r": 369.73,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 420.78,
"t": 474.71,
"r": 483.35,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 534.41,
"t": 474.71,
"r": 596.97,
"b": 488.43,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
@ -610,8 +420,8 @@
"pages": {
"1": {
"size": {
"width": 842.0,
"height": 595.0
"width": 792.0,
"height": 612.0
},
"page_no": 1
}

View File

@ -1,5 +1,4 @@
| inside | | nothing | and last row 2 |
|----------|--------------|------------|------------------|
| have | other | | and row 1 |
| and | have content | some cells | this is row 0 |
| Column 2 | Column 1 | Column 0 | |
| Vertically merged | Other merged column | Yet another column |
|---------------------|-----------------------|----------------------|
| value | Some other value | Yet another value |
| value | Some other value | Yet another value |

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
<doctag><otsl><loc_197><loc_61><loc_437><loc_333><fcel>and last row 2<fcel>and row 1<fcel>this is row 0<ecel><nl><fcel>nothing<ecel><fcel>some cells<fcel>Column 0<nl><ecel><fcel>other<fcel>have content<fcel>Column 1<nl><fcel>inside<fcel>have<fcel>and<fcel>Column 2<nl></otsl>
<doctag><otsl><loc_227><loc_44><loc_428><loc_348><fcel>Yet another value<fcel>Some other value<fcel>value<nl></otsl>
</doctag>

View File

@ -4,7 +4,7 @@
"name": "ocr_test_rotated_270",
"origin": {
"mimetype": "application/pdf",
"binary_hash": 142009988718862333,
"binary_hash": 8365439800722100027,
"filename": "ocr_test_rotated_270.pdf"
},
"furniture": {
@ -41,10 +41,10 @@
{
"page_no": 1,
"bbox": {
"l": 233.88,
"t": 739.02,
"r": 519.9,
"b": 280.96,
"l": 277.42,
"t": 722.96,
"r": 524.35,
"b": 240.9,
"coord_origin": "BOTTOMLEFT"
},
"charspan": [
@ -60,67 +60,10 @@
"table_cells": [
{
"bbox": {
"l": 474.71,
"t": 245.03,
"r": 488.43,
"b": 307.59,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 474.71,
"t": 358.65,
"r": 488.43,
"b": 421.22,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 474.71,
"t": 472.27,
"r": 488.43,
"b": 534.84,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 123.53,
"r": 420.93,
"b": 200.67,
"l": 443.33,
"t": 312.0,
"r": 490.33,
"b": 328.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -129,74 +72,17 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "this is row 0",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 241.65,
"r": 420.93,
"b": 310.71,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 347.4,
"r": 420.93,
"b": 431.1,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 491.4,
"r": 420.93,
"b": 515.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 130.28,
"r": 352.3,
"b": 194.46,
"l": 262.33,
"t": 296.67,
"r": 365.0,
"b": 344.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -205,55 +91,17 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "and row 1",
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 373.27,
"r": 352.3,
"b": 406.59,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 486.9,
"r": 352.3,
"b": 518.61,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 265.46,
"t": 116.78,
"r": 279.18,
"b": 207.76,
"l": 98.0,
"t": 296.67,
"r": 203.67,
"b": 344.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -262,60 +110,22 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and last row 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 265.46,
"t": 251.78,
"r": 279.18,
"b": 299.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 265.46,
"t": 484.65,
"r": 279.18,
"b": 522.85,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "inside",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
}
],
"num_rows": 4,
"num_cols": 4,
"num_rows": 1,
"num_cols": 3,
"grid": [
[
{
"bbox": {
"l": 265.46,
"t": 116.78,
"r": 279.18,
"b": 207.76,
"l": 98.0,
"t": 296.67,
"r": 203.67,
"b": 344.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -324,17 +134,17 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "and last row 2",
"text": "Yet another value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 130.28,
"r": 352.3,
"b": 194.46,
"l": 262.33,
"t": 296.67,
"r": 365.0,
"b": 344.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -343,17 +153,17 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "and row 1",
"text": "Some other value",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 123.53,
"r": 420.93,
"b": 200.67,
"l": 443.33,
"t": 312.0,
"r": 490.33,
"b": 328.0,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
@ -362,239 +172,7 @@
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "this is row 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 265.46,
"t": 251.78,
"r": 279.18,
"b": 299.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 241.65,
"r": 420.93,
"b": 310.71,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 474.71,
"t": 245.03,
"r": 488.43,
"b": 307.59,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 373.27,
"r": 352.3,
"b": 406.59,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 347.4,
"r": 420.93,
"b": 431.1,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 474.71,
"t": 358.65,
"r": 488.43,
"b": 421.22,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 265.46,
"t": 484.65,
"r": 279.18,
"b": 522.85,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "inside",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 338.59,
"t": 486.9,
"r": 352.3,
"b": 518.61,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 407.21,
"t": 491.4,
"r": 420.93,
"b": 515.79,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 474.71,
"t": 472.27,
"r": 488.43,
"b": 534.84,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "Column 2",
"text": "value",
"column_header": false,
"row_header": false,
"row_section": false
@ -610,8 +188,8 @@
"pages": {
"1": {
"size": {
"width": 595.0,
"height": 842.0
"width": 612.0,
"height": 792.0
},
"page_no": 1
}

View File

@ -1,5 +0,0 @@
| and last row 2 | and row 1 | this is row 0 | |
|------------------|-------------|-----------------|----------|
| nothing | | some cells | Column 0 |
| | other | have content | Column 1 |
| inside | have | and | Column 2 |

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
<doctag><otsl><loc_63><loc_166><loc_304><loc_439><fcel>Column 2<fcel>and<fcel>have<fcel>inside<nl><fcel>Column 1<fcel>have content<fcel>other<ecel><nl><fcel>Column 0<fcel>some cells<ecel><fcel>nothing<nl><ecel><fcel>this is row 0<fcel>and row 1<fcel>and last row 2<nl></otsl>
<doctag><otsl><loc_72><loc_152><loc_273><loc_456></otsl>
</doctag>

View File

@ -4,7 +4,7 @@
"name": "ocr_test_rotated_90",
"origin": {
"mimetype": "application/pdf",
"binary_hash": 18214570700708620554,
"binary_hash": 6752841177619701916,
"filename": "ocr_test_rotated_90.pdf"
},
"furniture": {
@ -41,10 +41,10 @@
{
"page_no": 1,
"bbox": {
"l": 75.13,
"t": 562.14,
"r": 361.19,
"b": 103.0,
"l": 87.65,
"t": 551.1,
"r": 334.58,
"b": 69.04,
"coord_origin": "BOTTOMLEFT"
},
"charspan": [
@ -57,550 +57,10 @@
"references": [],
"footnotes": [],
"data": {
"table_cells": [
{
"bbox": {
"l": 106.57,
"t": 534.41,
"r": 120.29,
"b": 596.98,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 106.57,
"t": 420.78,
"r": 120.29,
"b": 483.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 106.57,
"t": 307.16,
"r": 120.29,
"b": 369.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 641.33,
"r": 187.79,
"b": 718.48,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "this is row 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 531.29,
"r": 187.79,
"b": 600.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 410.9,
"r": 187.79,
"b": 494.6,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 326.21,
"r": 187.79,
"b": 350.6,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 647.54,
"r": 256.41,
"b": 711.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "and row 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 435.41,
"r": 256.41,
"b": 468.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 323.39,
"r": 256.41,
"b": 355.1,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 634.24,
"r": 329.54,
"b": 725.23,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and last row 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 542.27,
"r": 329.54,
"b": 590.23,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 319.15,
"r": 329.54,
"b": 357.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "inside",
"column_header": false,
"row_header": false,
"row_section": false
}
],
"num_rows": 4,
"num_cols": 4,
"grid": [
[
{
"bbox": {
"l": 106.57,
"t": 307.16,
"r": 120.29,
"b": 369.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 2",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 326.21,
"r": 187.79,
"b": 350.6,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "and",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 323.39,
"r": 256.41,
"b": 355.1,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "have",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 319.15,
"r": 329.54,
"b": 357.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 0,
"end_row_offset_idx": 1,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "inside",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 106.57,
"t": 420.78,
"r": 120.29,
"b": 483.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 410.9,
"r": 187.79,
"b": 494.6,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "have content",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 435.41,
"r": 256.41,
"b": 468.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "other",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 1,
"end_row_offset_idx": 2,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"bbox": {
"l": 106.57,
"t": 534.41,
"r": 120.29,
"b": 596.98,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "Column 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 531.29,
"r": 187.79,
"b": 600.35,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "some cells",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 542.27,
"r": 329.54,
"b": 590.23,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 2,
"end_row_offset_idx": 3,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "nothing",
"column_header": false,
"row_header": false,
"row_section": false
}
],
[
{
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 0,
"end_col_offset_idx": 1,
"text": "",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 174.07,
"t": 641.33,
"r": 187.79,
"b": 718.48,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 1,
"end_col_offset_idx": 2,
"text": "this is row 0",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 242.7,
"t": 647.54,
"r": 256.41,
"b": 711.73,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 2,
"end_col_offset_idx": 3,
"text": "and row 1",
"column_header": false,
"row_header": false,
"row_section": false
},
{
"bbox": {
"l": 315.82,
"t": 634.24,
"r": 329.54,
"b": 725.23,
"coord_origin": "TOPLEFT"
},
"row_span": 1,
"col_span": 1,
"start_row_offset_idx": 3,
"end_row_offset_idx": 4,
"start_col_offset_idx": 3,
"end_col_offset_idx": 4,
"text": "and last row 2",
"column_header": false,
"row_header": false,
"row_section": false
}
]
]
"table_cells": [],
"num_rows": 0,
"num_cols": 0,
"grid": []
},
"annotations": []
}
@ -610,8 +70,8 @@
"pages": {
"1": {
"size": {
"width": 595.0,
"height": 842.0
"width": 612.0,
"height": 792.0
},
"page_no": 1
}

View File

@ -1,5 +0,0 @@
| Column 2 | and | have | inside |
|------------|---------------|-----------|----------------|
| Column 1 | have content | other | |
| Column 0 | some cells | | nothing |
| | this is row 0 | and row 1 | and last row 2 |

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -57,24 +57,24 @@ def test_e2e_conversions():
engines: List[Tuple[OcrOptions, bool]] = [
(TesseractOcrOptions(), True),
# (TesseractCliOcrOptions(), True),
# (EasyOcrOptions(), False),
# (TesseractOcrOptions(force_full_page_ocr=True), True),
# (TesseractOcrOptions(force_full_page_ocr=True, lang=["auto"]), True),
# (TesseractCliOcrOptions(force_full_page_ocr=True), True),
# (TesseractCliOcrOptions(force_full_page_ocr=True, lang=["auto"]), True),
# (EasyOcrOptions(force_full_page_ocr=True), False),
(TesseractCliOcrOptions(), True),
(EasyOcrOptions(), False),
(TesseractOcrOptions(force_full_page_ocr=True), True),
(TesseractOcrOptions(force_full_page_ocr=True, lang=["auto"]), True),
(TesseractCliOcrOptions(force_full_page_ocr=True), True),
(TesseractCliOcrOptions(force_full_page_ocr=True, lang=["auto"]), True),
(EasyOcrOptions(force_full_page_ocr=True), False),
]
#
# # rapidocr is only available for Python >=3.6,<3.13
# if sys.version_info < (3, 13):
# engines.append((RapidOcrOptions(), False))
# engines.append((RapidOcrOptions(force_full_page_ocr=True), False))
#
# # only works on mac
# if "darwin" == sys.platform:
# engines.append((OcrMacOptions(), True))
# engines.append((OcrMacOptions(force_full_page_ocr=True), True))
# rapidocr is only available for Python >=3.6,<3.13
if sys.version_info < (3, 13):
engines.append((RapidOcrOptions(), False))
engines.append((RapidOcrOptions(force_full_page_ocr=True), False))
# only works on mac
if "darwin" == sys.platform:
engines.append((OcrMacOptions(), False))
engines.append((OcrMacOptions(force_full_page_ocr=True), False))
for ocr_options, supports_rotation in engines:
print(