From 00040fa7704bacbaa23df069aa860616a356efa5 Mon Sep 17 00:00:00 2001 From: "Jorj X. McKie" Date: Wed, 15 Jan 2025 08:50:02 -0400 Subject: [PATCH] Allow arbitrary ON values for CheckBoxes We previously insisted that the ON-values for CheckBoxes are defined as "Yes" in the PDF (the published recommended value). This fix introduces lifts this restriction and supports arbitrary values as ON for check boxes. So a check box turns to OFF if setting its field value to `False` or "Off". It is set to ON if the field value is set to any of 'True`, "Yes" or the respective value coded in the PDF. When checking a check box's value, the return values invariably are either "Off" or the ON-value in the PDF. Which value this is, can be checked via method `on_state()`. --- src/__init__.py | 14 ++++----- tests/resources/test-4055.pdf | Bin 0 -> 71305 bytes tests/test_widgets.py | 55 ++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 tests/resources/test-4055.pdf diff --git a/src/__init__.py b/src/__init__.py index 48f585674..60855c4c3 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -7269,8 +7269,6 @@ def on_state(self): """ if self.field_type not in (2, 5): return None # no checkbox or radio button - if self.field_type == 2: - return "Yes" bstate = self.button_states() if bstate is None: bstate = dict() @@ -17681,13 +17679,13 @@ def GETATTR(name): mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('AS'), on) elif text: mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('AS'), text) - elif field_type == mupdf.PDF_WIDGET_TYPE_CHECKBOX: # will always be "Yes" or "Off" - if value is True or text == 'Yes': - onstate = mupdf.pdf_button_field_on_state(annot_obj) - on = mupdf.pdf_to_name(onstate) + elif field_type == mupdf.PDF_WIDGET_TYPE_CHECKBOX: + onstate = mupdf.pdf_button_field_on_state(annot_obj) + on = onstate.pdf_to_name() + if value in (True, on) or text == 'Yes': mupdf.pdf_set_field_value(pdf, annot_obj, on, 1) - mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('AS'), 'Yes') - mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('V'), 'Yes') + mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('AS'), on) + mupdf.pdf_dict_put_name(annot_obj, PDF_NAME('V'), on) else: mupdf.pdf_dict_put_name( annot_obj, PDF_NAME('AS'), 'Off') mupdf.pdf_dict_put_name( annot_obj, PDF_NAME('V'), 'Off') diff --git a/tests/resources/test-4055.pdf b/tests/resources/test-4055.pdf new file mode 100644 index 0000000000000000000000000000000000000000..693d9f2eb1cee5a64c4bbb81447985d7fbde39ac GIT binary patch literal 71305 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 jug`pZg)b`8D%XyxlV- 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 literal 0 HcmV?d00001 diff --git a/tests/test_widgets.py b/tests/test_widgets.py index d1652b23f..4d5ed6d0a 100644 --- a/tests/test_widgets.py +++ b/tests/test_widgets.py @@ -8,6 +8,7 @@ scriptdir = os.path.abspath(os.path.dirname(__file__)) filename = os.path.join(scriptdir, "resources", "widgettest.pdf") file_2333 = os.path.join(scriptdir, "resources", "test-2333.pdf") +file_4055 = os.path.join(scriptdir, "resources", "test-4055.pdf") doc = pymupdf.open() @@ -379,3 +380,57 @@ def get_widgets_by_name(doc): assert str(e) == 'Annot is not bound to a page' doc.close() + + +def test_4055(): + """Check correct setting of CheckBox "Yes" values. + + Test scope: + * setting on with any of 'True' / 'Yes' / built-in values works + * setting off with any of 'False' or 'Off' works + """ + + # this PDF has digits as "Yes" values. + doc = pymupdf.open(file_4055) + page = doc[0] + + # Round 1: confirm all check boxes are off + for w in page.widgets(types=[2]): + # check that this file doesn't use the "Yes" standard + assert w.on_state() != "Yes" + assert w.field_value == "Off" # all check boxes are off + w.field_value = w.on_state() + w.update() + + page = doc.reload_page(page) # reload page to make sure we start fresh + + # Round 2: confirm that fields contain the PDF's own on values + for w in page.widgets(types=[2]): + # confirm each value coincides with the "Yes" value + assert w.field_value == w.on_state() + w.field_value = False # switch to "Off" using False + w.update() + + page = doc.reload_page(page) + + # Round 3: confirm that 'False' achieved "Off" values + for w in page.widgets(types=[2]): + assert w.field_value == "Off" + w.field_value = True # use True for the next round + w.update() + + page = doc.reload_page(page) + + # Round 4: confirm that setting to True also worked + for w in page.widgets(types=[2]): + assert w.field_value == w.on_state() + w.field_value = "Off" # set off again + w.update() + w.field_value = "Yes" + w.update() + + page = doc.reload_page(page) + + # Round 5: final check: setting to "Yes" also does work + for w in page.widgets(types=[2]): + assert w.field_value == w.on_state()