On this page
If a PDF page is a photograph of text, a narrator needs a way to recover the words. Optical character recognition, or OCR, performs that step. The useful result is a transcript you can check against the page, followed by narration that preserves its meaning and sequence.
There are two different successes to look for: recovering the words and arranging them correctly. Our downloadable example demonstrates why it is worth checking both. All sample text is original fiction or original diagnostic prose, and the outputs come from actual local tool runs on September 9, 2026.
First find out what kind of page you have
Swipe horizontally to compare all columns →
| Page state | What you observe | Next step |
|---|---|---|
| Text-based PDF | A sentence can be copied and matches the visible words. | Check paragraph order before deciding that OCR is needed. |
| Image-only scan | The page is visible but ordinary words cannot be selected or extracted. | Run OCR on a representative page. |
| Image plus existing OCR text | Selection works, but copied words contain mistakes or differ from the image. | Inspect the old text layer and decide whether it needs correction or replacement. |
Test more than the cover. A document can mix digital pages, scanned appendices, and pages with older OCR. In our seven-page synthetic scanned book, PDF.js returned zero text items. Its text-based counterpartreturned 147 nonempty items. That establishes how these fixtures were encoded; it does not mean every nonselectable PDF is a scan.
W3C's scanned-PDF technique explains that an image of words is not actual document text. It pairs OCR with checking that the converted text is complete, correct, and ordered. It also describes tagging as a separate part of making the result accessible. See W3C technique PDF7.
What happened when we recognized our two-column scan
The test page contains left-column paragraphs L1 to L4 and right-column paragraphs R1 to R4. It is intentionally easy to read visually: dark print, a white background, no skew, no handwriting, and a 300 DPI rendering. The intended prose order is the full left column followed by the full right column.
We ran Tesseract 5.3.4 with its English language data and automatic page segmentation, --psm 3. In the actual output, the first line of L1 is followed by the first line of R1, then their continuation lines appear together. All eight paragraph labels appear, yet the narrative order is interleaved. The first two lines illustrate it:
L1. Begin with the first paragraph in the R1. This is the beginning of the right
left column. column.We then cropped the two prose columns using their measured source positions. Each crop was recognized separately with --psm 6, which treats the image as one text block. Concatenating the unedited left output and unedited right output gave L1 → L2 → L3 → L4 → R1 → R2 → R3 → R4. The cropped prose matched the reference after whitespace normalization in this run. Compare the whole-page output, crop output, and reference text.
This is evidence for trying region selection when a page is being segmented incorrectly. It is not evidence that cropping always fixes OCR or that Tesseract has a particular accuracy rate on academic PDFs. A real page may contain irregular columns, a spanning heading, notes, tables, or damaged text. Our layout was constructed to make one failure observable.

