pdfmdtools.com

PDF to Text

Extract PDF text or recognize image-only pages, then download a TXT file.

or drop one PDF here

No file selected

Choose a PDF to start.

In your browserNo uploadsNo account

How to convert PDF to Text

  1. Choose your PDFChoose one local PDF.
  2. Choose extraction settingsKeep Layout-aware text for the default reading order. For image-only scans, enable local OCR and choose the printed language.
  3. Convert and reviewConvert, review the extracted text against the source PDF, then download TXT.

Reading order, OCR and plain-text output

Text, columns and tables

TXT has no original font design, images or table borders. In the default mode a detected wide gutter is read as left column then right column. Repeated aligned cells can be emitted as tab-separated lines; the simple baseline flattens each line with spaces.

Layouts that need review

These are layout heuristics, not recovered document semantics. Wrapped cells, merged tables, sidebars and irregular layouts still require comparison with the PDF.

Page boundaries and encoding

PDF source page boundaries are separated by a form-feed character in the TXT file. Each source line normally remains a line. UTF-8 is used for the download, with an optional byte-order mark. That marker helps some readers identify the encoding; it does not repair missing PDF glyph mappings or add OCR.

Text layers and image-only scans

Mixed pages with an existing text layer use that layer; words inside their images can remain unrecognized. For image-only scans, local OCR recognizes the selected printed language. Compare recognized words and identifiers with the PDF before using them.

Support and limits

One unencrypted PDF per run; input up to 30 MB, 60 source pages for text extraction or 10 source pages when OCR is needed; 500,000 extracted characters per run. OCR languages currently available are English and Simplified Chinese + English; other languages are not offered.

Encrypted PDFs, rotated pages/text and font-defined vertical writing are rejected. OCR disabled on an image-only page, empty OCR results or a failed page stop the whole file; no partial TXT is presented as complete.

Images, forms, annotations, hyperlinks as interactive objects and original page design are not exported. Existing PDF text may itself be incomplete or incorrectly encoded. A 90-second timeout check occurs between pages, so a difficult individual page can still occupy your browser longer.

OCR downloads its engine and selected language data when needed. First use takes extra downloads and initialization; device speed and network conditions affect the wait. PDF rendering and recognition use device memory, CPU and battery. Pages are processed sequentially and the OCR worker is terminated after success or failure. Phone speed and peak memory have not been measured.

Test files and results

Tested on: . Original checks: October 13, 2026.

These three English fixtures check a clean image-only scan, two-column reading order and a simple aligned table. The results apply to these fixed files and settings, not every PDF. Each input is one US Letter page. The scan used English OCR with automatic page segmentation; the text-layer examples used Layout-aware text. The UTF-8 byte-order mark was enabled. On October 25, all three English files were converted and downloaded again with the same settings; each TXT matched its original checked download byte for byte. Download the recheck record.

Input / failure pointObserved TXT outputRemaining limitation
Image-only scan: no text layerWith local OCR enabled, English, automatic page segmentation, the same scan returns both expected lines: SCAN-ONLY-001 and This text exists only in page pixels.This fixed clean scan passed; noisy scans, handwriting and other languages are not proven.
Two columns: row sorting mixes columnsLEFT01–LEFT04, then RIGHT01–RIGHT04. All eight identifiers appear once.Column design is normalized to a reading sequence; other layouts need review.
Three-column table: cell boundaries become spacesSeven rows use tabs, three fields each. All 21 field values match the expected source.TXT has no rich table or borders. This fixture does not test merged/wrapped cells.

Actual TXT downloads: English scan OCR · Column reading order · Tab-separated table.

Earlier five-file checks, baseline comparison and OCR measurements

The original record below includes mixed-language samples and the observed recognition error. It is retained as historical evidence, separate from the three English examples above. Its timings are individual October 13 measurements, not a speed promise for your device.

Original five-file check

5 self-made PDFs checked: local OCR recovered both English scan lines; the Chinese scan misread ZH003 as ZHO03. Text-layer tests retained 8 column IDs, 21 table fields and all Chinese lines. Review OCR errors; original page design is not preserved.

Swipe across the table on a small screen.

