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}
    }
  ]
}

The line that sends it, in three languages

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

See the prices See the examples