PDF to CSV Converter
Save the text of a PDF as a CSV file where each line is a row and wide gaps split the cells, so simple tables open in Excel or Google Sheets in separate columns.
Tables inside PDFs are one of the most irritating things to reuse. The file does not contain a table at all, only loose pieces of text placed at exact positions so that they look like one. This converter reconstructs a table-like structure from those positions and saves it as extracted.csv. It works best for clean, ruled or evenly spaced tables such as invoices, price lists, bank statements and timetables that were exported from a spreadsheet or accounting system.
Set expectations: this is a text-position heuristic, not a table-recognition engine. Simple tables usually land in the right cells. Merged cells, nested tables, tables that wrap across lines and scanned documents often need manual repair in your spreadsheet.
Step-by-step
- Under Upload PDF, choose the PDF that contains your table data (or drag it into the box).
- Click Convert to CSV. The progress bar advances one page at a time.
- Open the downloaded
extracted.csvin Excel, Numbers or Google Sheets (use File > Import in Google Sheets). - Check that the columns line up. Adjust column widths, delete the page-marker rows and format the numbers.
How the tool decides where the columns are
The PDF is read page by page. Every fragment of text is given an x position (distance from the left edge) and a y position (distance from the bottom). Fragments whose y positions are within about 2.5 points of each other are placed on the same row, and rows are sorted from top to bottom. Within a row, fragments are sorted left to right. When the gap between the end of one fragment and the start of the next is more than about 10 points, a new column begins; smaller gaps are joined into the same cell with a space. Each cell is wrapped in double quotes and any quote mark inside the text is doubled, which is the standard CSV rule, so commas inside a cell do not break the file.
The start of every page is marked with a row containing --- Page 1 ---, --- Page 2 --- and so on, so you can tell where each page began. The file is saved as UTF-8 with a byte-order mark, which helps Excel display accented and non-Latin characters correctly.
A worked example
Imagine a supplier price list with the columns Item, Unit, Quantity and Price. In the PDF, "Cement bag" sits at x=50, "Bag" at x=220, "100" at x=300 and "540.00" at x=380. The gaps between those fragments are far wider than 10 points, so the row becomes four cells. A description such as "Steel rod 12 mm" is a single fragment with normal word spacing, so it stays together in one cell. Now imagine a description that wraps onto a second line: the second line has its own y position, so it becomes a second row with only one filled cell. That is the most common manual fix you will make.
| Situation | Likely result | Quick fix |
|---|---|---|
| Evenly spaced columns, one line per row | Clean cells | Format numbers and dates |
| Wrapped description cell | Extra row with only one cell filled | Merge the two rows by hand |
| Columns very close together (gap under 10 pt) | Two columns merged into one cell | Use Text to Columns in Excel |
| Right-aligned numbers | Usually correct, but ragged left edges can shift cells | Sort and re-check totals |
| Scanned PDF | No data (no text layer) | Use OCR software first |
Cleaning up in the spreadsheet
- Delete page markers. Filter the first column for "--- Page" and remove those rows.
- Convert text to numbers. If a number column is left-aligned, select it and use Data > Text to Columns (finish) or multiply by 1.
- Watch leading zeros. Excel strips zeros from values like 00123 when it opens a CSV. Import the column as Text if the zeros matter.
- Check totals. Add up a column and compare it with the total printed on the PDF. Any difference means a row was split or merged.
- Repeated headers. Multi-page tables repeat the heading row on every page; delete the extra copies.
When a different approach is better
If you only need the words, the PDF to Text tool gives a lighter file. If the table is complicated, copy it directly from a PDF viewer into a spreadsheet, or ask the sender for the original spreadsheet. For documents that are photographs of paper, you will need OCR software before any converter can find a table. Financial statements, legal schedules and other documents where an error matters should always be checked cell by cell against the original.
Privacy
The PDF is processed locally in your browser tab and is not uploaded to a Tantool server. The PDF.js library that does the reading is fetched from a public content network on first use, so you need to be online for that, but your document is never part of that request.
Frequently asked questions
Does it detect table borders?
No. It ignores lines and boxes completely and relies only on where the text sits. That is why evenly spaced tables work well even without borders, and why tables with tight columns can merge.
Why are my numbers in quotes?
Every cell is quoted for safety so that commas, quotes and line breaks inside text do not break the file. Spreadsheet programs remove the quotes when they open the CSV.
Can I get an .xlsx file?
The tool saves .csv, which Excel opens directly. Use Save As in Excel or Google Sheets to turn it into .xlsx once you have cleaned it.
Will it merge tables across pages?
No. Each page is converted separately and separated by a page-marker row. Remove the markers and repeated headings yourself.
My PDF is a bank statement. Is that safe to use?
Processing happens in your own browser, so the file is not sent to us. Still, verify every figure against the original before relying on converted data for accounting or tax work.