The place kept for a signature
Keep a spot on the page where an electronic signature will settle, with its name and its frame.
Summary
At the foot of a contract, a named place is kept and framed, ready for the seal that settles into it later. That place is the whole of what this draws, and it is already what a sender is usually after: a contract fit to sign, sent to a client who seals it with the software they use every day. Sealing is the step that comes next, and what a signature proves — along with who holds the signing key that makes it — has a page of its own.
Technically
Asked for with
"type": "signature_field"
The field is an empty /FT /Sig field and its /Widget annotation, named, its value left for whoever signs, laid over what the other items drew. The form dictionary has /SigFlags set to SignaturesExist, which is how reading software announces a document as one holding a place to sign, and rendering draws of the widget what the border asks for. The request states its name, its rectangle and the settings shared by every field; the certificate, the timestamp and the signed appearance land in the file afterwards, put there by whatever seals it.
Request schema
Required keys: name, a string; rect. Optional: locks, what signing it freezes: fields, either all, every field of the form and the default, or a set of names written {"only": […]} or {"all_but": […]}; and permits, what stays allowed once it is signed, one of no_changes, form_filling (the form may still be filled in) or annotating, an entry that arrived with PDF 2.0 and so needs "version": "2.0". Optional, shared by every field: read_only, required, no_export, booleans at false; background, the colour behind it; border, an object with a required width, a color (default black, given in light) and a style of "solid" (default), {"dashed": {"lengths": …}}, "beveled", "inset" or "underline"; tooltip and description, strings, absent writing no such entry; mapping_name, a string, the name a submitted form reports the field under; flags, the flag word described on the text field page, absent printing the field and saying nothing else; triggers, one action per moment, the ten of them listed on the text field page; pages, an array of one-based integers, default empty; relative_to. Cross refusal: a CMYK or named-space colour in border.color.
A whole request that creates a PDF
{
"version": "2.0",
"items": [
{
"type": "signature_field",
"name": "signature",
"locks": { "fields": "all", "permits": "no_changes" },
"rect": {"llx": 72, "lly": 120, "urx": 272, "ury": 180},
"border": {"width": 0.75}
}
]
}
Form fields
A field the reader types into A box the reader ticks A list the reader picks from Several buttons, one answer A button the reader presses
Where to go next
Every JSON key of a request, in one page The other twenty-two things you can draw