About PDF to text
PDF to text pulls the text layer out of a PDF and gives you a plain UTF-8 .txt file, or a copy-to-clipboard button when you just want to paste it somewhere. Extraction starts the moment you add a file: pdf.js reports every positioned text run, and PDFChamp rebuilds the visual lines from the end-of-line markers and baseline shifts so the output is not one endless paragraph. Pages are separated by a blank line. It is the fast way to grab a quotation out of a report, feed a contract into a search index or a language model, diff two revisions of a specification, or check what text a PDF actually contains. Queries like extract text from PDF, PDF to TXT and copy text out of a PDF all describe this tool.
PDF to text specs
| Price | Free ($0) — no paid tier |
|---|---|
| Account | Not required |
| Watermark | None |
| Where it runs | In your browser, on your device |
| File upload | No file is uploaded |
| Input | PDF (1 file) |
| Output | TXT |
| File size limit | Limited only by your device's memory |
| Works offline after the page loads | Yes |
How to use PDF to text
Drop the PDF
Drag a PDF onto "Drop your PDF here or click to browse". There is no convert button — extraction begins immediately and the status line counts "Reading page 6 of 40…" as it goes.
Read the summary
When it finishes, the status bar reports what was found, for example "Extracted 18,412 characters from 40 pages". A zero-character result means the PDF has no text layer.
Skim the preview
The "Extracted text" panel shows the first 2,000 characters in a monospaced box; the hint above it tells you whether you are looking at the full text or a truncated view.
Copy or download
Use Copy text to put the entire extraction on your clipboard — not just the previewed portion — or Download .txt to save it as name.txt.
Start over
Reset clears the file and the extracted text, so nothing from the previous document is left on screen when you load the next one.
Frequently asked questions about PDF to text
I got an empty result — why is there no text in my PDF?
An empty extraction almost always means the PDF is a scan: the pages are photographs of a document and there is no text layer for pdf.js to read. The tool says so directly rather than handing you a blank file, and points at OCR PDF, which runs character recognition over the page images and produces a searchable PDF you can bring back here. The other cause is a PDF whose fonts are embedded as subsets with broken or missing character maps, common in output from old drafting and typesetting software; the page looks like text, but every glyph maps to a meaningless code point, so you get garbage instead of nothing. Character recognition is the fix in that case too, because it reads pixels rather than trusting the encoding.
Does the output keep the layout of columns and tables?
Layout is not reconstructed — the output is reading order, one line per visual line, with a blank line between pages. Two-column pages interleave badly, because pdf.js reports runs roughly in the order the page paints them rather than in the order a human reads them, and a table collapses into a stream of cell values with no column alignment. That is a deliberate trade: reconstructing geometry accurately is a different problem, and PDFChamp solves it in different tools. If your PDF is mostly tabular, PDF to CSV and PDF to Excel cluster the same text runs by x and y position into real rows and columns. For prose, headings and single-column reports the line reconstruction here is usually clean enough to use as-is.
How is this different from selecting all the text in a PDF reader and copying it?
Copying from a reader gives you whatever that reader's selection model produced, usually with hard line breaks stripped or duplicated and page furniture mixed in, and it becomes painful past a few pages. This tool walks every page programmatically, keeps one output line per visual line by combining pdf.js's end-of-line flags with baseline changes, separates pages with a blank line and hands you the whole document at once as a file. It also reports the character count and page count, so you can sanity-check that nothing was skipped. For a two-page memo the difference is small. For a 300-page manual, or a batch of documents you want to search or script over, it is the difference between a minute and an afternoon.
Are hyperlinks, footnotes and headers included?
PDF to text extracts the visible text printed on the page and nothing else. A URL printed on the page comes through as text, but a PDF link annotation attached to the words "click here" does not — the destination lives in an annotation object this extraction does not read, so you get the words and lose the target. Running headers, footers and page numbers are part of the page's text, so they appear on every page in the output; strip them afterwards if they are noise. Footnote text is extracted where it physically sits on the page, at the bottom, not inline at its reference marker. Images, form-field values and review comments also live outside the text layer and are not included.
Does Copy text copy everything or just the 2,000-character preview?
Copy text puts the complete extraction on your clipboard, not the truncated preview. The preview box is capped at 2,000 characters purely so the page stays responsive on a long document — the full string is held in memory, and both Copy text and Download .txt use all of it. The button confirms with "Copied" and the status line says so too. Clipboard access needs a secure context, which the site provides, but a browser can still refuse if the tab lost focus at the moment you clicked; if nothing pastes, click back into the page and press it again, or use Download .txt, which never depends on clipboard permissions at all.
Is the text I extract ever sent anywhere or saved?
The extracted text exists only in the memory of the tab you are using. Your PDF is read from disk by the browser, parsed by pdf.js inside the same page, and the resulting string sits in the component's state until you press Reset, close the tab or navigate away — it is not written to local storage, not sent to an analytics endpoint and not uploaded, because the tool has no upload path. That matters more here than in most converters, since the thing being produced is the readable content of the document. The tool is free with no account and no length limit; the practical ceiling is how much text your browser is happy to hold in one string.
Why in-browser processing matters
Every PDFChamp tool runs inside this page: the file you choose is read by JavaScript in your own browser and is never sent to a server, so nothing is uploaded, queued, or stored anywhere. That removes the upload wait, the processing queue, and the question of what happens to your file afterwards — the about page compares this architecture with server-side PDF tools.
Last updated