Image to Markdown (OCR)
Drop PNG, JPG, WebP or TIFF images — or a scanned PDF — and get editable Markdown. The OCR engine (Tesseract) and the PDF renderer run entirely in your browser, so your files never leave your device.
Drop images or a scanned PDF
PNG, JPG, WebP, BMP, GIF, TIFF or PDF — multi-page PDFs supported
Tip: copy content in Word and press Ctrl+V anywhere on this page
The first run downloads the OCR language data (about 2–15 MB) from a CDN; your browser caches it afterwards. The images and PDFs themselves are never uploaded.
How in-browser OCR works
OCR — optical character recognition — turns pixels into text. The quality of the result depends on how clean the source is: scanned pages, phone photos of documents and screenshots all carry different amounts of noise, skew and blur.
This page runs two engines locally. Scanned PDFs are rendered page by page to a canvas with pdf.js; every page — or every image you drop — is then recognised by Tesseract compiled to WebAssembly. Both run inside your browser tab, so the file you choose is never uploaded.
Recognized pages are combined into one Markdown document. If you pick HTML, RST or LaTeX as the output, the Markdown is piped through the Pandoc engine to your target format — still entirely on your device.
Getting accurate OCR results
Scan at 300 DPI or higher and keep the page straight. Low resolution and heavy skew are the two biggest causes of misread characters; the engine renders each page at up to 2200 px on its long edge to give the recognizer enough detail.
Choose the language that matches the document. The recognizer loads one language model at a time, and asking for the wrong script (English on a German scan, for example) increases both the error rate and the processing time.
Tables, forms and multi-column layouts come out as plain lines rather than structured Markdown — OCR reads text, not layout. Expect to tidy up tables by hand, and always proof-read numbers, names and codes.
Image & PDF OCR FAQ
+Are my images uploaded to a server?
No. The OCR engine (Tesseract) and the PDF renderer run in your browser via WebAssembly. Only the language data is fetched from a CDN on first use — your images and PDFs never leave your device.
+Which languages can it recognize?
English, German, French, Spanish, Italian, Portuguese, Simplified Chinese and Japanese. Picking the document's own language in the OCR language dropdown gives the best accuracy.
+Can it read scanned PDFs?
Yes. Multi-page PDFs are rendered page by page and recognized in order — exactly the case that the PDF-to-Markdown page flags as needing OCR.
+Does it keep the original layout?
OCR reads text, not layout, so tables and multi-column pages come out as plain lines. Simple paragraphs, headings and lists read best. Always proof-read numbers and names.
+How accurate is it?
It depends on the source. A clean 300 DPI scan is usually excellent; a blurry phone photo or a skewed page will need corrections. Higher resolution and the correct language give the biggest gains.