About PDF to CSV
PDF to CSV lifts tabular data out of a PDF and writes it to a single comma-separated file you can open in any spreadsheet. There is no table markup inside a PDF to read, so PDFChamp infers the structure: it takes the positioned text runs pdf.js reports, groups them into rows by vertical position, works out column boundaries from the horizontal gaps, then snaps each run into that grid. Typical jobs are pulling a price list out of a supplier catalogue, getting quarterly figures out of an annual report and into a model, importing a delivery schedule, or turning a printed timetable into something sortable.
PDF to CSV 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 | PDF (1 file) |
| Output | CSV |
| File size limit | Limited only by your device's memory |
| Offline use | May work after all required code and assets have loaded; browser caching is not guaranteed |
How to use PDF to CSV
Drop the PDF
Add one PDF to the upload panel. Detection runs immediately: "Detecting tables…" shows while it works, then the status line reports how many tables were found across how many pages.
Choose the pages
The Pages chips are All pages and Range. Picking Range reveals a Page range field that accepts a list like 1, 3-5, 8; the hint shows the valid span, and the export is blocked with a specific error if a number does not exist in the document.
Decide about extra tables
Under "Multiple tables on one page", All tables exports everything detected while First only keeps the first table on each page — useful when a repeated header block is being read as a second table.
Check the preview
Each detected table is previewed with its page number, its row × column count and its first ten rows, with the number of remaining rows underneath. This is where you catch a misread grid before exporting.
Download .csv
Press Download .csv. Every selected table is concatenated into one file named after your PDF, with a blank row separating each table from the next.
Frequently asked questions about PDF to CSV
The columns came out shifted or merged — can I fix it?
Misaligned columns come from the detection step rather than from the CSV writing, and the fastest fix is usually to narrow what you export. PDFChamp finds columns by looking for horizontal gaps wide enough to be gutters rather than word spacing, and by preferring the grid implied by rows that look tabular on their own. A full-width title or a paragraph of prose sitting inside the table block can still stretch one column across the whole page. Set the Pages chip to Range and export the single page you care about, so another page's layout cannot influence the grid, and use First only if a header block is being detected as its own table. If it still refuses to come out, PDF to text gives you the raw content to reshape by hand.
Nothing was detected in a PDF full of tables — why?
An empty detection on a PDF that visibly contains tables has two usual causes. The first is a scan: if the pages are images there are no text runs to cluster, so no table can be found — run OCR PDF over it to add a text layer, then come back. The second is a table drawn without real gutters, where cells are packed tightly or the visual structure comes entirely from ruling lines while the text runs nearly touch. Detection looks at text positions, not at the lines drawn on the page, so a heavily ruled but cramped table can read as ordinary prose. A block also has to reach at least two columns and two rows to count as a table at all, which filters out stray headings but discards very small tables too.
What happens to merged cells and multi-line rows?
Merged cells do not survive as merges, because CSV has no concept of one. A cell spanning three columns lands in the first column it overlaps and the rest are left empty, so that row looks shorter than its neighbours until every row is padded to the same width on export. A row whose text wraps onto a second visual line is treated as two rows, since rows are grouped by vertical position and a wrapped line sits at a different height. Nested or stacked headers usually produce two header rows rather than one combined header. None of that is corrupted data, it is structure you may need to tidy in the spreadsheet — and the ten-row preview shows you exactly what you will get.
How do multiple tables end up in one CSV file?
Every selected table is written into the same file one after another, separated by a single blank row, and the file is named after your source PDF. That keeps the export to one download, but a spreadsheet treats the whole thing as one sheet, so a file holding four tables of different widths will have ragged columns below the first blank row. There are two ways out: set the Pages chip to Range and export each page separately for one clean file per table, or use PDF to Excel instead, which puts each page — or each individual table, if you pick that layout — on its own worksheet. For a single table the concatenation never comes into play at all.
Are numbers exported as numbers, and what about the encoding?
Cells are exported as trimmed text. Currency symbols, thousands separators, percent signs and footnote markers remain, while leading and trailing whitespace introduced by PDF positioning is removed. A spreadsheet may therefore import amounts as text; convert them with the correct locale after checking the source. The file is UTF-8 and standard CSV quoting protects commas, quotes and line breaks.
Is the document uploaded, and is there a row limit?
The document never leaves your browser, and there is no row, table or page limit in the tool. Detection and CSV generation both run in the tab: pdf.js reads the text runs, PDFChamp's clustering builds the grid, and the CSV is assembled locally before the download is triggered. Nothing is posted anywhere, which is exactly why people use it for invoices, payroll exports and anything else they would rather not hand to a conversion service. It is free, needs no account, and the CSV carries no added rows, headers or branding of any kind. The realistic ceiling is memory: a very long document holds every detected table in the page at once while you review the preview.
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 PDFChamp overview compares this architecture with server-side PDF tools.
Last updated