diff --git a/src/utils.py b/src/utils.py index 6afdb45e0..a0cb35413 100644 --- a/src/utils.py +++ b/src/utils.py @@ -954,9 +954,8 @@ def get_label_pno(pgNo, labels): Returns: The label (str) of the page number. Errors return an empty string. """ - # Jorj McKie, 2021-01-06 - - item = [x for x in labels if x[0] <= pgNo][-1] + l = [x for x in labels if x[0] <= pgNo] + item = (pgNo, "") if not l else l[-1] rule = rule_dict(item) prefix = rule.get("prefix", "") style = rule.get("style", "") diff --git a/tests/test_5140.py b/tests/test_5140.py new file mode 100644 index 000000000..fe4ee4d2f --- /dev/null +++ b/tests/test_5140.py @@ -0,0 +1,19 @@ +import pymupdf + + +def test_5140(): + doc = pymupdf.open() + doc.new_page() + doc.new_page() + doc.set_page_labels( + [ + { + "startpage": 1, + "prefix": "", + "firstpagenum": 1, + "style": "D", + } + ] + ) + assert doc[0].get_label() == "" # IndexError: list index out of range + assert doc[1].get_label() == "1"