- Shipped
- November 12, 2026 at 9:48 PM UTC
- Author
- Kamo
- Commit
- 0868970
A signed W-9 came out looking blank: the flattened PDF kept the IRS form's /AcroForm (with /XFA) and its 23 widgets, and every browser viewer drew those empty, editable boxes over the stamped values. The flatten now strips the form layer after stamping: the AcroForm, NeedsRendering, every Widget annotation and the structure tree's references to them, plus the now-invalid usage-rights signature and the form's document JavaScript. Links and other annotations stay. Values were stamped as raw text whatever the field was, so a ticked checkbox printed the word "true". Stamping now reads the DESIGN field's type: checkbox and toggle draw a tick, a single-option radio (the AcroForm-import / W-9 line 3a shape) is marked only when the group chose its option, a multi-option radio is drawn as the signer saw it, dropdown and multi-select show option labels, and a text area wraps inside its box. signed_<uid> now always answers: an executed copy is served with any form layer an older flatten left in it stripped (the stored bytes are untouched), and an envelope still waiting on a later signer gets an unstored flatten of the values captured so far, with no certificate. Nobody signed yet means the source.
