Convert PDF to CSV
Pick the document type or describe what you want extracted. ExtractFox reads the PDF and exports as a clean CSV — ready for Excel, Google Sheets, a database, or any tool that takes a delimited file.
What should we pull from this pdf?
Or pick specific fields
Or describe it yourself
Why this matters
A naive PDF-to-CSV pass breaks the moment a field contains a comma, a quote, or a line break — 'Widget, blue, size M' becomes two columns instead of one, and every column after it shifts. ExtractFox writes RFC 4180-correct CSV: fields with commas or quotes are quoted and escaped properly, embedded newlines don't split rows, and every record has the same column count — so a Python csv.reader or a database COPY doesn't choke on row 40. A nightly ETL job ingests 200 vendor PDFs and the CSV from Adobe's export splits 'Acme Corp, Inc.' into two columns — the database load fails on row 38 every night until someone opens the file manually. Snowflake COPY and Postgres \copy reject files where embedded newlines in address fields create phantom rows.
How it works
- Step 1Upload your PDF
Native or scanned, multi-page, up to 20 MB.
- Step 2Describe what to extract
Pick a template (invoice, statement, etc.) or write a free-text request like 'every line item as a row'.
- Step 3Download CSV
Headers come from the field names, values with commas or quotes are escaped correctly, and every row has the same column count.
Common use cases
Sample output
Example: a packing list with commas in the description, quoted correctly
sku,description,quantity,unit_price SKU-1042,"Widget, blue, size M",24,3.20 SKU-1043,"Widget, red, size L",10,3.20 SKU-1044,Shipping label roll,1,12.00
Frequently asked questions
How do I convert a PDF to CSV?+
Upload the PDF on this page, pick a document type or describe the fields you want, then click Extract and download as CSV.
How is this different from Adobe Acrobat or Smallpdf 'PDF to CSV'?+
Those tools convert positional text to comma-separated cells without escaping, so a field that itself contains a comma silently splits into two columns. ExtractFox quotes and escapes fields correctly, so downstream parsers see the same columns you do.
What happens if a field contains a comma, quote, or line break?+
It gets wrapped in double quotes per RFC 4180, and any quote inside the value is doubled (" becomes ""). Every row still has the same number of columns.
Will the CSV open cleanly in Excel and Google Sheets?+
Yes. UTF-8 encoded with proper quoting. Numbers come through as numbers. In Google Sheets use File → Import. In Excel just open the file — Excel handles UTF-8 CSV out of the box.
What about tables that span multiple pages?+
Multi-page tables are stitched into one ordered list, then written out as one CSV with a single header row.
Can I batch-convert many PDFs to CSV with a stable schema?+
On the paid plan, POST PDFs to the REST API and get CSV (or JSON) back with the same columns every time — safe to append into one growing file or load job.
What delimiter and encoding does the CSV use — will Postgres COPY accept it?+
UTF-8 encoding, comma delimiter, RFC 4180 quoting. Postgres \copy, Snowflake COPY, and Python csv.reader all handle it without extra configuration.
Can I get separate CSV files for header fields vs line items from one invoice?+
Run extraction twice with different descriptions — once for header metadata (one row) and once for line items (many rows). On the paid API, both calls can share the same uploaded PDF.