PDF Table Extractor
Pull a table out of a PDF's text layer into CSV or XLSX without uploading the file, and see the rule that built it. Columns follow guides you set in points on the page: suggested from the gaps in the text, then dragged, tapped in or typed. Pick any cell and its source box is outlined on the page, so you can check it; a blank cell stays blank instead of pulling the next value across, a number such as 1,500 keeps its comma and every other character the PDF holds, and any cell you correct goes straight into the download. A scanned page has no text layer, and the tool says so instead of guessing.
The page appears here, with the region and the column guides over it.
The table appears here, cell by cell, with blanks, flags and your edits marked.
· or drop one anywhere on the stage
The rules this table is read by.
- Lines: from the top down, text whose baseline sits within 3 pt of a line's first baseline joins that line.
- Rows: every line is a row.
- Columns: each piece of text goes to the column holding most of its width, whole. Text that crosses a guide by more than 0.5 pt is flagged.
- Cells: pieces in one cell join in reading order, with a space where the gap is at least 0.2 text heights. Spaces at the ends are dropped; blanks stay blank, never filled in.
- Suggest guides: one guide mid-gap wherever no text crosses for at least 0.6 text heights, ignoring lines that hold a single piece of text.
- Region: text is read when its middle lies inside it.
Common questions
- Can it convert a scanned PDF to CSV?
- No. A scanned page is a picture with no text layer, and this tool reads only text layers, so it reports that the page has no text and extracts nothing from it; no value is guessed. Run the scan through OCR first, for example Searchable PDF OCR on this site, then open the searchable copy here.
- Is my PDF uploaded anywhere?
- No. The PDF is read in your browser tab with pdf.js, and the CSV and XLSX are written there too. PDFs up to 50 MB open. Only the reading rules and export choices you set are remembered on this device, never the file, its text or your guides.
- How does it decide which column a piece of text belongs to?
- By the column guides: vertical lines placed in points from the left of the page as shown. Each piece of text goes to the column holding most of its width. Guides are suggested in the middle of every gap that no text crosses for at least 0.6 text heights, ignoring lines that hold a single piece of text such as a title; you can drag them, tap the page to add one, or type exact positions. Text that crosses a guide is flagged for checking or, if you choose Split at spaces, divided at its spaces with the word positions estimated.
- Will numbers like 1,500 or 0012 change?
- No. Each cell holds the characters the PDF's text layer holds, in order: a space goes between two pieces of text set apart on the page, and spaces at the start and end of a cell are dropped. 1,500 stays 1,500 and is quoted in the CSV. The XLSX writes every cell as text unless you choose Plain numbers as numbers, which converts only numbers such as 240 or 3.25 that read back digit for digit, so 1,500 and 0012 stay text. Text that starts like a spreadsheet formula, such as =SUM(A1), gets an apostrophe in the CSV unless you turn that off; a number such as -1,500 never does.
- What happens to an empty cell?
- It stays blank. A row with a missing value keeps its other values in their own columns, so nothing shifts left, and a label printed once for several rows is not copied down. The readout counts the blank cells and the grid marks each one.
- What about cells that wrap onto two lines?
- By default every line of text is its own row. Choose Join wrapped lines and pick a column that has text on the first line of every row, such as a code or a date: a line with nothing in that column is joined to the row above, each cell's text after a space, and the cell's details say how many lines it joins.
- Can I extract a table that runs over several pages?
- Yes. Choose Every page and the same region and guides are applied to each page in order, giving one table in the download. Pages with no text layer are named and add nothing.
- Does it work on rotated pages?
- Yes. Text is placed on the page as it is shown, after the page's own rotation, and Auto reads each page in the turn in which most of its text runs left to right, so a landscape table on a turned page comes out in its proper rows and columns. You can also pick the turn yourself.
Reads only the text layer a PDF already has, placing each piece of text by where it sits between the column guides you set: nothing is recognized from images, so a scanned page reports that it has no text. Blank cells stay blank and numbers keep the characters the text layer holds, never filled in or recalculated, while merged or irregular layouts can land in the wrong cell, so every cell links to its source box for checking and your corrections go straight into the CSV and XLSX. PDFs up to 50 MB are read on your device and never uploaded.