Dokumenty i OCRTechnicznaTekst techniczny

Jak zrobić OCR skanu PDF i zamienić go w przeszukiwalny dokument

MorenaTechOsoby techniczne i małe firmy pracujące ze skanami dokumentówPraktycznyok. 12 minut
Publikacja:

Dla człowieka skan PDF wygląda jak zwykły dokument. Dla komputera to często tylko obrazek strony. Lokalny OCR pozwala dodać warstwę tekstową bez wrzucania firmowych dokumentów do przypadkowych zewnętrznych serwisów.

Notatka przed czytaniem

To jest tekst techniczny. Przyda się, jeśli interesuje Cię architektura, integracje albo zaplecze rozwiązań AI. Wersje poradnikowe znajdziesz w sekcji „Dla małej firmy”.
Skan PDF zamieniany przez OCR w tekst i przeszukiwalny dokument
Masz PDF, ale po użyciu Ctrl+F nic się nie znajduje? Nie możesz skopiować tekstu z faktury, umowy albo pisma? To bardzo możliwe, że nie masz dokumentu tekstowego, tylko skan zapisany jako PDF.

Co zrobimy?

Weźmiemy plik:

skan.pdf

i utworzymy z niego:

skan_ocr.pdf

czyli PDF, który wygląda prawie tak samo jak oryginał, ale ma dodaną warstwę tekstową. Dzięki temu można w nim wyszukiwać, kopiować fragmenty i wykorzystać tekst w dalszej pracy.

W drugim wariancie utworzymy też osobny plik:

tekst.txt

To przydaje się, gdy chcesz wkleić treść dokumentu do notatki, podsumowania, bazy wiedzy albo systemu automatyzacji.

Kiedy to się przydaje?

OCR przydaje się szczególnie przy dokumentach, które przyszły jako skan albo zdjęcie:

  • faktury
  • umowy
  • pisma urzędowe
  • protokoły
  • skany od klientów
  • stare archiwum dokumentów
  • dokumenty zapisane jako PDF bez warstwy tekstowej

Przykład z życia: masz katalog z umowami, ale nie da się znaleźć numeru NIP, nazwiska klienta ani konkretnej kwoty. Bez OCR musisz otwierać pliki ręcznie i czytać je jeden po drugim. Po OCR możesz użyć wyszukiwania.

Czym jest OCR?

OCR, czyli Optical Character Recognition, to rozpoznawanie tekstu z obrazu.

Program analizuje obraz strony i próbuje rozpoznać litery, cyfry oraz układ tekstu. Wynik nie zawsze jest idealny, bo jakość zależy od skanu. Krzywe zdjęcie zrobione telefonem w półmroku da gorszy wynik niż prosty, wyraźny skan.

OCR nie jest magią. To bardziej bardzo cierpliwy stażysta od przepisywania dokumentów. Szybki, użyteczny, ale trzeba mu sprawdzić nazwiska, liczby i ważne dane.

Czego użyjemy?

Użyjemy dwóch narzędzi:

OCRmyPDF
Narzędzie do dodawania OCR do plików PDF. Bierze PDF wejściowy i tworzy nowy PDF z warstwą tekstową.

Tesseract
Silnik OCR, czyli właściwy mechanizm rozpoznawania tekstu. OCRmyPDF może korzystać z Tesseracta pod spodem.

W praktyce: OCRmyPDF ogarnia plik PDF, strony, obracanie, prostowanie i wynikowy dokument. Tesseract rozpoznaje tekst.

Źródła techniczne

Do sprawdzenia komend i opcji warto trzymać pod ręką oficjalną dokumentację instalacji OCRmyPDF, opis pakietów językowych OCRmyPDF oraz dokumentację użycia Tesseracta z linii komend.

Instalacja

Linux / Ubuntu

sudo apt update
sudo apt install ocrmypdf tesseract-ocr-pol tesseract-ocr-eng

Sprawdzenie instalacji:

ocrmypdf --version
tesseract --list-langs

Na liście języków powinno być przynajmniej:

pol
eng

Jeżeli nie ma pol, brakuje pakietu językowego dla polskiego OCR.

macOS

Na macOS najprościej użyć Homebrew:

brew install ocrmypdf
brew install tesseract-lang

Windows

Na Windowsie są dwie drogi.

Pierwsza: instalacja natywna. Wymaga Pythona, Tesseracta i Ghostscript.

Druga: WSL, czyli Linux uruchomiony w Windowsie. Dla osób, które nie chcą walczyć ze ścieżkami systemowymi, WSL często jest czystszy.

