
Fill PDF form
Fill a PDF form in its own fields, or from a JSON object of name to value.
Fill PDF form reads the document's own fields and puts a control in front of you for each one, beside the page, with every field outlined where it sits. Text, checkbox, dropdown, option list and radio group fields are handled. Lock the answers into the page on the way out, or leave the form live.
Questions
How do I write the values?
Drop the PDF and type into the fields it already has. On the command line it is one JSON object mapping field name to value, for example {"Name": "Ada", "Agreed": true}, and the names must match exactly, including case and spaces. Text that is not valid JSON is refused with that example.
How do I find out what the field names are?
You do not have to. The page lists every field the form carries, with its type, its current value and the options it accepts, and clicking one on the preview jumps to its control. For a name you want in writing, Extract PDF form data prints them all as JSON, and a wrong name here is answered with the real ones.
Which field types can it fill?
Text fields, checkboxes, dropdowns, option lists and radio groups. A text field takes any value converted to a string, and null becomes an empty string. A checkbox is checked when the value is truthy, so use true and false. Dropdowns, option lists and radio groups take the option string you want selected.
What happens if I get a name wrong?
A name that does not exist is skipped and reported afterwards under a "no such field" line, so a typo in one entry does not stop the others. If none of your names match, the run fails and the message lists every field name in the form. A PDF with no fields at all gets "this PDF has no form fields to fill".
Can the values be changed afterwards?
Yes, unless you lock them. The result is a live form by default, so the fields stay editable in any reader. Turn on locking and the answers are baked into the page and the fields are gone, which is what you want for a form you are about to send. Your original is untouched either way.
Are the values I type sent anywhere?
No. The JSON never leaves the page. It is parsed in this tab, applied to the document by pdf-lib in a Web Worker, and the result is handed back as a download. Given that form values are usually names, addresses and account numbers, that is the whole reason this tool exists here.