L1 R1 L2 R2 L3 R3 L4 R4L1 L2 L3 L4 R1 R2 R3 R4Prepare a useful scan before changing OCR engines
- Make the letters readable: inspect the original at normal size and zoom in on small characters. A larger blurry image does not restore missing detail.
- Keep the page straight: check whether text lines are tilted, curved near a binding, or distorted by a camera angle.
- Use the document's language: the narration voice and the OCR language are separate settings. A pleasant English voice does not tell recognition how to handle another script.
- Identify layout regions: note columns, sidebars, captions, and page furniture before recognizing a whole complex page as one block.
- Preserve a source copy: retain the page image and raw OCR output so a correction can be checked later.
Tesseract's documentation recommends adequate resolution, discusses skew and noise, and explains that page-segmentation settings should fit the image. It describes 300 DPI as a useful target for input quality, not a guarantee of correct recognition. Its default automatic mode and single-block mode make different layout assumptions. See its image-quality and segmentation guidance.
Repeat the small experiment locally
With Tesseract installed, download the source PNG and run the following command in its directory. It writes a text file named output-auto.txt. The language data must include English.
tesseract pdf-order-scan.png output-auto -l eng --psm 3 txtFor the second condition, use our left crop and right crop. Run the same command once per crop with --psm 6, then read the left transcript before the right. The source images, crop coordinates, actual versions, and operations are recorded in the experiment report.
These commands reflect Tesseract's documented command-line interface. They describe a text-extraction exercise. They do not create a tagged accessible document, and the experiment contains no narration-quality measurement.
When you want a searchable PDF as well as text
OCRmyPDF can add recognized text to a scanned PDF and optionally write that text to a separate sidecar file. We used the following command with OCRmyPDF 15.2.0. It produced the downloadable searchable PDF and raw sidecar:
ocrmypdf --output-type pdf --optimize 0 \
--sidecar recognized.txt \
pdf-order-scanned.pdf searchable.pdfIn this run, the OCRmyPDF sidecar followed the intended column order. That differed from our direct Tesseract run on the source PNG. These are different input and processing paths, so this experiment does not isolate which pipeline step caused the difference. Inspect the output used by your reading application as well as the sidecar; neither result establishes what will happen on a different document.
OCRmyPDF's documentation also distinguishes pages that already contain text from pages needing OCR and describes options for rotation, deskewing, and reprocessing. Choose those options for an observed problem rather than applying every transformation. In mixed PDFs, a sidecar can omit text from pages that were not OCRed; it should not be assumed to be a complete document export. See the OCRmyPDF cookbook.
Check words that can change the meaning
Swipe horizontally to compare all columns →
| Inspect | Our fixture or a typical case | What to compare |
|---|---|---|
| Decimals and units | 3.5 liters | The decimal point, digit sequence, and unit must survive together. |
| Labels and identifiers | B-17 and C-204 | Check letters, hyphens, and digit order against the page. |
| Names | iReadAll in the fixture footer | The whole-page output actually misrecognized the name; familiar words can still be wrong. |
| Negations | A sentence containing not or no | A missing short word can reverse the claim. |
| Columns and captions | L1 through R4 | Correct words are insufficient if their surrounding sentences are reordered. |
| Footnotes and formulas | A reference mark beside a symbol | Preserve the relationship; do not treat every small mark as disposable noise. |
For ordinary personal reading, start with the passage you need and the most difficult layouts. When exact wording supports a consequential decision, check every relevant passage against the source. A spot check or a confident-sounding voice does not establish the accuracy of all uninspected text.
Listen in short sections and keep a path back
Open a checked section, choose a comfortable voice and pace, and follow the first paragraph on the page. Pause at a layout transition and confirm where the next spoken sentence comes from. If you prepare separate listening text, keep the original page number and section heading with it so you can return to the source.
For a longer repeatable exercise, use our seven-page scan, its actual OCRmyPDF result, and raw recognition output. The original story has six chapters, paragraph markers C1-P1 through C6-P4, a footnote, a caption, and a Spanish sentence. We used English recognition data. In the actual sidecar, the Spanish word mañana became mafiana. This is one visible recognition error in this run, not a measured language-wide error rate. It is a reason to inspect a language change instead of assuming that successful English paragraphs validate the whole document.
iReadAll PDF Voice Reader is one way to keep a PDF visible during listening. The local experiment here uses Tesseract and OCRmyPDF, not iReadAll's production recovery service. If your words are already correct but their order is not, continue with the reading-order diagnosisbefore repeating recognition on the entire document.
Samples & worksheets
A synthetic scan of the original two-column diagnostic page.
Use the identical pixels to reproduce the Tesseract commands.
Actual, unedited Tesseract output with interleaved columns.
Actual left-column output followed by actual right-column output.
A real searchable PDF result; its recognition and sequence still need checking.
Tool versions, exact operations, observed marker order, and file hashes.
Questions & answers
Can text-to-speech read an image-only scanned PDF?+
A workflow needs to recover usable text from the page image first, usually through OCR. Recognition can be integrated into a reader or performed separately. Inspect the recovered words and order before relying on narration.
Why does my OCR output mix two columns?+
The recognition engine may segment the page as rows or one text block. Our whole-page Tesseract run interleaved columns, while recognizing separately cropped columns restored the intended sequence. That is one possible remedy, not a universal fix.
Does OCRmyPDF make a PDF fully accessible?+
Adding recognized text is one step. Correct recognition, logical order, headings, figures, and other document structure still need checking. A searchable PDF is not automatically an accessibility-certified PDF.
Was this an accuracy test of iReadAll's OCR?+
No. The published observations come from local Tesseract 5.3.4 and OCRmyPDF 15.2.0 runs on original synthetic fixtures. They do not measure the production OCR service or establish accuracy on a representative document collection.
How this guide was researched
We rendered an original two-column teaching page at 300 DPI and encoded it as an image-only PDF. PDF.js 5.6.205 found no text items before OCR. In an isolated Ubuntu 24.04 container we ran Tesseract 5.3.4 with English data, both on the whole page and on separately cropped columns. We also ran OCRmyPDF 15.2.0 to create searchable PDFs and unedited sidecar transcripts. This is one deliberately constructed clean page, plus a seven-page original test book; it is not a representative OCR benchmark or a test of iReadAll's production OCR service.
Hands-on work recorded Sep 9, 2026. The method and sample scope above define what was tested.
Evidence checked Sep 9, 2026. Product features can change; dated observations describe the version examined.
Published by iReadAll. AI tools assist research and editing; the team is responsible for verification. Read our editorial policy.
Sources & references
- W3C PDF7: Performing OCR on scanned PDFsW3C · Checked 2026-09-09
- Tesseract: Improving the quality of the outputTesseract OCR · Checked 2026-09-09
- Tesseract: Command line usageTesseract OCR · Checked 2026-09-09
- OCRmyPDF cookbook: searchable PDFs, sidecar text, and page processingOCRmyPDF · Checked 2026-09-09
- iReadAll original OCR demonstration: methods, raw outputs, and file hashesiReadAll · Published 2026-09-09 · Checked 2026-09-09
Cite this guide
iReadAll Product & Editorial Team. “Read a Scanned PDF Aloud: OCR, Reading Order, and Checks.” iReadAll, Oct 5, 2026. https://ireadall.ai/blog/read-scanned-pdf-aloud



