form-filler

Notes

  • 2026-10-30 (entirely-api c96bbab, deployed): fill_form now restores the template’s own AP/N/Yes appearance stream after widget.update(). Montgomery Box1/Box9/Box10 are child annotations under a parent field; setting field_value on one made PyMuPDF replace the county’s vector X with ZapfDingbats glyph “3” in a /WinAnsiEncoding font, which poppler and Chromium render as nothing while /V and /AS both read “Yes”. Box1 (“footings in natural ground”) is ticked for any new footer pour, so Montgomery packages went to DPS with that line blank from the form’s install 2026-04-15 until this fix. Found on blkhse.45832; MAN-9149 (delivered 2026-07-28) shows the same. Dustin’s ruling the same day: do NOT reissue, the affected backlog is parked since the county has flagged nothing; revisit if DPS queries a package. Tests: tests/test_montgomery_checkbox_appearance.py (pixel tests alone cannot catch this because PyMuPDF’s own renderer draws the dingbat; the font assertion is the real guard).