fix(ocr): use 1-based page numbers to match frontend PDF viewer

The PDF viewer uses 1-based currentPage (starting at 1) but the OCR
engines produced 0-based pageNumber from enumerate(). Annotations
created by OCR were assigned to page 0, which doesn't exist in the
viewer. Change enumerate() to start=1 in both engines and the
streaming endpoint.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-13 10:32:08 +02:00
parent bac67706b9
commit 97e5138934
5 changed files with 15 additions and 15 deletions

View File

@@ -61,8 +61,8 @@ def test_surya_extract_blocks_delegates_to_extract_page_blocks():
blocks = surya.extract_blocks([image1, image2])
assert len(blocks) == 2
assert blocks[0]["pageNumber"] == 0
assert blocks[1]["pageNumber"] == 1
assert blocks[0]["pageNumber"] == 1
assert blocks[1]["pageNumber"] == 2
# ─── Kraken extract_page_blocks ──────────────────────────────────────────────
@@ -128,5 +128,5 @@ def test_kraken_extract_blocks_delegates_to_extract_page_blocks():
blocks = _run_kraken_with_mocks(kraken.extract_blocks, [image1, image2])
assert len(blocks) == 2
assert blocks[0]["pageNumber"] == 0
assert blocks[1]["pageNumber"] == 1
assert blocks[0]["pageNumber"] == 1
assert blocks[1]["pageNumber"] == 2