W WSL z Ubuntu można użyć poleceń z sekcji Linux:

sudo apt update
sudo apt install ocrmypdf tesseract-ocr-pol tesseract-ocr-eng

Jeżeli korzystasz z natywnego Windowsa, po instalacji Pythona, Tesseracta i Ghostscript możesz zainstalować OCRmyPDF przez:

py -m pip install ocrmypdf

Sprawdzenie:

py -m ocrmypdf --version

Pierwszy OCR: skan PDF do przeszukiwalnego PDF-a

Załóżmy, że masz plik:

skan.pdf

Najprostsza komenda:

ocrmypdf -l pol+eng skan.pdf skan_ocr.pdf

Co oznacza ta komenda?

-l pol+eng mówi, że dokument może zawierać tekst po polsku i angielsku.

skan.pdf to plik wejściowy.

skan_ocr.pdf to plik wynikowy.

Po wykonaniu komendy otwórz skan_ocr.pdf i spróbuj użyć Ctrl+F. Wyszukaj słowo, które widzisz na stronie, np. nazwę firmy, numer faktury albo fragment tytułu.

Jeżeli wyszukiwanie działa, dokument ma już warstwę tekstową.

Lepsza wersja: obracanie i prostowanie stron

Skany często są lekko krzywe albo część stron jest obrócona bokiem. Można dodać dwie opcje:

ocrmypdf -l pol+eng --deskew --rotate-pages skan.pdf skan_ocr.pdf

--deskew próbuje wyprostować strony zeskanowane pod lekkim kątem.

--rotate-pages próbuje obrócić strony, które mają złą orientację.

To jest dobra komenda startowa dla większości zwykłych skanów.

Po jej użyciu zawsze sprawdź wynik wizualnie. Automatyczne poprawianie obrazu jest przydatne, ale nie należy mu ufać bez kontroli. Szczególnie przy dokumentach z pieczątkami, tabelami, podpisami albo słabą jakością skanu.

PDF plus osobny plik tekstowy

Czasem nie chcesz tylko przeszukiwalnego PDF-a. Chcesz też mieć czysty tekst do dalszej pracy.

Wtedy użyj --sidecar:

ocrmypdf -l pol+eng --deskew --rotate-pages --sidecar tekst.txt skan.pdf skan_ocr.pdf

Po zakończeniu dostaniesz dwa pliki:

skan_ocr.pdf
tekst.txt

PDF nadaje się do archiwum, a tekst.txt można wykorzystać dalej: wkleić do notatki, zrobić podsumowanie, zbudować bazę wiedzy albo przygotować automatyczne przetwarzanie dokumentów.

To jest moment, w którym OCR przestaje być programem do skanów, a zaczyna być pierwszym krokiem automatyzacji.

OCR pojedynczego zdjęcia

Jeżeli masz zdjęcie dokumentu, np.:

dokument.jpg

możesz użyć bezpośrednio Tesseracta.

PDF z warstwą tekstową:

tesseract dokument.jpg wynik -l pol+eng pdf

To utworzy plik:

wynik.pdf

Jeżeli chcesz tylko tekst:

tesseract dokument.jpg wynik -l pol+eng

To utworzy plik:

wynik.txt

Przy zdjęciach jakość wejścia ma ogromne znaczenie. Dokument powinien być dobrze oświetlony, prosty, bez cieni, bez rozmycia i możliwie w wysokiej rozdzielczości.

Jak sprawdzić wynik?

Po OCR nie wystarczy zobaczyć, że plik się utworzył. Trzeba sprawdzić trzy rzeczy.

Po pierwsze, otwórz wynikowy PDF i użyj wyszukiwania. Spróbuj znaleźć nazwę firmy, numer dokumentu albo kilka słów z treści.

Po drugie, zaznacz fragment tekstu i spróbuj go skopiować. Jeżeli po wklejeniu dostajesz normalny tekst, OCR działa.

Po trzecie, sprawdź ważne dane ręcznie: kwoty, daty, numery NIP, numery faktur, nazwiska i adresy. OCR może pomylić 0 z O, 1 z l albo zgubić polskie znaki.

Najczęstsze problemy

Brak języka polskiego

Jeżeli komenda z -l pol+eng zwraca błąd, najprawdopodobniej nie masz zainstalowanego pakietu językowego pol.

Sprawdź listę języków:

tesseract --list-langs

