pdf→text

Extract Text from PDF

Copy out the text and tables — including from scanned pages.

By opening this website or using its tools, you agree to our Terms and Privacy Policy.

or drag it here

PDF — nothing is uploaded

Network activity during processing
0 bytes uploaded

Your file never leaves your browser during processing

How it works

To extract text from a PDF, drop the file onto this page — the text layer is read directly in your browser and returned as plain text, detected tables are offered as CSV, and any page that is a scan can be read with OCR without the file leaving your machine.

A PDF does not store paragraphs, lines, or tables. It stores instructions to draw runs of glyphs at particular coordinates, which is why copying from a PDF viewer so often produces jumbled text. This tool reads those runs with pdf.js and reconstructs the reading order from geometry: runs that share a baseline become a line, and the gaps between them are measured against the glyph height to decide where a space belongs, because a PDF frequently encodes no space characters at all and simply moves the cursor.

Tables are found the same way, from evidence rather than markup. Each line is split where the horizontal gaps are far wider than ordinary word spacing, and a group of lines only becomes a table when at least three consecutive ones break into the same columns at the same positions. Ragged rows — where an empty cell simply was not drawn — are snapped back onto the shared column positions, so a blank does not shift the rest of the row left. The threshold is deliberately strict: turning ordinary prose into two-column "tables" would be worse than finding none.

Some PDFs contain no text at all. A scan is a picture of a page, and there is nothing in the file to copy. Those pages are detected, named, and left alone until you ask for OCR — which downloads a recognition engine and reads the rendered page image. That is a slower and less certain operation than reading a text layer, so its pages are labelled with their confidence in the output rather than blended in as if they were equally reliable.

Everything runs in your browser. pdf.js reads the document, the OCR engine is fetched from this site before processing begins, and the network counter under the tool stays at zero bytes sent throughout. There is no page limit and no file size cap beyond your own tab’s memory.

What comes out exactly, and what is approximate

Text from a normal digital PDF is exact. The characters in the output are the characters in the file — nothing is being guessed at, only reordered into reading order.

Line and paragraph breaks are reconstructed, so a line that was justified across a column comes back as one line, but a hyphenated word split across two lines stays split, and a paragraph flowing across a page boundary is broken by the page marker.

Tables are inferred. The rows and columns are usually right on a well-aligned financial or data table and get less reliable as the layout gets looser — merged cells, wrapped text inside a cell, and columns separated by rules rather than whitespace are all cases where the CSV will need a look before you use it.

OCR pages are a machine’s best reading of an image. They carry a confidence figure and should be proofread, because OCR mistakes are ordinary-looking words rather than obvious corruption.

Extracting text from a scanned PDF

If the tool reports that pages are scans, the document was produced by a scanner or a camera and holds images rather than text. No amount of reading the file will find words in it; they have to be recognised.

Choosing a language and pressing "Read these pages with OCR" renders each scanned page at 200 DPI and runs Tesseract over it, in your browser. Expect a few seconds per page. Pages that already had a text layer are not re-recognised — they are exact, and running OCR over them would only make them worse.

A scan that is skewed, faint, or photographed rather than scanned will recognise poorly. The confidence figure on each page tells you which ones to check.

FAQ

Is my PDF uploaded anywhere?

No. The document is read in your browser by pdf.js, and OCR (if you use it) runs there too. The counter under the tool monitors network activity while your file is processed and stays at zero bytes sent.

Why does it say my PDF has no text?

Because it is a scan — a set of page images rather than text. This is normal for anything that came from a scanner, a fax, or a phone camera. Use the OCR option to recognise the words from the page images.

Can it extract tables to Excel?

It exports detected tables as CSV, which Excel, Numbers, and Google Sheets all open directly. If you want a real .xlsx workbook, run the CSV through the CSV to Excel converter on this site — that one also types the columns properly, keeping leading zeros in things like zip codes as text.

Why are the columns in my table wrong?

Column detection reads the whitespace between words, so it struggles when a table is separated by drawn rules rather than gaps, when cells contain wrapped text, or when cells are merged. Check the preview before downloading; the text output still contains everything even when the table structure is not recovered.

Is there a page limit?

No. Nothing is uploaded, so there is no server quota to hit — the limit is your tab’s memory. Text extraction is fast even on very long documents; OCR is the slow part, at a few seconds per scanned page, and only runs on the pages that need it.

Can it keep the formatting, like bold and headings?

No — this returns plain text. A PDF records the font and size a run was drawn in, not that it is a heading, so reconstructing document structure would be guesswork. If you need a formatted document, converting to Word from the original source file will always beat rebuilding it from a PDF.

What about a password-protected PDF?

It cannot be read while it is encrypted. Remove the password first, then extract — you will get an explanatory message rather than a silent failure if you try.

Related tools