What does PDF OCR do?
It renders selected PDF pages and recognizes printed text with Tesseract.js, then lets you copy or download the result as TXT or Markdown. It does not create Word or Excel files.
Pick language, quality, and page scope, run Tesseract OCR in the browser, then review confidence and download the text file.
Preparing the editor...
The guide and instructions on this page are available while the tool loads.
PDF OCR recognizes printed text on scanned or image-based PDF pages and returns that text as a downloadable TXT or Markdown file. Use it when words are visible on the page but cannot be selected or copied from an existing text layer.
After you choose language, quality, and page scope, pdf.js renders each selected page to a canvas at the chosen scale. Standard and Accurate quality apply a simple grayscale contrast pass; Fast skips that enhancement. Tesseract.js then recognizes each canvas in a browser worker. Progress updates as pages render and recognition runs. The original PDF is left unchanged.
Results depend on scan clarity, language choice, typography, skew, and layout. Clear printed text usually works better than handwriting, decorative fonts, blur, shadows, or low-resolution captures. Output is assembled page text—not a rebuilt multi-column layout or native table structure—so reading order on complex pages can look imperfect. Paged and Markdown modes keep page divisions; Plain joins page text without markers.
Recognition stays in the browser. PDF bytes, page images, and OCR text are not posted to a conversion or OCR API. The browser may still download Tesseract worker or trained language data for the selected language, load ordinary site assets and the pdf.js worker, and send usage or diagnostic metadata. Identified analytics for this tool do not include the filename, raw PDF, rendered images, or recognized text contents.
Accepts one PDF up to 50 MB. There is no hard page-count cap, but long jobs use substantial memory and time. There is no password field, so encrypted PDFs may fail. Only one listed language can be selected per run. This workflow does not create a searchable PDF or embed text back into the source. Downloads use {base}-ocr.txt or {base}-ocr.md. Reset clears the workspace and is not a dedicated mid-run cancel control. Proofread important values against the source pages.
Typical tasks this tool is built for.
PDF page rendering and OCR recognition run locally with pdf.js and Tesseract.js. The selected PDF, rendered page images, and recognized text are not uploaded to an OCR service. Tesseract worker or language data, ordinary site assets, and usage or diagnostic metadata may still be requested. Identified analytics may include sizes, page counts, language, quality, format, confidence averages, and status codes—not filenames, PDF bytes, page images, or OCR text.
Practical tips before you download or share the output.
PDF OCR accepts one PDF up to 50 MB. Page scopes: All, First, First 3, or Custom (e.g. 2, 4-7). Engine: Tesseract.js (^7) with pdf.js rendering. Quality scales: Fast 1.4, Standard 2 (default), Accurate 2.5; Standard/Accurate apply grayscale contrast enhancement—no deskew or auto-rotation. Languages (one per run, default English): English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Romanian, Russian, Arabic, Simplified Chinese, Japanese, Korean. Outputs: Paged/Plain → {base}-ocr.txt; Markdown → {base}-ocr.md. Not a searchable PDF. Confidence is an estimate. No password field. No mid-run cancel. Analytics may include sizes, pages, language, quality, format, avg confidence, and codes—not PDF bytes or OCR text.
Longer reads that pair well with this tool.
PDF guide
Match your PDF task to the right DevToolKit tool — merge, split, compress, convert, secure, or edit — and check processing labels before you upload.
PDF guide
Practical student workflows — compress scans, merge assignments, split chapters, convert phone photos to PDF, and protect personal records — with honest limits on OCR output.
Common next steps after using this tool.
Combine whole PDF files into one document that follows the order shown in your file list.
Reduce one PDF using JPEG page rasterization or a non-raster structure repack, then download a separate -compressed.pdf.
Encrypt one PDF with a required open password, optional owner password, and viewer permission presets or custom print, copy, edit, and annotate controls.
Build an editable DOCX from the PDF text layer, with optional Page N headings and best-effort Word tables.
Turn PDF text into an editable XLSX workbook with page sheets, detected-table sheets, or one combined data sheet.
Select pages and ranges from one PDF and copy them into one new extracted PDF downloaded directly.
Situations where this workflow saves time.
It renders selected PDF pages and recognizes printed text with Tesseract.js, then lets you copy or download the result as TXT or Markdown. It does not create Word or Excel files.
One PDF per run, up to 50 MB.
No hard page-count cap was found in the implementation. Very long documents can still strain browser memory and take a long time.
Default is All pages. You can also choose First page, First 3, or Custom ranges such as 2, 4-7. Invalid or out-of-range pages stop the run with an error.
Tesseract.js (package ^7) running in a browser worker, with pages rendered by pdf.js.
Locally in your browser. PDF bytes, rendered page images, and recognized text are not uploaded to an OCR service.
Tesseract.js may fetch worker assets and trained data for the single language you selected. That is separate from uploading your PDF for recognition.
English (default), German, French, Spanish, Italian, Portuguese, Dutch, Polish, Romanian, Russian, Arabic, Simplified Chinese, Japanese, and Korean. Only one language can be selected per run.
No. Automatic language detection and multi-language selection are not available.
Yes—that is the main use case. Pages are rasterized and recognized as images of printed text.
Often no. The tool inspects page 1 for an existing text sample and may mark OCR as optional. Running OCR on clean digital text can still introduce recognition mistakes.
Handwriting recognition is not a supported feature. Expect better results from clear printed text than from handwriting, stylized fonts, or poor photos.
No dedicated deskew or rotation-correction step exists. Standard and Accurate quality only apply a simple grayscale contrast pass after rendering.
There is no table-recognition or column-rebuild system. Multi-column pages and tables may appear in a mixed or simplified reading order in the text file.
No. It exports recognized text as .txt or .md. It does not embed an invisible text layer into the PDF.
Paged and Plain write {base}-ocr.txt. Markdown writes {base}-ocr.md. The source PDF filename stem is reused as {base}.
No. The result textarea is read-only. Copy or download the file and edit it in another app.
Per-page and average confidence come from Tesseract as estimates. High confidence does not guarantee correct names, numbers, dates, or punctuation—always proofread important values.
There is no password field. Encrypted PDFs may fail during open or rendering. Unlock an authorized copy first.
The workflow is browser-based, but rendering and recognition are memory-heavy. On phones or tablets, start with fewer pages or Fast quality.
There is no dedicated cancel control during a run. Reset clears the workspace afterward and is not true mid-run cancellation. Choose a smaller page scope before starting.
Identified events may include input/output bytes, page counts, hasTextLayer, quality, language, output format, page scope, pages processed, word count, average confidence, and error codes. They do not include the filename, raw PDF bytes, rendered page images, or recognized OCR text.
Browse related tools or open the full workspace.