LECTEUR MANUSCRIT — installation (une seule fois, 100 % local)
==============================================================

INSTALLATION : voir installation/GUIDE_INSTALLATION.html a la racine du projet
(installation.bat fait tout, modele arabe compris).

1) Python 3.8 ou plus (https://python.org — cocher « Add to PATH »).
   · Windows 10/11, Server 2016+ : n'importe quel Python 3.8–3.12.
   · Windows Server 2012 R2     : Python 3.8 (dernier compatible).

2) Le moteur de base (imprimé photographié + majuscules manuscrites) :
     pip install rapidocr-onnxruntime
   · Server 2012 R2, ajouter :   pip install "onnxruntime<1.15"

   SANS INTERNET sur le serveur ? Depuis un poste connecté :
     pip download -d roues rapidocr-onnxruntime
   puis copier le dossier « roues » sur le serveur et :
     pip install --no-index --find-links roues rapidocr-onnxruntime

3) Lancer :  demarrer.bat   (le service écoute 127.0.0.1:8765 —
   Khazina le détecte tout seul ; Réglages → « santé » l'affiche).

4) OPTION manuscrit latin renforcé (TrOCR de Microsoft, plus lourd) :
     pip install torch transformers pillow
   Depuis un poste connecté, télécharger le modèle
   « microsoft/trocr-base-handwritten » (huggingface.co) et copier son
   dossier complet ici sous  modeles/trocr/  — le service le charge au
   démarrage suivant, sans jamais toucher au réseau.

5) OPTION arabe manuscrit : déposer un modèle (Kraken/TrOCR arabe) sous
   modeles/arabe/ — emplacement prévu ; parlez-en au mainteneur pour le
   branchement, la qualité dépendant fortement du style d'écriture.

MACHINE MODESTE (i5, 4 Go de RAM) — mesures réelles
---------------------------------------------------
Le service est frugal PAR CONSTRUCTION : ~130 Mo chargé, ~250-350 Mo en
pointe, UNE page à la fois, deux fils de calcul (OMP_NUM_THREADS=2).
Comptez 3 à 10 secondes par page selon la taille. Les très grandes
images sont réduites automatiquement avant lecture.
IMPORTANT : l'option TrOCR (manuscrit cursif) demande PyTorch — comptez
8 Go de RAM au moins ; elle est déconseillée sur une machine à 4 Go.
Sur 4 Go : rapidocr seul, c'est le bon réglage.

LANGUES — couverture et extensions
----------------------------------
LECTURE NORMALE (Tesseract) : arabe, français, espagnol, anglais en
tête ; TOUTE autre langue s'ajoute seule dès que son fichier
« xxx.traineddata » est posé dans le dossier tessdata (allemand : deu,
italien : ita, portugais : por…) — aucun réglage, plafond huit langues.

LECTURE MANUSCRITE, part ARABE (imprimé et bâton) :
  · dict.txt est DÉJÀ LIVRÉ (dictionnaire officiel PaddleOCR, 81 lettres).
  · il ne manque qu'UN fichier : rec.onnx — lancez UNE fois, depuis un
    poste connecté :   telecharger_arabe.bat
    (URL officielle RapidAI, empreinte SHA-256 vérifiée par le script ;
     sans internet sur le serveur : lancez ailleurs puis copiez le
     dossier modeles/arabe/ à côté de serveur.py).
Au démarrage suivant, /sante affiche « arabe: true » et chaque lecture
FUSIONNE les deux écritures (latin + arabe) dans le même texte.
NOTE franche : cette part arabe est prête dans le code mais n'a pas pu
être éprouvée sur ce banc (téléchargement des modèles bloqué) — la
cursive arabe restera difficile ; l'imprimé et le bâton sont l'objectif.

-----------------------------------------------------------------
POURQUOI LE SERVICE S'ETEINT QUAND ON FERME LA FENETRE (R368)
-----------------------------------------------------------------

demarrer.bat lance le service AU PREMIER PLAN. La fenetre noire n'est
pas un simple affichage : elle EST le service. La fermer revient a
l'arreter - d'ou les lignes qui redeviennent rouges dans les Reglages.

Trois facons de le garder allume, de la plus simple a la plus solide :

  1. demarrer_silencieux.bat   (double-clic)
     Lance le meme service SANS FENETRE. Il survit a la fermeture de
     tout le reste. Pour l'arreter : Gestionnaire des taches, processus
     "pythonw.exe".

  2. installation\KHAZINA_INSTALLER.bat   (clic droit, administrateur)
     Fait la meme chose ET programme le service au DEMARRAGE DE
     WINDOWS. Il repart donc tout seul apres un redemarrage, meme si
     personne n'ouvre de session.

  3. A la main, si vous preferez :
     Planificateur de taches -> Creer une tache
       Declencheur : Au demarrage de l'ordinateur
       Action      : "CHEMIN\demarrer_silencieux.bat"
       Compte      : SYSTEME, avec les privileges les plus eleves


A QUOI SERT CHACUNE DES TROIS LIGNES
------------------------------------

  Bibliotheque RapidOCR (pip)
    La bibliotheque Python qui sait reconnaitre l'ECRITURE A LA MAIN.
    Elle ne fait rien toute seule : c'est le moteur que le service
    utilise. Installee une fois, elle reste.

  Lecteur manuscrit - latin (127.0.0.1:8765)
    Le petit serveur local qui met cette bibliotheque a disposition de
    Khazina. C'est LUI qui doit tourner. Il ne sert QUE pour l'ecriture
    manuscrite : le texte imprime, les scans nets et les PDF passent par
    Tesseract et n'en ont pas besoin.

  Lecteur manuscrit - arabe
    Ce n'est pas un second service : c'est le MEME, avec le modele arabe
    (rec.onnx) charge en plus. D'ou le message "service eteint" quand le
    service ne repond pas : sans lui, le modele ne peut meme pas etre
    verifie.
