PDF to Text Converter
Pull the real text out of a PDF so you can search it, edit it or paste it somewhere else. It reads the text layer rather than guessing, keeps the reading order where the document has one, and tells you plainly when a file turns out to be a scan with no text in it at all. Nothing is uploaded.
- Nothing uploaded
- Works with no signal
- No sign up
- Reads the text layer
Nothing loaded yet.
The text
Load a PDF to see what it contains.
This reads what is actually in the file. A scanned document contains pictures of letters rather than letters, so there is nothing to extract until it has been through optical character recognition.
Your PDF never leaves this device.The file is opened and read by your browser, the text is extracted here in the page, and any download comes from your own machine. Nothing is sent to a server, so nothing is stored on one. Open the network tab in your browser tools and load a document: there is no upload request to see.
Reading order rebuilt from the page
A PDF stores runs of text in whatever order they were written, which is often not the order you read them. Every run is placed by its position instead.
How to use this tool
Drop a PDF on the box at the top. Every page is read for its text layer, which takes a moment on a long document because each page is opened separately.
The text appears in the panel below, ready to copy or download. The four settings change how it is laid out, not what was read, so you can switch between them freely.
If the file turns out to be a scan, the page says so at the top rather than handing you an empty box and leaving you to guess why.
File order is not reading order
This is the part that makes text extraction harder than it sounds.
A PDF does not store sentences or even lines. It stores runs of glyphs, each with a position on the page, and it stores them in whatever order the program that made the file happened to emit them. That order is often sensible and quite often is not: a heading written last, a footer written first, the two columns of a page interleaved.
So simply concatenating the runs in file order produces something that looks like text and reads like nonsense. Instead every run is placed by its position: runs sharing a vertical position belong to the same line, lines are ordered from the top of the page down, and within a line the runs are ordered left to right.

There is one more subtlety. A PDF frequently does not store the spaces between words at all, because the spacing is achieved by moving the drawing position rather than by drawing a space character. So a visible horizontal gap between two runs is treated as a space, which is why words do not run together in the output.
Honest limit: a complicated multi column layout can still defeat this, because two columns side by side genuinely do share vertical positions. If a newspaper style page comes out interleaved, that is why.
When to join wrapped lines and when not to
A line break in a PDF usually means nothing. It is where the text happened to reach the right margin, and if you paste that into an editor you get prose broken into ragged fragments.
Joining puts those back into paragraphs. A paragraph is ended by a blank line, by a line that ends in sentence punctuation, or by a line noticeably shorter than the others, since a short line is usually the last line of a paragraph rather than a wrap.
That heuristic is right for prose and wrong for everything laid out in columns. In a table, a code listing or a set of readings, every line break is deliberate and joining them destroys the meaning. So keep the line breaks for anything structured, which is the default here.
A worked check you can repeat
Take a page whose runs are stored in the file as: the word world at x equals 60, then the word hello at x equals 0, both at the same height.
Read in file order that is world hello. Read by position it is hello world, which is what the page shows. That single reordering is the difference between usable output and gibberish, and it happens on every line of every page.
Now hyphenation. A line ending compac- followed by a line starting tion is one word broken across a line, so it is rejoined into compaction. A line ending Anglo- followed by Saxon is not, because the capital letter says the hyphen belongs to the name. That one check handles almost every case correctly.
The extraction was checked against an independent implementation before publishing: thirty one hand written cases covering run ordering, line grouping by position, gaps becoming spaces, touching runs staying joined, hyphen repair in both directions, paragraph joining and scan detection at its boundaries. Then twenty thousand generated pages with their runs deliberately scrambled, confirming that the original reading order is reconstructed every time and that no character is lost when lines are joined.
Mistakes that catch people out
Expecting text from a scan. There is none in the file. No setting here will help, and only optical character recognition will.
Joining lines in a table. The line breaks were the structure. Keep them for anything with columns.
Expecting the formatting. This gives you the words. Bold, italic, headings and layout are presentation, and none of it survives as plain text.
Assuming a blank page is a fault. A full page drawing legitimately contains no text, and the page count will say so.
Multi column pages. Two columns share vertical positions, so they can interleave. Extract one column at a time by cropping first if it matters.
Common questions
Is my PDF uploaded anywhere?
No. The file is opened and read by your own browser and the extraction happens on this page. Nothing crosses the network, so there is nothing on a server to store or delete.
Why is nothing coming out?
Because the file is a scan. The words are pictures of letters rather than letters, so there is no text layer to read. Running it through optical character recognition first gives it one.
Why is the text in a strange order?
A PDF stores text in whatever order it was written into the file, which is not always reading order. Lines are rebuilt from the position of each run on the page, which fixes most of it, though a complicated multi column layout can still confuse any tool.
Should I join wrapped lines?
Join them for prose, where a line break is just where the page ran out. Keep them for tables, code or anything in columns, because there the breaks are deliberate and joining destroys the layout.
What happens to words split across lines?
A word broken by a hyphen at the end of a line is rejoined, so compac- and tion become compaction. A capitalised continuation such as Anglo- Saxon is left alone, because that hyphen belongs to the word.
Can I take only some pages?
Yes. Type a range such as 1-5, 8, 12- in the pages field and only those pages are read out.
Related PDF tools and reference
Reference: ISO 32000, the standard describing how text is positioned in a PDF.
