Drop your image or PDF here

or click to browse — JPG, PNG, WebP, PDF supported

JPG PNG WebP PDF
Preview
Initialising OCR engine…
0%
Language
Extracted Text
0 words
0 characters
 pages

Frequently Asked Questions

No — never. All OCR processing happens entirely inside your browser using Tesseract.js and PDF.js, both open-source JavaScript libraries. Your file never leaves your device, and no data is sent to any server. This means your documents, photos, and their contents stay completely private.

You can upload JPG, PNG, and WebP images, as well as PDF files (including multi-page PDFs). For PDFs, each page is rendered individually and then processed for text. You can view individual page thumbnails and the extracted text from all pages is combined into one output.

Accuracy depends heavily on image quality. For clear, high-resolution documents with standard fonts, accuracy is typically 95–99%. Results are lower for handwriting, decorative fonts, low-resolution scans, or images with complex backgrounds. The confidence indicator shown after processing gives you a rough guide to result quality. For best results, use high-resolution, well-lit images with dark text on a light background.

This tool uses Tesseract OCR, which is optimised for printed text rather than handwriting. Neat, block-capital handwriting may produce reasonable results, but cursive or irregular handwriting will typically be inaccurate. For handwriting recognition, a dedicated AI-powered tool would give better results.

The first time you use this tool in a browser session, Tesseract.js downloads the OCR language model file for your selected language (typically 2–10 MB depending on language). This is cached by your browser, so subsequent runs in the same session are much faster. The download only happens once per language per session.

Yes — use the Language dropdown that appears after your first OCR run, then click “Re-run OCR” to process the same file with the new language model. This is useful if a document contains mixed-language content or if the initial language setting was wrong.