Image / scan -> TXT · Local tool
OCR: Image to Text
Read the text out of an image or a scanned PDF, on your own device.
Last updated
01 / Your device
the file stays here
02 / Browser memory
the work runs locally
03 / Back to you
saved on this device
When you would use this
Situations, not settings.
- A scanned page you cannot select text in
- A scan is a picture of words. Recognition turns it into text you can copy, without the page leaving your device.
- A number on a photographed receipt or bill
- Faster than typing it out, and the recognition happens on your machine rather than on someone's server.
- A screenshot with text you cannot copy
- Error messages and slides arrive as images all the time. Read the text out instead of retyping it.
How it works / no cloud
A conversion engine, not an upload form.
filetity runs PP-OCRv6, an open-source text recognition model from the PaddleOCR project, inside your browser on ONNX Runtime compiled to WebAssembly. The model finds each line of text in the picture, reads it character by character, and reports how sure it is about every line. The engine is about 9 MB and downloads once, from this site, the first time you press the button. Your file is never uploaded; there is no server to upload it to.
- Offline ready
- Installable app
- No file limit queue
Straight answers
No accordion. Nothing hidden.
- Is it free?
- Yes, with no watermark and no page limit.
- Does it need an account?
- No. There is no account system.
- Is my file processed on my device?
- Yes. The file is read by your browser and never uploaded. There is no server to send it to.
- What formats are supported?
- PNG, JPG, WEBP or PDF in. Plain text out, on screen and as a .txt download. A PDF is read page by page.
- What are the limits?
- Printed text in Latin alphabets and Chinese. It does not read Arabic, Cyrillic, Korean, Japanese kana or Devanagari, and handwriting is hit and miss. Lines the model itself scored low are flagged, though a confident misread can still slip past the flags, so the output is shown for checking rather than downloaded blind.
- Does it work on mobile?
- Yes, on any modern mobile browser. Large files are limited by the memory the phone gives the browser.
- Does it work offline?
- Yes, after the first use. The engine is about 9 MB and downloads once, then your browser keeps it, so later visits work with no network connection.
- Can it extract text from an image or a screenshot?
- That is the whole job. Drop a photo, a screenshot, a scan or a page from a PDF and the words come back as text you can select and paste. A screenshot is the easiest case for it, because the letters are already crisp and evenly lit; a photograph of a page is harder and a photograph taken at an angle is harder still. It runs on your own device, so the picture is never uploaded, which matters when the thing you are copying text out of is a payslip or a letter.
- How accurate is it?
- On a clean screenshot or scan of printed text, close to perfect: our own rendered-page test came back 232 of 233 characters right, and the one miss was a space. On a deliberately noisy, tilted, low-quality photo of the same text it read 95 percent of the characters, and the mistakes it did make were confident ones the flags did not catch. That is the honest shape of OCR: very good, never guaranteed, so check numbers and names against the original.
- Can it read a scanned PDF?
- Yes. Each page is drawn to an image in your browser and the text is read out of the picture, which is exactly what a scan needs. A PDF that already has a text layer is better served by the PDF to Text tool, which copies the real characters instead of recognising them.
- Why is the download so big?
- The engine is a neural network, about 9 MB with its runtime, and reading letters out of pixels genuinely needs one. It downloads the first time you use the tool, from this site, and your browser caches it, so it is a one-time cost. Nobody who visits any other page on this site downloads a byte of it.
- Does it read handwriting?
- Sometimes, badly. The model is trained on printed text; neat block capitals often come out usable, cursive rarely does. Anything it does read from handwriting deserves a closer look than usual, and the confidence flags will usually tell you that themselves.
- What does a flagged line mean?
- That the model's own confidence for the weakest word on that line fell below 0.75. The engine already discards anything under 0.5 as not text; between those two numbers a line is usually real text with one wrong character in it. Check the flagged lines against the original before you trust them.
How this one works
- A pdf.js render stops when the tab is hiddenpdf.js paints on requestAnimationFrame, which a hidden tab never fires. No error, no rejection, no timeout. Measured, with the line of source that does it.
- How to tell if a PDF is scanned or has a text layerFour checks you can run in any PDF viewer to tell a scan from real text, what each result means, and which kind of tool each one needs next.
Keep working locally
7 available · more coming
- PDF to TextPull the text out of a PDF, page by page, and copy it or save it as .txt.
- PDF to JPGTurn each page of a PDF into a JPG image at the resolution you pick.
- Compress PDFCompress a PDF to a size you name, or to settings you choose.
- Merge PDFCombine several PDFs into a single file, in page order you choose.
- JPG to PDFTurn JPG or PNG images into a PDF, one image per page.
- Split PDFBreak a PDF into separate files, or pull the pages you need out of it.