Skip to content
Lizely

PDF to Text Converter

Extract the selectable text layer from every PDF page into a readable UTF-8 text file locally.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Choose one non-empty PDF up to 25 MiB and note that image-only scans require OCR.
  2. 2.Click Convert to Text to read bounded PDF.js text items in page order.
  3. 3.Review page separators and counts, then copy the text or download the UTF-8 TXT file.

About PDF to Text Converter

PDF to Text Converter extracts the selectable text content that PDF.js can read from each page and assembles it into a UTF-8 plain-text document. Choose a local PDF, start extraction, then preview the page and character counts, copy the output, or download a TXT file. Parsing and text assembly run in the current browser tab. Lizely does not upload the PDF or send its text to a document-processing service.

The converter reads the PDF text layer; it does not perform optical character recognition. A digitally created PDF usually stores characters, font references, positions, and text-showing instructions that PDF.js can expose. A scan may contain only page-sized images and therefore produce little or no text. If you can see words but cannot select them in a normal PDF viewer, an OCR tool is usually required and this converter will not invent a transcript.

PDF text is positioned, not stored as paragraphs in the same way as a word-processing document. Reading order can differ from visual order in multi-column pages, sidebars, tables, forms, headers, footers, or text drawn one glyph at a time. The converter follows the item order supplied by PDF.js, honors explicit end-of-line markers, and inserts conservative spaces between adjacent items. It avoids claiming that complex visual layout, columns, table cells, or semantic headings will be reconstructed perfectly.

Each page receives a clear page separator in the combined output. This keeps boundaries visible when a footer from one page and a heading from the next would otherwise run together. Empty pages remain represented, so page numbering in the report stays aligned with the source document. Repeated headers, footers, hidden text, ligature normalization, or accessibility ordering may appear according to the PDF's own structure and PDF.js interpretation.

The preview is inert plain text. The converter does not execute embedded scripts, follow links, fetch external resources, or interpret extracted content as HTML. Download uses a UTF-8 text Blob and a deterministic filename derived from the source name. Copy and download operate on the same assembled result, and changing the input clears stale output so counts cannot silently describe a previous extraction.

Bounded processing protects the tab: one file may be up to 25 MiB and 40 pages, with limits on text items per page, total text items, individual item length, and total output characters. A document that exceeds a limit returns an error rather than a partial success that looks complete. Encrypted, malformed, unsupported, or damaged files can also fail. The tool does not bypass passwords, repair PDFs, validate digital signatures, or determine whether document content is accurate or safe.

PDF.js and its shared worker are requested only after you press Convert to Text. They are not part of the initial page bundle and use the same fixed worker URL as other PDF.js tools for cache reuse. Text items are consumed from PDF.js in bounded stream chunks, and limits are checked before they are retained or joined into the final report. Page resources, stream readers, loading tasks, temporary download URLs, and result state are released during failure, cancellation, and component unmount.

Use this converter for quoting accessible text, creating a rough searchable draft, inspecting whether a PDF has a usable text layer, or moving simple page text into another editor. Review the result against the source before relying on it, especially for contracts, tables, scientific notation, or multi-column documents. Use PDF page image tools when visual fidelity matters, and use a dedicated OCR workflow when the source is image-only. The original PDF is never modified.

Methodology & sources

Load a bounded PDF only after explicit user action, request PDF.js text content for each page, retain string TextItems, honor hasEOL markers, add conservative spaces between adjacent items, preserve empty pages and explicit page separators, enforce item and character budgets, create one UTF-8 text Blob, and release loading tasks and object URLs when work is replaced.

Frequently asked questions

Does this tool use OCR?
No. It extracts the selectable PDF text layer. Image-only scans can return no text and need a separate OCR workflow.
Will columns and tables keep their visual layout?
Not reliably. PDF stores positioned text, so the output follows PDF.js item order and conservative spacing rather than recreating complex layout.
Is the document uploaded?
No. PDF parsing, text extraction, preview, copy, and TXT generation run locally in your browser.
Why are headers or spaces repeated?
The converter preserves page boundaries and follows text items exposed by the document; PDFs may encode headers, glyphs, and spacing in unusual ways.

PDF Tools guides

View all