Installing additional language packs

OCRmyPDF uses Tesseract for OCR, and relies on its language packs for languages other than English.

Tesseract supports most languages.

For Linux users, you can often find packages that provide language packs:

Debian and Ubuntu users

# Display a list of all Tesseract language packs
apt-cache search tesseract-ocr

# Install Chinese Simplified language pack
apt-get install tesseract-ocr-chi-sim

You can then pass the -l LANG argument to OCRmyPDF to give a hint as to what languages it should search for. Multiple languages can be requested using either -l eng+fre (English and French) or -l eng -l fre.

Fedora users

# Display a list of all Tesseract language packs
dnf search tesseract

# Install Chinese Simplified language pack
dnf install tesseract-langpack-chi_sim

You can then pass the -l LANG argument to OCRmyPDF to give a hint as to what languages it should search for. Multiple languages can be requested using either -l eng+fre (English and French) or -l eng -l fre.

macOS users

You can install additional language packs by installing Tesseract using Homebrew with all language packs.

Docker users

Users of the Docker image may use the alternative “polyglot” container which includes all languages.

Adding individual language packs to a Docker image

If you wish to add a single language pack, you could do the following:

  • Download the desired .trainedata file from the tessdata repository. Let’s use Hebrew in this example (heb.traineddata)
  • Copy the file to /home/user/downloads/heb.traineddata.
  • Create a new container based on the ocrmypdf-tess4 image and jump into it with a terminal:
host$ docker run  -v /home/user/downloads:/home/docker -it --entrypoint /bin/bash ocrmypdf-tess4
  • Put the file where Tesseract expects it:
docker$ cp /home/docker/heb.traineddata /usr/share/tesseract-ocr/tessdata
  • Note the container id, and save it as a new image (in this example, ocrmypdf-tess4-heb)
host$ docker commit <container_id> ocrmypdf-tess4-heb