About Extract form data
Extract form data reads the values out of filled PDF forms and hands you a spreadsheet or a JSON file. Drop in as many PDFs as you like — each one becomes its own record — then pick CSV or JSON and choose the shape: one row per field, giving a tidy long table of filename, fieldName, fieldType and fieldValue, or one row per file with every field name as its own column. It is the quickest route from a folder of returned application forms, timesheets, survey responses or expense claims to something you can sort and pivot. Also searched as exporting PDF form data, AcroForm to CSV, or reading PDF field values into a spreadsheet.
Extract form data specs
| Price | Free ($0) — no paid tier |
|---|---|
| Account | Not required |
| Watermark | None |
| Where it runs | In your browser, on your device |
| File upload | No file is uploaded |
| Input | Filled PDF forms (1 or more files) |
| Output | CSV or JSON |
| File size limit | Limited only by your device's memory |
| Works offline after the page loads | Yes |
How to use Extract form data
Drop in the filled PDFs
Drop one or many PDFs onto the upload area. Each row shows how many fields were read, how many were skipped, and a notice when a file has no form fields at all.
Pick CSV or JSON
The Output format chips are CSV and JSON. CSV suits spreadsheets; JSON suits scripts and imports that expect structured records.
Pick the pivot
"One row per field" gives a long table with four columns. "One row per file (fields as columns)" gives a wide table with one line per PDF and every field name as a heading.
Check the preview table
The preview renders the first 20 rows or files exactly as they will be exported, and the hint line tells you how many there are in total.
Download the export
Press Download CSV or Download JSON. The file saves as form-data.csv or form-data.json, built entirely in your browser.
Frequently asked questions about Extract form data
What do the CSV columns look like?
The CSV shape depends on which pivot you choose. "One row per field" produces a long table with the header filename,fieldName,fieldType,fieldValue and one line for every field of every PDF you dropped in — the shape that pivots cleanly in a spreadsheet. "One row per file (fields as columns)" produces a wide table whose header is filename followed by every distinct field name found across all your files, sorted alphabetically, with one line per uploaded PDF and an empty cell where a file lacks that field. Both are written RFC 4180 style: CRLF line endings, and any cell containing a comma, a double quote or a line break is wrapped in quotes with internal quotes doubled. The download is named form-data.csv.
What does the JSON export look like?
The JSON mirrors the same two pivots. In long mode the file is a flat array of objects, each carrying filename, fieldName, fieldType and fieldValue keys — the same four values as the long CSV, in the order the fields appear in the documents. In wide mode it is an array of objects shaped as filename plus a fields object mapping each field name to its value, one entry per uploaded PDF in upload order. Wide mode is deliberately an array rather than an object keyed by filename, because two different PDFs both called application.pdf are entirely normal and an object would silently drop one of them. Output is indented with two spaces and saved as form-data.json, and every value is a string.
How are check boxes, radio buttons and multi-select lists represented?
Each field type exports as a predictable string. A check box becomes the lowercase text true or false. A radio group exports the export value of the selected option as stored in the PDF, which is often something like Yes or Choice1 rather than the label printed beside the button, and an empty string when nothing is selected. Dropdowns and multi-select option lists export their selected values joined with the pipe character, so a list with two selections reads Blue|Green. Text fields export verbatim, line breaks included, which is exactly why the CSV quotes them. The fieldType column tells you which rule applied, using the values text, checkbox, radio, dropdown and option-list.
Some of my PDFs were skipped — why?
A file is skipped when it yields no readable values, and the file list states which case applied. "Skipped — no fields" means the PDF has no AcroForm at all, which covers plain documents and scans. "Skipped — no readable fields" means fields were found but none held an exportable value, typically a document whose only widgets are push buttons or signature fields; those are counted separately next to the filename. An XFA form from Adobe LiveCycle also reads as fieldless, so print it to a new PDF in Acrobat Reader first. An encrypted file shows Error instead — remove the password with the Remove PDF password tool and re-drop the unlocked copy. Individual fields that could not be read are counted as unreadable rather than exported as blank.
Why are the field names cryptic strings like Topmostsubform[0].Page1[0].FullName[0]?
That is the field's internal name, and it is what the PDF actually stores. Government and enterprise forms built in Acrobat or LiveCycle generate hierarchical names from the form's own structure, so the label a human reads as "Full name" may be stored as Topmostsubform[0].Page1[0].FullName[0]. Many forms also carry a friendlier alternate name in the TU entry — the tooltip you see when hovering a field in a reader — but that is a separate property and not what identifies the field, so it is not used as a column heading here. If you need the readable labels, open the same PDF in the Fill PDF form tool, which shows each field's tooltip beneath its input. Renaming the columns afterwards in your spreadsheet is usually quickest.
Do the extracted values get uploaded anywhere?
The values never leave your browser — extraction, preview and export all happen in the tab. Each PDF is read from disk with the browser's File API, parsed with pdf-lib, and the CSV or JSON is assembled as a string in memory and handed to your downloads folder. No request carries the data anywhere, because there is no backend behind this page. That is the point for the documents this tool exists for: returned job applications, timesheets, medical intake forms, expense claims and survey responses are exactly the files that should not be uploaded to a stranger's server to be turned into a spreadsheet. The tool is free with no limit on how many PDFs you drop in at once, and adds nothing of its own to the export.
Why in-browser processing matters
Every PDFChamp tool runs inside this page: the file you choose is read by JavaScript in your own browser and is never sent to a server, so nothing is uploaded, queued, or stored anywhere. That removes the upload wait, the processing queue, and the question of what happens to your file afterwards — the about page compares this architecture with server-side PDF tools.
Last updated