Extract PDF form data to CSV or JSON

Drop the filled copies of a form. FormFlow reads every answer and lines them up in a spreadsheet — one row per PDF, one column per field.

Drop one or more filled PDF forms

Select several PDFs at once to build one spreadsheet

Processed on your device. Nothing is uploaded.

Turn a stack of returned forms into a spreadsheet

When twenty families send back the same PDF registration form, somebody has to copy every answer into a spreadsheet. The answers are already sitting in the PDFs as form field values — this tool reads them directly, so there is no retyping and no copy-paste mistakes. It works with any fillable PDF, including forms you built yourself with Create fillable PDF.

How to use this tool

  1. Select the filled PDFs. Pick them all at once, or drop a whole batch. You can add more later.
  2. Check the preview. Each row is a PDF, each column a field. Files with no fields, damaged files and password-protected files are listed separately so you know what was skipped.
  3. Choose CSV or JSON and download. The CSV is saved in UTF-8 with a byte-order mark so Excel shows accents and non-Latin names correctly.

Examples

Questions people ask

Which PDFs can I pull answers from?

Any PDF with fillable (AcroForm) fields that someone has filled in — text boxes, checkboxes, radio buttons, dropdowns and list boxes. If a form was printed, filled by hand and scanned, there are no fields to read; the answers are only pixels.

Can I combine answers from many forms into one spreadsheet?

Yes — that is what this tool is for. Drop in every returned copy of the same form at once. Each PDF becomes one row, each field becomes a column, and the CSV opens in Excel, Numbers or Google Sheets.

What happens if the forms are not identical?

Columns are the combined list of every field name found, in the order they first appear. A PDF that lacks a field just gets an empty cell in that column, so slightly different versions of a form still line up.

How are checkboxes written?

A ticked checkbox is written as "Yes" and an empty one as "No" by default. You can switch to true / false, which is handier if you are feeding the JSON into a script or a database.

Why do some values start with an apostrophe?

Spreadsheet programs run anything that starts with =, +, - or @ as a formula. A malicious form could use that to run a formula on your computer, so by default FormFlow puts an apostrophe in front of those values. Turn the protection off if you are not opening the file in a spreadsheet.