Skip to main content

Extract Text from a PDF

Copy the text from one page or a whole PDF.

Drop your PDF here

or click to browse

PDF files up to 50 MB

Up to 3 files at once

/ files

Extraction Results

Reads the text layer only, so scanned pages come back empty. Columns and tables may come out in an unexpected order.

  • Copy one page or everything
  • Text kept in page order
  • Word and character counts

How do I copy the text out of a PDF?

Upload a PDF and the text of each page appears in its own box with a copy button. Copy one page or the whole file. The tool reads the text stored in the file, so scans come back empty: our 3-page scan returned no words on its first two pages. Columns can come out in an odd order.

Why is the extracted text empty?

Usually because the page is a scan or a photo. It holds a picture of text, not real text, and this tool has no OCR, so the page comes back blank. A password-protected file can also come back almost empty: ours returned 2 characters. Use PDF to Markdown for scans, or unlock the file first.

Can I download the text as a file?

No. The results page shows the text with a copy button for each page and one for the whole document. Paste it into a text editor to save it. PDF to Markdown gives you a file to download, and it can use OCR for scanned pages.

Why are my word counts so low?

The counter only counts runs of the letters A to Z. Numbers count as zero words, and an accented letter splits a word in two, so French or Lithuanian text comes out far too low. Use the character count instead. It handles every script.

Where the text comes from

A PDF page is a list of drawing instructions. Text is drawn by instructions that place character codes at positions on the page, using a font that says which code means which letter. The extractor reads those instructions with smalot/pdfparser, a PHP library, and turns the codes back into letters. That set of text instructions is called the text layer.

There is no optical character recognition (OCR) in this tool. If a page is a picture of text, such as a scan or a photo of a document, there are no text instructions to read and the page comes back empty.

Text arrives in the order it was written into the file

The extractor does not look at where text sits on the page. It reports text in the order the program that made the PDF wrote it. Many programs write in reading order, but page headers, footers, sidebars and columns are often written separately. We made a one-page test file that looks like a normal report: a title at the top, two columns, and a footer at the bottom. Behind the scenes the footer was written first, then the right column, then the left, then the title.

Real output for that page

Page 1 of 1 - Pump station report Right column. Pump two was isolated after a high bearing reading. Left column. The intake screen was cleared on arrival. Pump Station Inspection

Line breaks, tables and hidden text

  • Line breaks follow the line breaks on the page, so a paragraph that wraps over three lines comes out as three lines.
  • Table cells are separated by tab characters, one table row per line. In our sample, a three-column table came out as Pump 2 [tab] 78 C [tab] Isolated, so a copied row can be pasted into a spreadsheet as separate cells.
  • Text that is present but not visible on screen, such as white or very small text, is extracted too. One of our test files produced a line that no reader would see on the page.

Reading the counts

The result lists pages, words and characters for the whole file and for each page. Characters include spaces and line breaks, and an accented letter or a Chinese character counts as one. Words are counted with PHP str_word_count, which only recognises the letters A to Z.

How the word count treats a few inputs
Text Words counted Reason
Pump Station Inspection 3 Plain English letters.
2026 0 Digits are not letters.
41 C 1 Only the C is counted.
Zürich 2 The ü splits the word.

Empty or strange results by cause

Symptoms we reproduced and their causes
What you see Likely cause What to try
Every page shows a blank block and 0 words The PDF is a scan or image with no text layer. Our 3-page scan returned no words on its first two pages. PDF to Markdown, which can fall back to AI OCR for scans.
Blank pages on a file that clearly has text The file is encrypted. The parser skips decryption, and our password-protected copy returned 2 characters across 2 pages. Remove the password with the unlock tool, then extract again.
Letters replaced by symbols or wrong letters The font in the PDF maps its character codes to the wrong letters. Copying from a PDF viewer often gives the same result, because it relies on the same mapping. Convert the page to an image and use OCR software.
Columns or captions in the wrong place The text was written out of visual order, as in the sample above. Copy page by page and reorder paragraphs by hand.

Batches and limits

You can extract from up to 3 PDFs at once on the Free plan and up to 50 on Pro and AI, with each file counting as one daily check. Results are shown on screen, with a copy button for each page and one for all text; there is no separate download.

Copying from a reader, or pdftotext, instead

Every PDF reader copies text from the same text layer, so for a paragraph or two, select and copy in Preview, Chrome or Acrobat Reader is faster. Readers also select by position on the page, which is why copying one column of a two-column article usually works there, while this extractor returns text in the order it was stored, as the sample above shows.

The command-line tool behind many workflows is Poppler's pdftotext: pdftotext -layout report.pdf report.txt. The -layout switch keeps the physical arrangement, so columns and tables line up with spaces, and leaving it out gives pdftotext's own reading-order guess. Either beats stored order on multi-column pages, and it runs over a folder of files in a script. None of these tools, including this one, reads scanned pages without OCR.

PDFCheck earns its place when nothing is installed, when you want per-page word and character counts alongside the text, when up to 3 files on Free or 50 on Pro and AI should run as one batch, or when you are reading on a phone and need a copy button rather than a download.

Before you extract text

  • Is my PDF stored? This tool writes no file to disk. The upload is parsed while the request runs and discarded with it; the extracted text is kept with your browser session on the server so the results page can show it. When the session ends, the page returns "Extracted text not found or expired", and anyone else who tries the link gets "You do not have permission to view these results".
  • What happens when one file in a batch fails? Files are processed one at a time. A file that cannot be parsed is listed with "Failed to process PDF" and the rest continue, and a check is used only for files that succeed. If you have fewer checks left than files in the batch, the whole batch is refused before any work starts.

Last updated . How the samples were produced: we built small test PDFs with TCPDF, including one written deliberately out of visual order, a grayscale scan and an RC4-encrypted copy, and ran them through the same smalot/pdfparser 2.12 service this tool uses. The output shown is copied from those runs.

Do more with a free account

A free account adds API tokens for scripts and AI agents. Need files over 50 MB? Pro and AI accept up to 100 MB and remove the daily check limit.