List PDF Form Fields and Export Them as JSON
A PDF form inspector reads the AcroForm dictionary of a PDF and lists every interactive field it defines: the field's fully qualified name, its type, and its current value. This tool shows that list as a table, exports it as JSON or CSV, and can fill the form in bulk from a JSON file you upload, all locally in your browser.
Knowing a form's real field names is the prerequisite for any kind of automated filling — whether you script it with pdftk or Python, feed data from a database, or use the bulk-fill built into this page. The intended workflow has three steps: load the PDF and read the table, export the JSON and edit the value entries in any text editor, then run the tool again with both the PDF and your edited JSON to download a filled copy. The CSV export exists for the human side of the job: auditing a form, documenting it, or handing the field list to a colleague in a spreadsheet.
How it works
Interactive PDF forms are defined by an AcroForm dictionary referenced from the document catalog. It holds an array of field objects, and each field is itself a dictionary: /T is the partial name, /FT the field type (/Tx text, /Btn button or checkbox, /Ch choice), and /V the current value. Fields can nest, in which case the fully qualified name is the dot-joined chain of parent names, such as applicant.address.city — that is the name automation tools must use, and it is what the table shows.
The inspector uses pdf-lib to parse this structure. It walks the field array, resolves each field's qualified name, classifies its type, and reads its value: the string in /V for text fields, the on/off appearance state for checkboxes and radio groups, and the selected export value for dropdowns and lists. The result is presented verbatim — no interpretation, no reformatting — because exactness is the point of an inspector.
Bulk-filling reverses the read. Your JSON file is parsed into name-value pairs; for each pair whose key matches a qualified field name, pdf-lib sets the field's /V entry and regenerates the field's appearance stream — the small piece of drawing code viewers show when the field is not focused. Regenerating appearances matters: a value written without one can look blank in viewers that do not rebuild appearances themselves. Keys that match no field are reported and skipped, so a typo cannot silently corrupt the form. The filled fields stay interactive; if you want the values fused permanently into the page so they can no longer be edited, run the result through the flatten tool afterwards.
Worked example: filling a 43-field application form
Take a real-world case: a 6-page government application PDF, 1.9 MB, containing 43 AcroForm fields — 31 text fields, 9 checkboxes, and 3 dropdowns. Inspecting it takes under a second and the JSON export is a 4 KB file listing all 43 entries. In a text editor you fill in the 28 values that apply (name, address, dates, three checkboxes set to true, one dropdown set to its export value "DE") and leave the rest empty. Re-running the tool with the PDF plus this JSON produces a filled 1.9 MB PDF in about a second; file size barely changes because only 28 small value strings and their appearance streams were added. Compare that to typing the same 28 values into a viewer by hand — and the JSON can be reused for the next applicant with only the changed values edited.
Frequently asked questions
How do I find the field names in a PDF form?
Load the PDF into this inspector and every AcroForm field appears in a table with its exact internal name, type, and current value. These are the names you need for scripted filling with tools like pdftk, Python, or this page's own JSON import.
Can I fill many PDF form fields at once from a file?
Yes. Export the field list as JSON, edit the value entries in any text editor, then load the PDF again together with the edited JSON. Every field whose name matches a JSON key is set to that value and you download the filled PDF.
Why does my PDF show no form fields in the inspector?
The document has no AcroForm dictionary, so its blanks are just printed lines, not interactive fields. That is common with scanned forms and some XFA-based forms; you would need to add real fields or type over the page with an editor instead.
What is the difference between the JSON and CSV exports?
Both contain the same field names, types, and values. JSON is the round-trip format the bulk-fill step reads back, while CSV opens directly in a spreadsheet for review or documentation and is not used for re-import.
Are checkboxes and dropdowns supported, or only text fields?
All AcroForm field types are listed: text fields, checkboxes, radio groups, dropdowns, option lists, and buttons. When bulk-filling, checkboxes accept true or false and choice fields accept one of their export values.
Is the form data uploaded anywhere during inspection?
No. The PDF and any JSON you provide are parsed by pdf-lib running as JavaScript in your browser, and the filled PDF is assembled on your device. Nothing is transmitted, which matters because forms often contain personal data.