Jeżeli nie widzisz pol, doinstaluj pakiet językowy dla polskiego OCR.

Słaby wynik OCR

Najczęstsze przyczyny:

  • krzywy skan
  • zbyt niska rozdzielczość
  • cienie na zdjęciu
  • rozmyty obraz
  • zły język OCR
  • mała czcionka
  • tabele i nietypowy układ dokumentu

Warto wtedy spróbować jeszcze raz z lepszym skanem albo użyć opcji:

ocrmypdf -l pol+eng --deskew --rotate-pages skan.pdf skan_ocr.pdf

PDF już ma jakąś warstwę tekstową

Czasem plik PDF ma już tekst, ale OCR jest stary albo błędny. Wtedy można rozważyć ponowienie OCR:

ocrmypdf --redo-ocr -l pol+eng skan.pdf skan_ocr.pdf

Nie używaj tego automatycznie na całym archiwum bez testu. Najpierw sprawdź jeden plik.

Dokument jest podpisany cyfrowo

Nie przerabiaj podpisanych cyfrowo dokumentów, jeżeli podpis ma mieć znaczenie formalne. Modyfikacja PDF-a może naruszyć podpis albo sprawić, że dokument przestanie być traktowany jako oryginalny podpisany plik.

Dla takich dokumentów lepiej zrobić kopię roboczą do wyszukiwania, a oryginał zostawić bez zmian.

A co z OCR online?

W internecie jest dużo stron, które pozwalają wrzucić PDF i pobrać tekst. Do prywatnych, nieważnych dokumentów czasem to wystarczy.

Ale przy dokumentach firmowych trzeba uważać.

Nie wrzucaj do przypadkowego OCR online:

  • umów
  • danych klientów
  • faktur
  • dokumentów kadrowych
  • dokumentów medycznych
  • pism prawnych
  • skanów dowodów
  • dokumentów z numerami kont i identyfikatorami

Lokalny OCR ma tę zaletę, że plik zostaje na Twoim komputerze albo w firmowym środowisku.

Co można zrobić z tekstem po OCR?

Sam OCR to dopiero początek.

Gdy dokument ma już warstwę tekstową albo osobny plik tekst.txt, można zrobić z nim więcej:

  • wyszukiwać dokumenty po treści
  • tworzyć krótkie streszczenia
  • wyciągać numery faktur
  • budować bazę wiedzy
  • przygotować archiwum firmowe
  • automatycznie opisywać pliki
  • przekazywać dane do arkusza albo CRM
  • generować notatki z dokumentów

Przykład prostego procesu w małej firmie:

skan dokumentu
→ OCR
→ plik PDF z tekstem
→ plik tekstowy
→ sprawdzenie ważnych danych
→ zapis w uporządkowanym archiwum

Jeżeli taki proces ma być częścią większego obiegu pracy, zobacz też automatyzacje procesów dla firm, Google Workspace i Apps Script oraz AI dla firm.

Podsumowanie

Jeżeli PDF nie pozwala wyszukiwać tekstu, prawdopodobnie jest tylko skanem zapisanym jako dokument.

Za pomocą OCRmyPDF i Tesseracta możesz lokalnie utworzyć:

  • przeszukiwalny PDF
  • osobny plik tekstowy
  • materiał do dalszej automatyzacji

Najważniejsza komenda na start:

ocrmypdf -l pol+eng --deskew --rotate-pages skan.pdf skan_ocr.pdf

Wariant z plikiem tekstowym:

ocrmypdf -l pol+eng --deskew --rotate-pages --sidecar tekst.txt skan.pdf skan_ocr.pdf

Potrzebujesz takiego procesu w firmie?

Masz w firmie skany, umowy, faktury albo dokumenty, których nie da się przeszukiwać?

MorenaTech może pomóc przygotować prosty proces:

skan → OCR → tekst → uporządkowane archiwum → automatyzacja dalszej obsługi

Może to działać lokalnie, w Google Workspace, w arkuszach, w prostym panelu albo jako część większego obiegu dokumentów.

Jeżeli chcesz uporządkować dokumenty i odzyskać z nich tekst, skontaktuj się z MorenaTech.

Chcesz mieć przeszukiwalne dokumenty i uporządkowane archiwum?

MorenaTech pomaga małym firmom budować praktyczne procesy dokumentowe: OCR, wyciąganie tekstu, Google Workspace, uporządkowane archiwa, streszczenia i kontrolowaną automatyzację.

Czytaj dalej w sekcji Techniczna