OCR (ang. optical character recognition) — rozpoznawanie znaków na obrazie, czyli zamiana pikseli w tekst. Sam OCR daje jednak wyłącznie ciąg liter i cyfr. Do niczego się nie przyda, dopóki nie wiadomo, który ciąg jest numerem faktury, a który numerem konta bankowego.
Praktyczne rozwiązanie składa się z dwóch warstw. Pierwsza odczytuje tekst i jego położenie na stronie. Druga rozumie, co ten tekst znaczy: gdzie kończy się nagłówek, gdzie zaczyna tabela pozycji, która kolumna zawiera ilość, a która cenę jednostkową.
Ta druga warstwa jest trudniejsza, bo każdy dostawca drukuje faktury inaczej. Rozwiązania oparte wyłącznie na sztywnych szablonach wymagają skonfigurowania osobnego wzorca dla każdego kontrahenta i przestają działać, gdy dostawca zmieni układ wydruku.
Najlepiej wypadają pliki PDF wygenerowane przez system dostawcy — tekst jest w nich zapisany wprost, więc rozpoznawanie obrazu w ogóle nie jest potrzebne. Skany wychodzą gorzej, a jakość zależy od rozdzielczości i tego, czy kartka leżała prosto. Zdjęcia z telefonu są najtrudniejsze: cienie, krzywizna papieru i odbicia potrafią zmienić cyfrę.
Odczytana pozycja to nadal tylko tekst. Żeby dokument trafił do magazynu, trzeba jeszcze powiązać każdą pozycję z kartoteką towarową — a nazwa u dostawcy prawie nigdy nie jest identyczna z nazwą we własnym systemie. To osobne zagadnienie, opisane przy dopasowywaniu pozycji do kartoteki.
Warto zacząć od policzenia, ile dokumentów miesięcznie przechodzi przez firmę i ilu dostawców je wystawia. Dziesięciu stałych dostawców z powtarzalnym układem faktury to zupełnie inna sytuacja niż dwustu przypadkowych. Sensowne wdrożenie zakłada też etap kontroli — dokument odczytany automatycznie trafia do akceptacji, a nie od razu do księgowania.