Presque tous les outils de détection de données personnelles partent d'un texte, et non d'une page. Or une bonne part des pièces d'un cabinet sont des scans. Et personne, sur ce marché, ne dit à qui revient le travail de transformer une page numérisée en texte.
Les outils partent d'un texte
Ouvrez la documentation d'une bibliothèque sérieuse de détection, libre ou commerciale. La première fonction présentée reçoit une chaîne de caractères et renvoie des positions dans cette chaîne. C'est le cas de Presidio, le projet libre de référence, conçu chez Microsoft et aujourd'hui géré par sa communauté.
Certes, son module d'images, presidio-image-redactor, accepte une image en entrée. Mais il en confie la lecture à Tesseract, un moteur de reconnaissance de caractères. Sa documentation vous demande d'installer ce moteur à part, puis de régler vous-même la langue.
Ce choix n'est pas une négligence. Le vrai client de ces outils est en effet un développeur, qui a déjà du texte : journaux, tickets de support, champs de base de données. D'après l'index de paquets de Snyk, le module d'images de Presidio a été téléchargé environ 2 800 fois par semaine en octobre 2026. C'est peu au regard des scans conservés dans les cabinets, mais cohérent pour des ingénieurs qui traitent rarement une image.
Une étape que personne ne prend en charge
Entre la page et le premier appel de fonction, il reste pourtant beaucoup à faire. Il faut d'abord convertir la page en image à une résolution suffisante et choisir la langue de lecture. Il faut ensuite reconnaître les mots et garder la position de chacun, pour masquer les bons pixels. Il faut enfin reconstruire une couche de texte où la recherche fonctionne.
Or aucun produit du marché ne dit se charger de ce travail. Les bibliothèques le supposent déjà fait, et les moteurs de reconnaissance l'accomplissent sans savoir ce qu'est une donnée personnelle. Il revient donc à la personne qui a le scan sous les yeux. Autrement dit, tout le marché commence une étape après la plus difficile.
Un résultat vide, sans aucune alerte
Quand un développeur oublie cette étape, son programme plante ou un test passe au rouge : il est prévenu. Le juriste, lui, ne l'est pas. Sur un scan sans couche de texte, un détecteur conçu pour du texte affiche « zéro entité détectée », sans alerte. Or, pour un lecteur humain, ce résultat signifie qu'il n'y a rien à masquer.
Prenez la photocopie d'une carte Vitale, avec le NIR, ou un RIB numérisé de travers. Si l'outil n'y voit rien à caviarder, la pièce part telle quelle, et c'est le cabinet qui en répond.
En effet, l'article 226-13 du code pénal sanctionne la révélation d'une information secrète par celui qui en est dépositaire, sans exiger de préjudice. Le RGPD, de son côté, fait du cabinet le responsable du traitement. Or aucun de ces textes ne prévoit d'exception pour un logiciel qui n'a rien vu.
Le scan change aussi l'ordre des opérations. Avec un texte, vous pouvez détecter d'abord, puis n'envoyer que la version encodée. Avec une image, en revanche, il faut lire la page avant tout. Si un service en ligne s'en charge, il reçoit la page entière, signatures et tampons compris, avant que quiconque sache ce qu'elle contient. Il devient alors un sous-traitant au sens de l'article 28 du RGPD, avec le contrat que cela suppose.
Nous avons fait la même hypothèse
Cette hypothèse, nous l'avons faite nous aussi, et elle a produit au moins trois défauts dans notre propre code.
D'abord, pour choisir les images d'un PDF à lire, notre code se fiait à leur taille. Une petite image était prise pour un logo. Or un bloc de signature numérisé, ou un RIB inséré en petit format dans un courrier, est justement une petite image.
Ensuite, une fonction appelait une méthode que notre bibliothèque PDF ne possédait pas. L'erreur était bien interceptée, mais consignée en niveau debug, le plus bas, que personne ne lit en production. Résultat : la fonction répondait « pas d'images » pour tous les documents.
Enfin, un rectangle tracé à la main sur un passage numérisé ne capturait rien. En effet, le programme cherchait du texte sous le rectangle et, faute de couche de texte, n'en trouvait aucun. Le rectangle s'affichait, mais il restait vide pour le logiciel.
Aucun de ces défauts n'a levé d'exception ni déclenché d'alerte. Tous trois venaient de la même idée : une page contient forcément du texte. Ils sont aujourd'hui corrigés, mais aucun ne s'est signalé de lui-même.
Ce que fait promptShield d'une page numérisée
promptShield, lui, prend cette étape en charge. Pour caviarder des données personnelles dans une image scannée, voyez notre article sur le caviardage des PDF numérisés et des images.
Une page numérisée est rendue à 300 dpi, puis lue par Tesseract dans la langue du document et en anglais. Les données personnelles sont repérées comme des zones de l'image, dont les pixels sont recouverts. Une couche de texte où la recherche fonctionne est enfin reconstruite dessous.
Cette méthode a cependant une limite. Seuls huit packs de langue sont livrés : français, anglais, allemand, espagnol, italien, néerlandais, portugais et polonais. Un scan lu avec le mauvais pack est mal reconnu, et rien ne vous en avertit.
Détecter combine ensuite plusieurs couches. Les Motifs repèrent les valeurs au format reconnaissable, comme le NIR ou l'IBAN, et la Reconnaissance d'entités, les noms, les adresses et les employeurs. L'Analyse approfondie, par modèle de langage, est facultative et désactivée par défaut. Les résultats sont fusionnés, dédoublonnés, filtrés et propagés d'une page à l'autre. Mais aucun modèle local ne repère tous les identifiants. C'est pourquoi Réviser reste l'étape où vous acceptez ou écartez chaque valeur.
Caviarder retire le contenu au lieu de poser un rectangle noir dessus. L'export traite aussi ce que la page ne montre pas, comme les métadonnées ou les champs de formulaire. Une valeur encodée y est remplacée par son code, une valeur caviardée par un marqueur neutre. Une miniature générée avant le caviardage est supprimée, car on ne peut pas remplacer un mot dans une image.
Encoder, enfin, remplace la valeur par un code réversible, dont la correspondance est conservée dans le Registre de codes de votre machine. Chaque code ne vaut que dans son dossier. Seul un code créé avec « Ajouter un code » vaut dans toute la Bibliothèque.
Le badge « 100 % hors ligne » ne vaut que pour l'application de bureau, dont le mode isolé est réservé à l'offre Pro. L'application gratuite pour navigateur envoie un signal anonyme à son lancement, mais le document, lui, ne quitte jamais la machine.
Pour la comparaison complète avec Presidio, voyez pourquoi nous avons construit notre propre moteur.
Ce qui manque à la documentation
Les bibliothèques de détection n'ont pas à devenir des produits pour cabinets. Leur conception convient à leur public, et nous utilisons nous-mêmes Tesseract. Il leur manque seulement une phrase en tête de documentation. Elle dirait qui doit transformer la page en texte, et ce qui se passe si personne ne le fait.
Car la personne à qui revient cette étape connaît rarement Tesseract. C'est l'assistante juridique qui prépare une communication de pièces un vendredi soir, ou le gestionnaire de paie qui transmet un dossier à l'expert-comptable. Tous deux font confiance à un écran qui affiche zéro. Un outil, le nôtre compris, doit au moins les prévenir quand ce zéro ne signifie rien.
Questions fréquentes
Pourquoi les outils de caviardage passent-ils à côté du texte des images ?
Une page numérisée ne contient que des pixels. Tant qu'elle n'a pas été lue, un détecteur de texte n'a rien à analyser, et il renvoie donc un résultat vide, sans erreur. Sur un scan, vérifiez qu'une couche de texte existe avant de vous fier à un résultat « aucune donnée détectée ».
N'est-ce pas le rôle du module d'images de Presidio ?
En partie. Le module presidio-image-redactor masque dans l'image les zones reconnues, mais la lecture repose sur Tesseract, que vous devez installer et régler vous-même. Pour une équipe technique, c'est une installation ordinaire. Pour un cabinet sans développeur, c'est l'étape que personne ne prend en charge.
Pourquoi le traitement local compte-t-il davantage pour un scan ?
Avec un fichier texte, vous pouvez détecter et encoder sur votre poste, puis n'envoyer que le résultat. Avec un scan, il faut d'abord lire la page. Confiée à un service en ligne, cette lecture envoie le document entier, signatures comprises, chez un sous-traitant au sens de l'article 28 du RGPD.