📝 PDF to Text

Extract editable text from any PDF in your browser. Free, fast, with page-break options, word & character counts, copy-to-clipboard, and .txt download.

What is PDF to Text?

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.

How to Use

  1. Drag and drop your PDF (or click to browse). Extraction starts automatically.
  2. Choose how page breaks appear in the output — blank line (default), page-number marker, form-feed character, or no separator.
  3. Review the extracted text in the editable textarea. Tweak it if needed; edits stay local.
  4. Copy the text with one click, or download as a .txt file.
  5. For scanned PDFs (where pages are images, not text), use a separate OCR tool first.

How PDF text extraction actually works

PDF documents store text in two completely different ways depending on how they were created:

  • Born-digital PDFs — produced by Word, Google Docs, browser "Save as PDF", LaTeX, software reporting tools — store the actual text as Unicode strings inside the document's content stream. Each character has a font, a position, and a Unicode codepoint. Extracting text is a matter of walking the content stream and concatenating the strings.
  • Scanned PDFs — produced by phone scanners, copiers, document cameras, fax machines — store each page as an image (JPG or PNG) wrapped inside a PDF container. There is no text in the file at all; the "text" the human reader sees is just pixels arranged in letter shapes.

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.

Picking the right page-break style

The page-break setting affects how the extracted text reads when copy-pasted somewhere else:

  • Nothing — pages run together as a single continuous stream. Use when you do not care about page boundaries (e.g., you just want the prose for analysis, search, or import into an LLM).
  • Blank line (default) — single empty line between pages. Reads naturally for humans, treats each page as a "section". Good general-purpose choice.
  • Page marker — inserts --- Page N --- between pages. Useful when you need to reference back to specific pages later (citation, page-number search, manuscript review).
  • Form feed — ASCII U+000C between pages. The historical "page break" character that printers, terminal emulators, and some command-line tools (less, more, GNU coreutils) treat as a hard page boundary. Use when piping output into a tool that respects form-feed.

When PDF text extraction is the wrong tool

Three scenarios where you should reach for something else:

  • Scanned documents — the file contains images of text, not text. Use OCR (Tesseract.js, Adobe Acrobat, ABBYY) first to add a text layer, then re-extract.
  • Tables and structured data — PDF tables produce text that is grammatically correct but structurally lost. Cells get joined into one line, columns get interleaved, headers get separated from data. For tables, use a dedicated PDF-to-CSV / PDF-to-Excel tool that reconstructs cell boundaries from coordinate data.
  • Mathematical / scientific content — equations, sub/superscripts, and special symbols often render correctly visually but extract as broken Unicode (e.g., a fraction's numerator and denominator end up on separate lines, or special math characters drop out entirely). For LaTeX-source documents, the original .tex file is the right source. For other math-heavy content, MathPix or specialized extraction tools work better.

Privacy: text extraction is the most sensitive PDF operation

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.

Frequently Asked Questions

Why is my extracted text empty?

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.

Why are the line breaks slightly different from the original?

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.

How are page breaks handled?

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.

Will the output preserve formatting like bold, italics, or fonts?

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.

Are my files uploaded?

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.

Does this work for password-protected PDFs?

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.

Is there a length or page limit?

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 Tools

  • 🖼️ PDF to Images (JPG, PNG, WebP) — Convert PDF pages to JPG, PNG, or WebP images. Free, browser-based, with quality slider, DPI control, page pic
  • ✂️ Extract PDF Pages — Extract specific pages from a PDF into a new file. Free, browser-based, supports ranges like "1-3, 5, 7-9", od
  • 📄 Merge PDF — Combine multiple PDF files into one — drag, drop, reorder, and merge in your browser. Free, unlimited, no uplo
  • 🔄 Rotate PDF — Permanently rotate PDF pages 90°, 180°, or 270° in your browser. Free, no upload, no watermark — supports per-
  • ✂️ Split PDF — Split a PDF into multiple files — every page, every N pages, or custom ranges. Free, browser-based, downloads
  • 🖼️ Image to PDF — Convert JPG, PNG, WebP, GIF, and HEIC photos into a single PDF in your browser. Reorderable thumbnails, page-s
  • 🖼️ PDF to JPG — Convert PDF pages to JPG images in your browser. Free, fast, with a quality slider, DPI control, page picker,
  • 📝 Word to PDF — Convert .docx Word documents to PDF in your browser. Best-effort text conversion — preserves headings, bold, i

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