Extract editable text from any PDF in your browser. Free, fast, with page-break options, word & character counts, copy-to-clipboard, and .txt download.
Pull all the text out of a PDF and into an editable, copy-paste-friendly textarea — entirely in your browser. The extractor reads each page's embedded text stream using <strong>pdf.js</strong>, reconstructs line breaks from the original layout coordinates, and assembles a clean plain-text representation that preserves paragraph structure. Configurable page-break style (nothing, blank line, "--- Page N ---" marker, or form-feed character), live word and character counts, copy-to-clipboard with one click, and one-click .txt download. Note: scanned PDFs that contain images of text (no embedded text stream) will return empty output — those require OCR, which is a separate operation. For born-digital PDFs (Word exports, web pages saved as PDF, software-generated reports), this tool extracts text faithfully.
PDF documents store text in two completely different ways depending on how they were created:
This tool extracts from the first kind. For the second kind you need OCR (Optical Character Recognition), which analyses the pixel image, identifies letter shapes, and reconstructs Unicode text from the visual content. OCR is a separate operation and can be done in-browser using libraries like Tesseract.js, but it is much slower (5-10× slower than text extraction) and never 100% accurate.
The page-break setting affects how the extracted text reads when copy-pasted somewhere else:
--- Page N --- between pages. Useful when you need to reference back to specific pages later (citation, page-number search, manuscript review).Three scenarios where you should reach for something else:
The PDFs people most often want to "convert to text" tend to be the most private documents in their digital lives — research papers, internal reports, draft contracts, financial statements, medical records, sensitive correspondence. Sending these to a server-based extractor for free puts them in the operator's hands; for some flavours of confidential content, that single act may breach an NDA, a contractual obligation, or professional duty.
Browser-based extraction sidesteps this entirely. The PDF loads into your browser tab, pdf.js parses it locally, and the extracted text appears in a textarea you can copy or download — all without any network round-trip. The pdf.js library does load once on first visit (about 1 MB), but every subsequent extraction runs purely on your CPU. Open the network inspector while extracting and you will see exactly zero upload requests; the only network activity is the initial library fetch, which is the same library that ships in every modern Firefox install.
Most likely the PDF is a scanned document — the pages are images of text rather than embedded text streams. PDF's "text content" only exists when the document was built from a text source (Word, browser print, software-generated report). Phone scanners and document cameras produce image-only PDFs unless they ran OCR after scanning. To extract text from a scanned PDF, run it through an OCR tool first (Adobe Acrobat, Tesseract.js, ABBYY FineReader), which converts the page images into searchable text. Once OCR has added a text layer, this tool can extract from it.
PDF stores text as positioned fragments (each piece of text has an x, y coordinate), not as a flowing document. The extractor reconstructs lines by detecting when the y-coordinate changes between fragments — a heuristic that works well for most documents but can produce subtle differences from the visual rendering. Multi-column layouts, footnotes, and tables can be especially tricky because the extractor reads top-to-bottom column-by-column, which sometimes interleaves columns or misorders sidebars. The output is editable, so you can clean up specific spots.
You choose. "Nothing" runs all pages together as one continuous stream. "Blank line" (the default) inserts a single empty line between pages — the most natural separator for human reading. "Page marker" inserts a labelled separator like <code>--- Page 3 ---</code>, useful when the page numbers matter for citation or reference. "Form feed" inserts the ASCII form-feed character (U+000C, the historical "page break" character) between pages — useful for piping into command-line tools that respect form-feed boundaries.
No. PDF text extraction produces plain text — formatting markup, fonts, sizes, bold / italic, and colour are stripped because plain-text output cannot represent them. If you need the visual layout preserved, use PDF to Images or PDF to Word instead. If you only need the words and structure, plain text is the right format.
No. The extraction runs entirely in your browser using pdf.js (a JavaScript library, the same one Firefox uses for PDF viewing). The PDF is loaded into memory, each page's text stream is parsed locally, and the result is built up character-by-character in your browser tab. No server is involved at any point. You can verify by disabling your network connection — extraction still works.
pdf.js can open many "permission-only" protected PDFs (those that allow viewing but block printing or editing). PDFs with a strong user password (refusing to open without a password) cannot be processed — decrypt them in your PDF reader first, then upload the unprotected copy.
200 MB file size cap. There is no page-count cap explicitly, but extraction time scales linearly with page count — expect roughly 1 second per 30-50 pages on a modern machine. A 1000-page PDF takes around 20-30 seconds; a 100-page PDF takes 2-3 seconds.
Related: pdf to text, extract text from pdf, pdf text extractor, pdf to txt, copy text from pdf, pdf text converter, pdf to plain text, extract pdf text online, pdf to text free, pdf text extraction tool, pdf to text no upload, browser pdf text extractor, pdf scraper, get text from pdf, pdf reader to text