creatorvalet

Convert PDF to Text

Reads columns in the right order and tells you which pages are scans. Runs in your browser — nothing is uploaded.

Runs in your browser0 bytes uploaded

Drop your PDF here

Nothing is uploaded. The text is read in this tab, from bytes that never leave it.

A PDF does not contain text

It contains instructions for painting glyphs at coordinates. There is no sentence anywhere in the file, no paragraph, no reading order — only several thousand directives of the form put the string "ment of the" at x 317.4, y 612.8 in 11pt Times. The order those directives appear in is whatever order the program that made the file happened to emit them, which is usually but by no means always the order a person would read them.

Everything that feels obvious about getting words back out is therefore reconstruction. Where one line ends and the next begins has to be inferred from vertical positions. Whether two glyphs are separated by a space has to be inferred from the distance between them, because a great many PDFs contain no space characters at all — the typesetter simply moved the pen further along. Which block of text follows which is a judgment about layout that nothing in the file records.

Where PDF to text extraction goes wrong

The obvious implementation sorts every fragment by its vertical position, then by its horizontal position, and concatenates. On a plain single-column report that works. On a page laid out in two columns it produces something grammatically impossible: for every line across the sheet it picks up the left column's words and the right column's words and glues them into one sentence. Academic papers, magazine exports, annual reports, newsletters and most conference material come out of the usual converters in exactly that state.

The fix is to find the columns before reading anything. On a page with two columns there is a channel of empty space running from the top of the body to the bottom of it, and no fragment ever crosses that channel. Locate it, and reading order follows: finish the left column, then start the right. The complication is a headline spanning both columns, which does cross the channel and so hides it. That is handled by asking which lines are internally split — a line carrying a wide gap in the middle of it is two columns' text sharing a baseline, whereas a solid line crossing the same point is a real heading that belongs above both.

Both cases are visible on this page while you work. If columns were found, it says so and lets you switch the behavior off — because a two-column invoice, with labels on the left and figures on the right, wants to be read straight across, while a two-column article does not, and no amount of geometry can tell those apart.

When there is nothing to extract

The most common disappointing outcome in this category is not jumbled text. It is a file that produces nothing at all, from a document that looked completely normal. A scan, a photograph saved to PDF, a fax export, or anything that came off a copier contains a picture of a page. The characters were never stored. There is nothing to read, and no converter anywhere can read it — reading it requires optical character recognition, which is a different piece of machinery that guesses at letters from their shapes.

What separates one tool from another here is only whether it tells you. The usual behavior is to accept the file, work for a moment and hand back an empty download, leaving you to conclude that the tool is broken. This page checks every page for a text layer as it opens the file and shows the result as a strip of cells before you have downloaded anything: pages with text, pages with almost none, and pages that are purely an image. A page carrying nothing but a stamped page number is flagged separately, because that is the signature of a scan and it is the case most likely to look like success.

Line breaks are the setting that actually matters

A PDF ends its lines where the measure ran out, roughly every sixty characters. Those breaks have nothing to do with the sentences. Paste the raw extraction into a document and every line arrives with a hard return welded to the end of it, so the text refuses to reflow and reads as a column of fragments. Almost everyone who extracts text hits this within about four seconds of pasting.

Joining wrapped lines back into paragraphs is therefore on by default, along with repairing words that were split across a break with a hyphen. Where a paragraph genuinely ends is worked out from three signals together: an unusually large gap between two lines, a line that stops well short of the margin, and a line that starts indented. Turn the whole thing off for source code, postal addresses, verse, or anything else where the line itself carries meaning.

What it does not do

Tables lose their grid. The words come out in reading order, row by row, and columns that were separated by wide spacing stay separated by a space — enough to read, not enough to paste into a spreadsheet. Plain text has no cells and pretending otherwise would be a lie told in fixed-width spaces.

Bold, italics, headings and font sizes are also gone, because plain text has no way to hold them. If that is what you need, the structure is still in the file and reading it out as Markdown or HTML is a different job. Ligatures are the one piece of typesetting that is quietly undone: a professionally set document stores fi andfl as single characters, which look correct and are unsearchable, so they are returned to ordinary letters.

And nothing is uploaded. The document is opened by JavaScript in this tab, the text is assembled in your own memory, and the download points at something that never existed anywhere else. You do not have to take that on trust: open your browser's network panel before you drop the file in, and watch that nothing leaves.

Questions

Why does my PDF come out empty?

Because the page is a picture of text rather than text. A scan, a phone photo saved as a PDF, or an export from certain fax and imaging systems carries no characters at all — only an image. This tool says so before it runs, page by page, instead of handing you a blank file and letting you work out why. Reading those pages requires optical character recognition, which is a different job from this one.

Will a two-column page come out jumbled?

No. Most converters sort the text by vertical position and then by horizontal position, which picks up the left column and the right column on every line and glues them together — the result is grammatically impossible. Here the columns are found first, by looking for the vertical channel of whitespace running between them, and each is read to its end before the next begins.

Can I keep the original line breaks?

Yes, and you can drop them. A PDF breaks a line roughly every sixty characters because that is where the margin was, not because the sentence ended there. Joining them back into paragraphs is what most people want and it is on by default. Turn it off for code, poetry, addresses or anything where the line itself carries meaning.

What happens to tables?

The words come out in reading order, row by row, but the grid does not — plain text has no cells. Columns separated by wide spacing stay separated by a space, which is usually enough to read but not enough to paste into a spreadsheet. If the table is the reason you came, extracting it as data is a different tool than this one.

Is my PDF uploaded anywhere?

No. The file is opened by JavaScript running in this tab, and the text you see was assembled from your own memory. There is no upload endpoint for this tool. You can confirm it the way you would confirm it for anyone: open your browser's network panel before you drop the file, and watch that nothing leaves.