Input / failure pointObserved TXT outputRemaining limitation
Image-only scan: no text layerWith local OCR enabled, English, automatic page segmentation, the same scan returns both expected lines: SCAN-ONLY-001 and This text exists only in page pixels.This fixed clean scan passed; noisy scans, handwriting and other languages are not proven.
Two columns: row sorting mixes columnsLEFT01–LEFT04, then RIGHT01–RIGHT04. All eight identifiers appear once.Column design is normalized to a reading sequence; other layouts need review.
Three-column table: cell boundaries become spacesSeven rows use tabs, three fields each. All 21 field values match the expected source.TXT has no rich table or borders. This fixture does not test merged/wrapped cells.
Chinese text layer: encoding and completeness checkThe same correct text. UTF-8 download matches the preview exactly.No failure occurred here; we do not invent a before-fix corruption. This is not proof for every CJK PDF.
Chinese image-only scan: same page rasterized, no text layerWith Simplified Chinese + English OCR, the title and three body lines are present, but ZH003 becomes ZHO03 (zero misread as letter O).The identifier error remains in the actual TXT; no automatic correction or perfect-recognition claim.

Download the five PDF inputs, actual extraction/OCR TXT files and settings. Open the TXT as UTF-8, repeat both modes on the same input and compare every line with the PDF. Table inference and column separation depend on coordinates; when values or order disagree, the source PDF is the reference.

Test files, settings and baseline comparison

On 13 October 2026 we first ran four self-made PDFs twice, for eight main text-extraction runs with OCR off. We then added local OCR and ran the same English scan plus a fifth input: an image-only version of the Chinese page. Each input has one US Letter page (612 × 792 points). The scan is a locally generated page image. The column and table fixtures use Helvetica 11-point text. The Chinese text-layer fixture uses a Noto Sans SC fixture font at 18 points for the title and 14 points for the body. These are synthetic records, not customer documents.

Settings: first choose Simple line order, then Layout-aware text. Keep the same input and UTF-8 byte-order mark enabled for both runs; OCR is off for this original reading-order comparison. “Before” and “after” below are those two settings, not historical production releases. We downloaded the actual TXT each time and checked its bytes and text independently of the preview.

Swipe across the table on a small screen.

Input / failure pointBaseline result
Image-only scan: no text layerPage 1 rejected. No TXT download.
Two columns: row sorting mixes columnsLEFT01, RIGHT01, LEFT02, RIGHT02…
Three-column table: cell boundaries become spacesSeven rows use spaces between cell values.
Chinese text layer: encoding and completeness checkTitle and all three numbered Chinese lines retained correctly.
Chinese image-only scan: same page rasterized, no text layerWithout OCR there is no extractable text.

A separate Chinese download with the byte-order mark switched off also decoded correctly as UTF-8. Changing the mark did not change the extracted Chinese. With OCR off, a mixed file with a text page followed by a scan failed at page 2 and offered no partial TXT. Rotated and encrypted test files were also rejected with an explanation.

Checks searched for all eight column identifiers, compared each of the 21 table fields and compared the full Chinese lines, rather than looking only for a “Done” message. The six successful main downloads equal their preview text after removing the UTF-8 marker. These observations belong to these fixed files; no general accuracy percentage follows.

OCR timing and network transfer

Measured click-to-result OCR time and network transfer

On 13 October 2026 every condition below was measured once on this Windows machine, one run per case, no averages. The host reports an AMD EPYC 9754 processor; that is the reported model, not a statement of dedicated CPU allocation. Input: our one-page English image-only scan.pdf, English OCR, Layout-aware text, UTF-8 marker on; rendered image 1,836 × 2,376 pixels.

The timer starts when the Convert button handler receives the click and ends after the result has had a rendering frame. It includes PDF reading and rendering, OCR script loading when needed, worker initialization and recognition; file selection and saving the download are excluded.

ConditionObserved click-to-result timeMeasured network transfer
First OCR in a newly opened page, this previously used browser (cache not cleared)1796 ms (1.796 s)Not recorded
Convert the same file again in that page (cache not cleared)1808 ms (1.808 s)Not recorded
Close the tab, reopen the page in the same browser, then convert (cache not cleared)1660 ms (1.660 s)Not recorded
First-ever visit with an empty browser cache (this origin’s HTTP cache cleared immediately before the run)1937 ms (1.937 s)4,711,013 bytes
Repeat the same file in that same page immediately after the cold run (cache now warm)1446 ms (1.446 s)0 bytes
Physical mobile phoneNot measuredNot measured

Network transfer is measured inside the browser for that run, not estimated from stored file sizes. For the single cold-cache English OCR conversion above the browser fetched 4,711,013 bytes: the English language pack 2,953,173 bytes, the relaxed-SIMD LSTM engine core 1,424,826 bytes, the OCR worker script 32,313 bytes, the PDF.js worker 290,005 bytes, the OCR entry script 10,063 bytes and the audit worker 633 bytes.

