Skip to content
PDF Tools
Runs on your deviceNothing you type here is sent anywhere — the whole tool is JavaScript in this tab.

Bulk OCR — OCR All Files in a Folder at Once

Select an entire folder — JPG, PNG, WEBP, BMP, or PDF, subfolders included. Every file is OCR'd in your browser via Tesseract.js, in parallel, with a live progress bar and confidence score per file. Export one combined Markdown/JSONL/CSV file, a ZIP of individual text files, or a single merged, searchable PDF. 100% private — no upload

Input

Drop an entire folder here

JPG, PNG, WEBP, BMP, PDF · subfolders included · up to 300 files, 500 MB — nothing is uploaded

OCR Settings

More workers OCR more files at once — and use more memory. 2 is a safe default.

Limits

Up to 300 files, 500.0 MB total per run. JPG, PNG, WEBP, BMP, and PDF only — TIFF has no in-browser decoder, so it's skipped with a reason shown per file.

Supported

JPG · PNG · WEBP · BMP · PDF (scanned or text) · subfolders included

Combined Output

OCR results appear here as each file finishes — combined text, Markdown, JSONL, CSV, a merged searchable PDF, and a token summary.

What is bulk OCR?

Bulk OCR means running OCR (optical character recognition) on every image and PDF in a folder in one pass, instead of opening each file one at a time. Point it at a folder of 50 scanned receipts, 100 photographed invoices, or a stack of scanned contracts, and it comes back with one combined, searchable body of text — a job that takes hours by hand and a couple of minutes here.

How to OCR all images in a folder at once

  1. Click Select Folder and choose the folder — JPG, PNG, WEBP, BMP, and PDF are all read; subfolders come along automatically.
  2. Pick a language: English, Hindi, or English + Hindi.
  3. Click Start OCR All. The file table updates live — status, per-file progress, and a confidence score as each one finishes.
  4. Watch the overall progress bar (files done, elapsed time, ETA) or keep working — the combined output tabs fill in as each file finishes, not just at the end.
  5. Download a ZIP of individual .txt files, one combined Markdown/JSONL/CSV file, or the merged searchable PDF.

No Python, no install, nothing uploaded.

Bulk OCR vs single-file OCR vs desktop tools

MethodInstall?PrivacySearchable PDF?Cost
Toolsda Bulk OCRNone — folder picker in browser100% private, nothing uploadedYes, mergedFree
Python + pytesseract scriptPython + Tesseract + pip installLocal, no UINo — code onlyFree
Desktop bulk-OCR apps.exe/.dmg installLocalUsually yesFree–paid
Cloud OCR APIs (per-image billed)Script/SDK setupImages leave the deviceDepends on servicePer image

File types and limits

JPG, JPEG, PNG, WEBP, BMP, and PDF (scanned or text) are supported — up to 300 files and 500.0 MB total in one run, which is a browser-memory ceiling rather than a server quota, since nothing is uploaded. A multi-page PDF is OCR'd page by page and combined with --- Page X/Y --- markers. TIFF is deliberately not supported: no browser can decode it through canvas without an extra library, so it's skipped with that reason shown per file rather than silently failing.

Getting the best accuracy out of a bulk run

  1. Pick the right language — English, Hindi, or English + Hindi for mixed documents.
  2. Higher-resolution scans OCR more accurately than a small or blurry phone photo.
  3. Check the per-file confidence column — anything under ~80% is worth a manual look before you trust it.
  4. 2 parallel workers is the safe default; 4 finishes faster on a fast machine at the cost of more memory.
  5. Use Retry failed rather than starting over — only the failed files re-run.

Real use cases

  • Receipts → expense report. OCR a folder of 100 receipt photos, download the combined text, and paste it into an LLM to categorize spend.
  • Scanned books → a searchable library. OCR a folder of scanned chapters into one merged searchable PDF you can Ctrl+F across.
  • Invoices → structured data. Export JSONL and feed it to an LLM or a script to pull out invoice numbers and totals.
  • Legal documents → keyword search. OCR a folder of scanned contracts into one searchable PDF and find every mention of a clause instantly.

How it works, technically

The folder picker uses the browser's webkitdirectory API (a dropped folder is read via DataTransferItem.webkitGetAsEntry(), walked recursively) — nothing is uploaded at any point. Each image is handed straight to a Tesseract.js worker; each PDF page is rendered to a canvas via pdf.js first, then OCR'd the same way. Several files run at once across a small pool of Tesseract workers rather than one at a time. The merged searchable PDF is built with pdf-lib: the original page image plus an invisible text layer positioned at each recognized word's bounding box — the same technique commercial OCR software uses, running entirely client-side.

Why a browser tool instead of a Python script?

A pytesseract loop needs Python and Tesseract installed, a script written, and produces no searchable PDF, no token count, and no UI — it's the right tool if you're already comfortable in a terminal. This tool trades that flexibility for zero setup: drop a folder, watch a progress bar, get a searchable PDF and a combined export in the format an LLM or a spreadsheet actually wants.

Related tools

  • Receipt OCR Parser — a folder full of receipts? Parse merchant, total, tax, and an items table into Excel per receipt instead of just raw text.
  • PDF to LLM Optimizer — OCR one scanned PDF and see its vision-token cost vs. its OCR'd text cost.
  • Image to LLM Optimizer — OCR one image and compare it against sending it as a vision tile.
  • File to Tokens — count tokens for any file and check whether it fits GPT-4o, Claude, or Gemini's context window.
  • RAG Chunker — split a large combined OCR export into overlapping chunks for retrieval.
  • Merge PDF and PDF to JPG — reshape files before or after a bulk run.

Frequently asked questions