Product
Extracting invoice data in Arabic, French and mixed scripts
A single invoice can carry Arabic vendor details, English item descriptions and two different numeral systems. Handling that is a layout problem before it is a character-recognition problem.
EasyInvoiceOCR · Published · Updated · 8 min read
An invoice issued in Riyadh may carry Arabic vendor details, English item descriptions, Eastern Arabic numerals in the header and Western digits in the totals table. Every one of those transitions is a place where a parser built for a single script quietly produces the wrong answer.
Reading order is not visual order
In a right-to-left document the label sits to the right of its value. A parser that assumes left-to-right pairing attaches every label to the wrong field and reports it confidently, because nothing about the character recognition failed — only the pairing did.
This is why layout has to be resolved from coordinates rather than from reading order alone. The label nearest a value in the direction the document actually flows is the one that belongs to it.
Two numeral systems on one page
Eastern Arabic numerals must be normalised before any arithmetic check can run, and it is common to find both systems on the same invoice — one in the header, another in the table. Digits are normalised to Western form and dates to ISO 8601 before validation begins, so that a comparison is never made between two different notations.
Ambiguous dates are refused, not guessed
A date written 03/04/2026 is the third of April or the fourth of March depending on where the invoice was issued. Where the format cannot be established from the document itself, the field is flagged rather than resolved by assumption. A guessed date that happens to be wrong is more expensive than an empty one.
Validate with arithmetic, not with confidence
The strongest signal that a multilingual extraction is correct is not the recognition score — it is whether the numbers add up. When the line items sum to the subtotal and the subtotal plus tax equals the total, the parse is almost certainly right, whatever script it was read in.
Five conversions are free. Nothing leaves your browser during recognition.
Related articles
- Accuracy
What invoice OCR accuracy actually means
Vendor accuracy claims are rarely comparable. How field-level accuracy is measured, why confidence scores matter more than averages, and how to test on your own invoices.
- Accuracy
Why line-item extraction is harder than reading the total
Totals sit in predictable places. Tables do not. Borderless columns, wrapped descriptions and page breaks are what actually separate a parser that works from one that demos well.