In the repeat run immediately afterwards every one of those resources was served from the browser cache and the measured transfer was 0 bytes, yet the click-to-result time still waited for a new worker and a fresh recognition. These figures are this machine and this network connection — a data-centre host, not household broadband — so a slower connection will transfer the same bytes more slowly.

The first three rows were measured before any cache clear and may have reused resources from earlier tests; they are not cold-cache measurements and the transfer was not recorded for them. The cold-cache row is a single first-ever visit after this origin’s HTTP cache was cleared; it is not an average and not a promise for your device.

The return visit in row three means closing and reopening the tab immediately in the same browser, not returning on another day or after a browser restart; those cases were not measured. All five desktop runs returned the two expected English lines. Repeated conversion still waited: the script can be reused, but this tool initializes a new worker and recognizes the page again.

We have not measured phone timing, phone memory or peak memory.

OCR settings and processing details

OCR settings: Tesseract.js 7.0.0, LSTM engine, automatic page segmentation (PSM 3), render scale up to 3 with the longer image side capped at 2,400 pixels. Each one-page Letter scan renders to 1,836 × 2,376 pixels. English or Simplified Chinese + English is selected explicitly. The OCR entry script, worker, engine and selected language data load only after conversion reaches an image-only page with local OCR enabled.

Opening this page or converting a text-layer PDF does not request these OCR files. Bundled file sizes are 62,961 bytes for the OCR entry script, 2,952,873 bytes for the English language pack and another 1,718,768 bytes for Simplified Chinese; engine files add several megabytes. These are stored file sizes, not memory usage.

The measured network transfer for a first uncached English OCR run and for a repeat run is given under “Measured click-to-result OCR time and network transfer” above; actual transfer depends on the engine variant, compression and cache. The first scan conversion requires extra downloads and initialization; later runs may benefit from the browser HTTP cache, but a new worker is initialized for each conversion.

Worker execution keeps recognition off the main thread, but PDF rendering, model loading and OCR still use device memory, CPU and battery and can make a phone warm or slower. Pages are processed sequentially, render size is capped and the worker is terminated after success or failure. This does not guarantee a responsive phone or constant memory use. These tests do not establish phone speed or peak memory.

Convert PDF to TXT without uploading

Choose one PDF with a text layer or image-only scan, review the extracted text, then download its TXT file. PDF.js reads the selected local bytes in this browser. Code, workers, CMaps, standard fonts and OCR language data load from this site; your selected document is not sent to a conversion server. No account, model call or paid conversion API is involved.

Limits before you start

This tool extracts existing PDF text and can recognize image-only pages with local OCR. For scanned PDF to text, keep local OCR enabled and select the printed language. PDF to text OCR runs inside this browser. Mixed pages with an existing text layer use that layer; words inside their images can remain unrecognized. OCR disabled, empty OCR results or a failed page stop the whole file; no partial TXT is presented as a complete document. Rotated pages/text, font-defined vertical writing and encrypted PDFs are rejected.

One file per run; input up to 30 MB, 60 source pages for text extraction or 10 source pages when OCR is needed ; 500,000 extracted characters per run. There is no daily account quota. OCR languages currently available: English and Simplified Chinese + English; other languages are not offered. A 90-second timeout check occurs between pages, so a difficult individual page can still occupy your browser longer. Images, forms, annotations, hyperlinks as interactive objects and the original page design are not exported. Existing PDF text may itself be incomplete or incorrectly encoded.

Local processing and privacy

The selected PDF is read and TXT is created in this browser. Your document and extracted text are not uploaded to a conversion server or saved as a conversion history. Conversion code, workers, fonts and selected OCR language data load from this site. Loading these resources is separate from uploading a document.

Separate website-delivery and analytics requests are described in our privacy policy; document contents and conversion results are not sent as analytics events. There is no account, model call or paid conversion API.

Frequently asked questions

Why did the TXT download link disappear after I changed a setting?

A setting change clears the previous result. Select Convert to TXT again, review the new text and then download it.

Why does the downloaded TXT look different in my text reader?

Compare it with the source PDF and the preview first. If the preview is correct, open the TXT as UTF-8; the optional byte-order mark can help the reader detect that encoding. If the extracted text itself is wrong, changing the encoding cannot restore it.

Page updated: