# What is OCR? Turning photos, scans, and PDFs into text you can use

OCR reads the text in a photo, a scan, or a PDF and returns text a computer can search and edit. How it works, where businesses use it, and what to check.

Published 2026-10-11. Paxa Labs.

OCR, short for optical character recognition, is software that reads the text in an image. A photo of a receipt, a scanned contract, and a PDF made on a scanner are all pictures of words. A computer cannot search a picture or copy from it. OCR looks at the picture and writes the words out as text.

The idea is decades old, and for a long time it worked only on clean, typed English. What changed is the reader. A modern OCR model reads a whole page the way a person does, with its columns, tables, stamps, and mixed languages. That is why OCR now sits inside accounting, onboarding, and search tools.

## How OCR works

1. Clean up the image: The page is straightened, and shadows, noise, and uneven lighting are reduced. A crooked phone photo becomes something closer to a flat scan.
2. Find the layout: The reader works out what is on the page, such as a heading, two columns, a table, and a stamp over a signature. It also decides the order a person would read them in.
3. Read the characters: Each line is turned into letters, digits, and marks. In Thai this includes the vowels and tone marks stacked above and below the consonants.
4. Return the text: The result comes back as plain text, as Markdown that keeps the headings and tables, or as structured blocks a program can process.

Classic OCR did the third step one character at a time by matching shapes, which is why it failed on unusual fonts and poor scans. A modern model reads the line and the page together. It uses the context, the way a person reads a smudged word from the words around it.

## OCR, AI OCR, and document extraction

Three terms describe three depths of the same job.

| Term | What you get | Example |
| --- | --- | --- |
| OCR | The text on the page | A scanned letter becomes text you can search and copy |
| AI OCR, or document OCR | The text with its structure, meaning headings, paragraphs, tables, and reading order | A financial report becomes Markdown with its tables intact |
| Document extraction | The named fields you asked for, as data | A tax invoice becomes an invoice number, a date, a seller tax ID, and a total |

Extraction is the step that removes the typing. You list the fields you need, and each one comes back as a value read from the page, or empty with the reason it could not be read. [Paxa Document Extraction](https://paxalabs.com/document-extraction) does this for Thai documents.

## What businesses use OCR for

| Job | Documents | Read more |
| --- | --- | --- |
| Bookkeeping | Invoices, tax invoices, receipts, and withholding certificates | [Invoices](https://paxalabs.com/use-cases/invoices), [tax invoice fields](https://paxalabs.com/ocr/tax-invoice) |
| Customer onboarding | ID documents, house registrations, bank statements, and application forms | [Identity documents](https://paxalabs.com/use-cases/identity) |
| Legal and compliance | Contracts, company certificates, and title deeds | [Contracts](https://paxalabs.com/use-cases/contracts) |
| Archives | Old books, newspapers, and paper files | [Archives](https://paxalabs.com/use-cases/archives) |
| Search and AI assistants | Reports, manuals, and policies fed to a search index or a language model | [Knowledge bases](https://paxalabs.com/use-cases/knowledge-bases) |
| Accessibility | Any printed page, read aloud | [Read a document aloud](https://paxalabs.com/read-aloud) |

The pattern is the same in every row. A person is retyping what is already printed, and the retyping is slow and adds errors. OCR makes the page itself the source of the data.

## Why Thai is harder to read than English

English OCR matured first because English is forgiving. It puts one letter after another on one line, with a space between words. Thai breaks each of those assumptions.

- Marks stack. A Thai syllable can carry a vowel above or below the consonant and a tone mark above that. Lose one small mark and the word changes.
- Words have no spaces. A line of Thai is an unbroken string, and a reader that guesses the boundaries wrongly returns words that do not exist.
- There are two sets of digits. Official documents print Thai digits beside Arabic ones, sometimes in the same line.
- Years run on the Buddhist calendar. A document dated 2569 is from 2026, and a system that stores the year as written is off by 543 years.
- Modern fonts drop the loops. In a loopless typeface several Thai letters resemble Latin ones, such as ร and S or พ and W, and a weak reader swaps them.
- Thai and English share a line. Company names, units, and product codes sit in Latin letters inside Thai text.

A tool that passes on an English page can fail on any of these. [How to extract text from Thai PDFs and scans](https://paxalabs.com/guides/thai-pdf-text-extraction) shows what the failures look like.

## How to photograph a page for OCR

- Lay the page flat and hold the phone directly above it.
- Use even light, and keep the shadow of your hand and your phone off the page.
- Fill the frame with the page, with all four corners visible.
- Take one page per photo.
- Send the original PDF when you have it. A scan of a printout of a PDF is two steps worse than the file.

## What to check before choosing an OCR tool

Run your own worst page through it. A clean sample page tells you little, and a crumpled thermal receipt tells you a lot.

- Marks and digits. Compare a line with stacked tone marks and a line with Thai digits against the page.
- Tables. A table should come back as a table, with each number still in its column.
- Reading order. On a two-column page, the text should run down one column and then the other.
- Files. Check which formats one upload accepts, and how many pages.
- Output. Markdown suits people and language models. Structured blocks suit a program.
- Price unit. Most services charge per page, and the page count should be known before you pay.

## What OCR costs

OCR is priced by the page. Paxa OCR Lite is our own model, and it costs 6.5 credits per page, whatever is printed on it. A photo counts as one page.

| Job | Credits | Cost |
| --- | --- | --- |
| One page | 6.5 | $0.0065 |
| A 50-page report | 325 | $0.33 |
| 1,000 pages | 6,500 | $6.50 |

A new account's 100 free credits read 15 pages. One upload takes a file of up to 50 pages and 10 MB, and the formats are PDF, PNG, JPEG, WEBP.

Paxa Document Extraction costs 13 credits per page for a field list of up to 50 leaf fields, and 19.5 credits per page for a longer one. Reading the page is included.

## Common questions

### Is OCR the same as scanning?

A scanner or a phone camera makes a picture of the page, and OCR reads the picture. A scanned PDF with no OCR is a stack of images, which is why its text cannot be selected.

### Can OCR read handwriting?

Print reads far more reliably than handwriting in any OCR tool, and neat block letters read better than a hurried note. Try a few handwritten pages of your own before a workflow depends on them.

### Why does copying Thai text from a PDF come out broken?

Some PDFs are scans with no text inside. Others carry a text layer whose Thai marks come out scrambled when copied. Running OCR on the page image fixes both, and [the PDF guide](https://paxalabs.com/guides/thai-pdf-text-extraction) explains the cause.

## Try it on your own page

1. Drop in a file: Open [the Documents tool](https://paxalabs.com/app/documents) and drop in a PDF or a photo. The page count and the cost appear before anything is read.
2. Pick the output: Choose Markdown to read the result yourself, or Structured to pass it to a program.
3. Read and compare: Run it, then compare the text against the page, starting with the numbers.
4. Pull out the fields: For a tax invoice or a receipt, open [the Extract tool](https://paxalabs.com/app/extract) and start from a ready-made field list.

## Next steps

- See a Thai tax invoice read field by field on [the OCR page](https://paxalabs.com/ocr).
- Read [how to feed Thai documents to an LLM](https://paxalabs.com/guides/thai-documents-for-llms) if the text is going to a language model.
- Read [how to turn Thai PDFs into a search index](https://paxalabs.com/guides/thai-pdf-to-search-index) if it is going to search.
