Aller au contenu principal

OCR

Cette section décrit la configuration OCR (Reconnaissance Optique de Caractères) dans Sync-in pour extraire du texte des images contenues dans les PDF et l'intégrer à la recherche full-text.

La configuration se fait dans environment.yaml, voir la section OCR.


Prérequis

  • L'indexation de contenu doit être activée globalement : applications.files.contentIndexing.enabled (true par défaut).
  • L’indexation doit être activée dans l’espace concerné (activée par défaut).
  • En mode hors ligne (offline: true), les fichiers de langue doivent être présents localement et lisibles par le serveur.

Configuration

Exemple minimal (mode en ligne, téléchargement automatique des langues si nécessaire) :

applications:
files:
contentIndexing:
enabled: true
ocr:
enabled: true
languages: [ eng,fra ]
offline: false
info

Dans le mode en ligne, les fichiers de langues sont stockés dans le répertoire server/applications/files/assets/ocr-languages. Le chemin peut différé selon si l'installation a été réalisée via NPM ou Docker Compose.

Exemple hors ligne avec répertoire local dédié :

applications:
files:
contentIndexing:
enabled: true
ocr:
enabled: true
languages: [ eng,fra ]
offline: true
languagesPath: /app/ocr-lang

Mode hors ligne

Quand offline: true, les fichiers de langue doivent être téléchargés et fournis localement.

Sync-in s'appuie sur les données de langue Tesseract.js.

Format d'URL :

https://cdn.jsdelivr.net/npm/@tesseract.js-data/<lang>@1.0.0/4.0.0_best_int/<lang>.traineddata.gz

Exemple pour le français et l'anglais :

mkdir -p /app/ocr-lang
curl -L -o /app/ocr-lang/fra.traineddata.gz \
https://cdn.jsdelivr.net/npm/@tesseract.js-data/fra@1.0.0/4.0.0_best_int/fra.traineddata.gz
curl -L -o /app/ocr-lang/eng.traineddata.gz \
https://cdn.jsdelivr.net/npm/@tesseract.js-data/eng@1.0.0/4.0.0_best_int/eng.traineddata.gz

Configuration correspondante :

applications:
files:
contentIndexing:
ocr:
languages: [ fra, eng ]
offline: true
languagesPath: /app/ocr-lang
info

Les noms de fichiers doivent correspondre aux codes définis dans languages (exemple : fra.traineddata.gz pour fra).


Bonnes pratiques

  • Limitez languages aux langues réellement nécessaires pour réduire le temps d'indexation.
  • Activez offline: true dans les environnements isolés ou sans accès Internet.