PDF to Text

Extract all the text from a PDF into a plain .txt file, in reading order.

Choose a file to get started

Free tier supports files up to 50MB.

or import from

Processed in your browser — files never leave your device. How it works

How to Convert a PDF to Text

Getting the words out of a PDF should be easy, but copying from a PDF viewer often produces a mess: columns mixed together line by line, every line broken in the middle of a sentence, words split by hyphens, and page numbers scattered through the text. PDFDoco reads where every piece of text sits on the page and rebuilds it the way you would read it — column by column, paragraph by paragraph — then saves it as a clean UTF-8 .txt file. Scanned pages can be recognised with OCR, and the whole conversion runs in your browser, so the PDF is never uploaded.

  1. 1

    Upload a PDF

    Reports, papers, contracts, e-books or scans. Every page is read straight away.

  2. 2

    Check the preview

    See the extracted text in reading order, with word and character counts.

  3. 3

    Fine-tune the output

    Choose pages, paragraphs or original line breaks, hyphen joining and page separators.

  4. 4

    Copy or download

    Copy the text to your clipboard or save a UTF-8 .txt file.

Columns in the right order

Two- and three-column layouts are read column by column, not across.

OCR for scanned pages

Pages without a text layer are detected and can be recognised on your device.

Never uploaded

Text is extracted in your browser, so confidential PDFs stay on your device.

Reading order that matches the page

Academic papers, newsletters and magazines put text in two or three columns, often under a full-width title. PDFDoco finds the gaps between columns and reads each column top to bottom before moving to the next, while titles, abstracts and footnotes that span the page stay where they belong. Tables are kept row by row, and bullet and numbered lists keep their markers.

Paragraphs or original lines

In a PDF, every line ends with a hard break. Choose Paragraphs to join lines into flowing text — best for pasting into a document, a translation tool or an AI assistant — or Keep original lines when the line layout matters, as in poems, addresses or code listings. Paragraph breaks are detected from spacing, indentation and changes of font size.

Scanned PDFs and OCR

A scanned document is a set of photos of paper, so there is no text to extract until the characters are recognised. PDFDoco checks each page: if it is mostly an image with no text layer, you can run OCR on just those pages. Recognition happens on your device in the language you choose, and the recognised words go through the same column and paragraph rebuilding as digital text.

Every language, encoded in UTF-8

The text file is saved as UTF-8, the standard encoding that keeps accented letters, Cyrillic, Greek, Arabic, Chinese, Japanese and Korean characters, currency symbols and emoji intact. Text in PDFs that use Asian fonts without embedding them is decoded with the standard character maps, which are loaded only when such a file needs them.

What you can do with the text

Plain text is the most portable format there is: search it, count words for a translation quote, feed it to a screen reader, paste it into ChatGPT or Claude for a summary, import it into a note-taking app, or analyse it with your own scripts. If you need structure such as headings, lists, links and tables, convert the same PDF with PDF to Markdown instead.

When a PDF gives no text or odd characters

Some PDFs draw letters with fonts that have no mapping back to real characters, so any extractor returns symbols or nothing at all. If the preview looks garbled, treat the page like a scan and run OCR on it. Password-protected PDFs need to be opened with Unlock PDF first.

Pro tip: need only one chapter? Type a page range such as 12-30 in the Pages box. Running headers are still detected across the whole document, so they disappear from the excerpt too. For structured output, try PDF to Markdown.

Frequently Asked Questions

How do I convert a PDF to a text file?

Upload the PDF above, check the preview, and press Download TXT. You get a plain .txt file encoded in UTF-8 that opens in Notepad, TextEdit, Word, code editors and any other program. You can also copy the text straight to your clipboard.

Why does copied PDF text come out jumbled?

A PDF stores each run of characters at a position on the page, often not in reading order, and it has no idea what a column or paragraph is. Copying from a viewer frequently mixes columns line by line or breaks every line. PDFDoco looks at where the text sits, detects columns and tables, and rebuilds lines and paragraphs before writing the file.

Can I extract text from a scanned PDF?

Yes. Scanned pages are pictures of text, so they have nothing to extract directly. PDFDoco detects those pages and offers OCR (optical character recognition), which runs in your browser in about two dozen languages. The first run downloads the recognition engine; after that it's cached.

What does "Join hyphenated words" do?

Books and journals often split long words across lines with a hyphen, such as "recog-" and "nition". With this option on, those line-end hyphens are removed and the word is put back together when lines are joined into paragraphs. Hyphens in normal words like "long-term" are kept.

Will tables and lists survive?

Tables are kept row by row with their columns separated by spaces, and bullet or numbered lists keep their markers. If you need a table as spreadsheet data, use PDF to CSV; for headings, lists and tables in a structured format, use PDF to Markdown.

Are page headers, footers and page numbers removed?

By default, lines that repeat at the top or bottom of most pages (running titles, chapter names, confidentiality notes) and bare page numbers are left out, so the text reads continuously. Turn the option off to keep everything.

Is my PDF uploaded to a server?

No. The PDF is opened and processed entirely in your browser — including OCR — and the text file is created on your device. Nothing is sent to or stored on our servers.