How OCR turns an image to text: what affects accuracy (resolution, contrast, skew, fonts, language), why handwriting is hard, and how to make PDFs searchable.
By Udit Agarwal · Updated October 17, 2026
OCR, short for optical character recognition, is software that finds the letters in a picture of text, such as a photo, a screenshot or a scan, and turns them into characters you can copy, search and edit. It cleans up the image, finds the lines and words, then recognises each line with a model trained on large amounts of printed text, helped by data about the language. On a sharp scan of ordinary print it gets nearly every character right, and blur, small type, tilted lines, unusual fonts and handwriting all pull that accuracy down quickly.
OCR starts from pixels and ends with plain text. It does not understand what it reads, it rarely keeps formatting such as fonts or colours, and a table usually comes out as lines of text rather than cells.
Not every document needs it. A PDF exported from a word processor already contains its text: try selecting a word, or search with Ctrl+F. If that works, PDF to Text pulls the text out directly, with none of the guesswork. OCR is for pictures of text: photos, screenshots and scanned pages.
| Factor | Why it matters | What helps |
|---|---|---|
| Resolution | Letters need enough pixels to show their shapes | Scan at 300 dpi; zoom in before taking a screenshot |
| Contrast and light | Shadows, glare and tinted paper blur the line between ink and paper | Even light, no flash, dark ink on light paper |
| Focus and motion | Blurred edges merge neighbouring letters | Hold steady and let the camera focus |
| Skew and perspective | Tilted or slanted lines confuse line finding and stretch letters | Shoot straight on; straighten scans |
| Fonts | Decorative, very thin or tiny type has unusual shapes | Expect errors and check by eye |
| Layout | Columns, tables and text over pictures upset the reading order | Crop one column or region at a time |
| Language | The model needs the right script and word data | Choose the language actually printed |
| Compression | Heavy JPEG compression smears letter edges | Read the original, or a PNG screenshot |
Resolution is the factor people underestimate. Type is measured in points, and 1 point is 1/72 inch. A 10-point font scanned at 300 dpi gets about 42 pixels per em, its nominal height, so a lowercase x is roughly 20 pixels tall. At 72 dpi the same letter is about 5 pixels tall, which leaves very little to tell an e from a c. The usual advice is 300 dpi for ordinary text and 400 to 600 dpi for print smaller than about 9 points.
Screenshots are usually easier than photos, because the text is perfectly sharp and level with no lighting to fight. Their weakness is size: small interface text on an ordinary monitor may be only a handful of pixels high. Zooming the page in before you take the screenshot gives the recogniser more real detail than any enlargement afterwards. For the same reason, a photo squeezed to 20 KB for an upload form is a poor source; compressing a photo to an exact size explains what that squeezing throws away.
Printed-text OCR relies on letters looking roughly the same every time they appear. Handwriting breaks that: every writer forms letters differently, letters join, the slant and spacing wander, and the same person may write an "a" three ways on one page. Recognising it is a separate field, often called handwritten text recognition, with models trained on handwriting rather than type.
Neat block capitals, one per box on a form, are the easiest case, and joined-up cursive is the hardest. Whatever tool you use, check names, numbers and dates by eye. ArrayKit's OCR tools are built for printed and typed text and read handwriting far less reliably.
A scanned PDF is a stack of pictures: you can read it, but search finds nothing and copying gives nothing. A searchable PDF keeps each page's image and adds the recognised text as an invisible layer, placed word by word over the printed words. The PDF standard, ISO 32000, has a text rendering mode for exactly this: text that is neither filled nor stroked, so it cannot be seen but can still be selected and searched.
PDF OCR does this in your browser. It draws each page at 144 dpi (faster) or 216 dpi (more accurate), reads it in one language you pick from twelve, and builds a new PDF in which every page is that image with the recognised text laid invisibly over it. It handles up to 30 pages per run and also gives you the plain text to copy or save as a .txt file. Because the pages are redrawn, a scan stored at a higher resolution comes back at the resolution you chose, and links or form fields in the original are not carried over. Use 216 dpi for small print or a poor scan, and straighten tilted pages first with Deskew PDF, since level lines read better.
The documents people run through OCR are often private: ID cards, receipts, bank statements, contracts, medical letters. Many online converters upload the image to a server to read it. Recognition on your own device skips that step.
In ArrayKit's Image to Text and PDF OCR, the pictures and pages are read inside the browser tab and are not uploaded. What the page does download is the recogniser and its data for the language you choose, a few megabytes the first time, which your browser keeps for next time. That is why the first image in a new language takes longer to start, and later ones begin straight away.
Image to Text (OCR) reads PNG, JPEG, WebP, GIF and BMP images, up to 20 in a batch, one after another. Paste a screenshot with Ctrl+V or Cmd+V anywhere on the page, or use the Paste image button. Choose the language from twelve (English, Spanish, French, German, Portuguese, Italian, Dutch, Hindi, Russian, simplified Chinese, Japanese and Arabic), and add a second language for a page that mixes two.
The Enhance option, on by default, turns the picture grey, stretches its levels so faint text on grey paper becomes dark text on white, and doubles images under 1800 pixels on the long side, which helps small screenshots. Nothing larger than 4200 pixels on the long side is passed to the recogniser. You can keep the line breaks as read, or join the lines into paragraphs, which mends words hyphenated across a line break, keeps list items on their own lines and joins Chinese and Japanese without spaces.
Each result has a confidence figure, coloured green from 85 percent, amber from 60 and red below. It is the recogniser's average certainty, not a guarantee, so check names and numbers anyway. The text boxes are editable, and you can copy one result, copy everything, or save it all as one .txt file.
Two limits are worth knowing. Handwriting is read far less reliably than print. And each picture is read as a single block of text, so two columns side by side come out interleaved line by line; crop each column with the Image Cropper and read them separately. iPhone photos saved as HEIC need converting to JPG first, as HEIC files, explained describes.
How does OCR work? It cleans up the image, finds the lines and words, and recognises each line with a model trained on printed text, using language data to pick likely words. The output is text, usually with a confidence score and the position of each word.
How accurate is OCR? On a sharp, level scan of ordinary print, nearly every character comes out right. Accuracy drops with low resolution, blur, shadows, skew, decorative fonts and complex layouts, and drops sharply with handwriting. Always check names, numbers and dates.
Can OCR read handwriting? Ordinary OCR reads neat block capitals reasonably well and joined-up writing poorly. Handwriting needs models trained on handwriting, and even their results need checking.
What resolution should I scan at for OCR? 300 dpi suits ordinary text. Go to 400 to 600 dpi for print smaller than about 9 points, and keep the scan sharp and level, because blur and tilt hurt accuracy too.
Why does OCR confuse 0 and O, or 1, l and I? Those characters look almost identical in many fonts, so the recogniser leans on context from the surrounding word and the language data. Codes, serial numbers and reference numbers give it no such context, so check them character by character.
Is it safe to use an online image to text converter? It depends on where the recognition happens. Many services upload your image to read it. ArrayKit's Image to Text reads it in your browser, so the image stays on your device.
How do I make a scanned PDF searchable? Run it through OCR that writes an invisible text layer, such as PDF OCR. The page still shows the scanned image, but search, selection and copying now work.