Our text reader got an 1892 printed page almost perfectly right, 1 wrong character in 500, and read the total on a 1994 Tesco receipt as 4.71 when the paper says 6.71. Same engine, same afternoon. What decides the result is the picture far more than the software: how big the letters are, whether the page is square to the camera, and how much ink is left on the paper.
We measured it on 24 September 2026 with our Image to text tool, which runs Tesseract on your own device, over 41 images whose correct text we knew. The score is the character error rate: the number of letters you would have to add, delete or change to fix the output, divided by the length of the real text. Straight and curly quotes count as the same, and so do runs of spaces.
What we tested
Three kinds of image. Screenshots we rendered ourselves, of Pride and Prejudice and of a made-up order summary full of prices and codes, at 11 to 16 pixel text, light and dark, then saved as low-quality JPG or photographed off a screen with fake moiré. A book page we rendered at 300 dpi and then damaged: shrunk, blurred, tilted, turned, photographed. And real public documents whose text people had already typed out: seven scanned pages of The Adventures of Sherlock Holmes (1892) and Einstein’s 1939 letter to Roosevelt, both proofread on Wikisource, plus three receipt photos from Wikimedia Commons that we transcribed ourselves, leaving out the one line on the Tower Records receipt that nobody could read.
| Image | Characters wrong | Time |
|---|---|---|
| Screenshots, 11 to 16 px text, light and dark (8) | 0 to 0.3% | 0.5 to 1.7 s |
| Same screenshot saved as JPG quality 30 | 0.2% | 1.0 s |
| Photo of a screen, with moiré and tilt | 0.9% | 0.5 s |
| Sherlock Holmes scans, 960 px wide (7 pages) | 0.1 to 0.9% | 0.8 to 1.0 s |
| Rendered page at 300 dpi | 0.1% | 1.2 s |
| Same page at 72 dpi | 0.1% | 1.8 s |
| Same page tilted 10 degrees | 0.2% | 2.7 s |
| Same page on its side, or upside down | 0.2%, 0.1% | 7.1 s |
| Same page blurred (4 px) | 5.1% | 1.2 s |
| Phone-style photo of the page, sharp | 0.5% | 1.1 s |
| Phone-style photo, small, blurred and noisy | 38.2% | 3.5 s |
| Einstein letter, typewritten, one page at a time | 0.9%, 1.7% | 2.2 s |
| Einstein letter, both pages in one image | 74.5% | 4.3 s |
| 99 Cents Only receipt, 2021, photo | 18.3% | 0.9 s |
| Tower Records receipt, 2016, phone photo, faded | 12.3% | 1.8 s |
| Tesco receipt, 1994, scan on black | 56.8% | 1.3 s |
Receipts are where it goes wrong
Every receipt did worse than every screenshot and every scanned page, and not by a little. The 99 Cents Only receipt came out with 18 wrong characters in 100, nearly all of them in the item names printed in a dotted till font: BigRollPaperTowels/100sh/11x8 came back as BigRollPaperfowels/liiish/iiK8. The five amounts at the bottom, subtotal, tax, total, cash and change, were all exactly right, even where the label next to one came out as TAK. The faded Tower Records receipt was the reverse. Its paragraph of small print came through clean, but the total came out as €19 35 instead of €19.98, and €50.00 tendered became £56.00.
The Tesco receipt lost seven of its lines completely, cash, change and the date among them, and its total became 4.71. That scan sits on a black background, and the black frame turned out to matter: cropped to the paper, the same image went from 56.8% wrong to 29.8%. We tried doing that crop automatically, by cutting dark margins. It helped the Tesco scan and made the Tower Records photo worse, 12.3% to 19.7%, because the wood grain behind it is dark too, so the tool doesn’t do it. Crop receipts yourself before you drop them in.
We also tried the usual cleanup tricks on the three receipts, stretching the contrast and doubling the size. None helped. Stretching the contrast took the Tower receipt from 12.3% to 23.0%. Doubling the Tesco scan produced three times more junk than there was text. If a receipt matters, and it usually does because it is about money, read the numbers against the paper. OCR gets you the words to search and file, not a figure to trust.
Screenshots: nearly perfect, except for one letter
Screen text is the easy case, with one quirk. In the sans-serif fonts that phones and computers use, a capital I is a plain vertical bar, and Tesseract reads it as one. Before we added a fix, six of the seven times the word “I” appeared in our 13 pixel screenshot, it came out as |. The tool now puts it back when a bar stands alone in front of a lowercase word.
Small text was the other thing worth fixing. In our tests, words that stood under 20 pixels tall read worse, and the text in a normal screenshot is well under that. Reading the 11 pixel screenshot a second time at four times the size took it from 1.3% wrong to 0.3%, and did the same for a page shrunk to 72 dpi, 6.1% to 0.1%. So when the words it finds are small, the tool scales the picture up and reads again, which roughly doubles the time. Dark mode made no difference once the text was scaled up.
Tilted and turned pages
Tesseract straightens a slight tilt by itself: 3 degrees cost almost nothing. At 10 degrees its lines broke up, and 11.8% of the characters were wrong. The tool now measures the slope of the lines it did find and reads again with the page turned back, which brought that page to 0.2%. A page on its side or upside down is worse, 78 to 87% wrong, since the text reads as nonsense. When a first read is that poor, the tool tries the three other ways up and keeps the clearest. It works, at a price: those pages took 7 seconds instead of 1.2.
Nothing fixes blur. A page blurred by 4 pixels still had 5% of its characters wrong, and our worst photo, small, soft and noisy, 38%. If you can see the letters are soft, take the picture again.
Two pages side by side fool the confidence score
The tool shows how clear each read was, from Tesseract’s own confidence in each word. On our test set it was a fair guide: every image scored 85 or more had under 3% of its characters wrong, and every one under 70 was a receipt or a ruined photo. The exception was the Einstein letter. Both of its pages sit side by side in one image, and Tesseract read straight across them, joining line 1 of page one to line 1 of page two. Counted against the letter as written, 74.5% of the characters were wrong, and the confidence was 91. Each page on its own read with under 2% wrong. Crop spreads, two-page scans and side-by-side screenshots apart first.
The smaller English model was the better choice
Tesseract’s English comes in a small fast model and a larger one built for accuracy. We expected the large one to win and it didn’t. Without any of the tool’s extra steps, the fast model had 0.1 to 0.9% wrong on the Holmes pages and the larger integer model 0 to 1.0%, and on the screenshots the fast one was slightly ahead. It was also about a third quicker, 0.85 seconds a page against 1.28, and its file is 2.0 MB against 3.0 MB. The full-precision version of the large model wouldn’t run in the reader at all. So English uses the fast model. The other five languages use the larger integer models, which got our test pages in those languages completely right.
Picking the language matters less than you might think. On pages of French, German, Spanish, Portuguese and Italian from Project Gutenberg, the right model got every one at 0.0%. Reading them as English cost 1.3 to 2.7%, nearly all of it accents and special letters: in German, daß came out as daB and begnügen as begniigen.
For PDFs, check whether the text is really a picture before you reach for OCR: if you can select a word, our notes on PDF text extraction explain what comes out and why, and PDF to text is faster and exact.
Sources
- Wikisource: The Adventures of Sherlock Holmes (1892), proofread scans
- Wikisource: Einstein–Szilard letter to Roosevelt, 1939
- Wikimedia Commons: 99 Cents Only store receipt, 2021
- Wikimedia Commons: Tower Records Dublin receipt, 2016
- Wikimedia Commons: Tesco grocery receipt, Finchley, 1994
- Project Gutenberg: Pride and Prejudice (#1342)
- Tesseract language models: tessdata_fast
- tesseract.js, which runs Tesseract in our tool