PDF text extractor
Pull the text out of a PDF page by page, then copy it or download a .txt. The file never leaves this tab.
Source file
This PDF is password-protected.
Incorrect password. Try again.
Output options
Extracted text
Add one PDF to see its text here.
How to use it
- Drop one PDF on the card, paste it with ⌘V / Ctrl+V, or press “Choose PDF”. Text appears in the result box page by page — there is no Extract button. Copy and download unlock when every selected page is done and the status turns green.
- By default every PDF line stays a line and paragraphs are separated by a blank line. Tick “Merge lines into paragraphs” to join wrapped lines: end-of-line hyphens are removed, Chinese and Japanese lines join without a space, and other lines join with one space. Switching an option rearranges the text instantly without reading the PDF again.
- Type pages such as “1-3, 5” to keep only those pages, in the order you typed; a page listed twice appears once. Commas, Chinese enumeration marks and Arabic commas are accepted, as are Arabic-Indic, Eastern Arabic and full-width digits. Leave the box empty for all pages. Page markers such as “--- 3 / 12 ---” show the original page number and can be turned off.
- If the PDF needs a password, type it in the row that appears and press Enter. The password is only used to open the file in this tab.
Example
report.pdf — 3 pages, page 3 is a scanned image
Default options Pages: (empty = all)
Result box
--- 1 / 3 --- Quarterly report Revenue grew in every region… --- 2 / 3 --- Next steps 1. Review the budget 2. Book the venue --- 3 / 3 ---
A hint says “Page 3 has no text layer”. Page markers and the extracted text are never translated; the download is named report.txt.
Rules, limits and known issues
- Nothing is uploaded: the PDF is read with the File API and parsed by a Web Worker in this tab. The only network requests are this site’s own files — the PDF engine and worker when you add the first file, character maps for some Chinese, Japanese and Korean PDFs, and the sample when you ask for it. Nothing is stored, and a reload starts empty.
- No OCR. Scanned documents, PDFs made from screenshots and text inside images cannot be extracted; those pages are reported as having no text layer.
- Reading order follows the PDF’s internal structure. Multi-column layouts, tables, headers, footers and footnotes may be interleaved or come out in a different order from what you see; there is no layout analysis.
- Tables come out as cell text only. Column alignment is lost and cells on the same row may run together.
- Merging lines into paragraphs is a heuristic based on line spacing, font size and end-of-line hyphens. A hyphen that really belongs to a compound word can be removed when it falls at a line end, and a heading can occasionally be joined to the text below it.
- If a font has no Unicode mapping, its text comes out garbled or empty. That is a property of the PDF; copying from a PDF reader usually fails the same way.
- Arabic ligatures: some PDF producers (for example with certain macOS system fonts) map one ligature glyph to several characters, so the letters inside it may come out reversed (لا becomes ال). The tool does not guess a fix, so correct text is never changed.
- Vertical text is output in the PDF’s internal order; vertical reading order is not guaranteed.
- If the author restricted copying, the tool still extracts the text and shows a notice. Make sure you have the right to use it.
- Passwords: only the open (user) password is supported. It is used to open the document in this tab, is never saved, and the PDF’s encryption is not removed.
- Limits: one PDF at a time, 50 MB and 2,000 pages. Larger files are rejected with the actual size or page count. Files over 20 MB or 300 pages show a “may take a while” hint.
- The character count counts graphemes and leaves out page markers and line breaks. There is no word count for Chinese or Arabic; paste the result into the character & word counter for detailed statistics.
Related tools
Keep working on the extracted text with other tools that also run entirely in this tab.