Scribe.js : OCR JavaScript et extraction de texte pour images et PDF
OCR JavaScript et extraction de texte pour les images et les PDF. Projets Scribe OCR : interface graphique officiellement prise en charge pour Scribe.js Site sur scribeocr.com, dépôt sur github.com/scribeocr/scribeocr Si vous avez un projet ou un exemple de dépôt qui utilise Scribe.js, n'hésitez pas à l'ajouter à cette liste à l'aide d'une pull request.
En bref
- De quoi s’agit-il ?
- Une bibliothèque orientée développeur qui reconnaît le texte dans les images, extrait le texte des PDF et écrit des PDF consultables avec une couche de texte invisible.
- À qui s’adresse-t-il ?
- Scribe.js propose deux niveaux d'API : une fonction simple extractText pour les tests rapides et un objet document pour le contrôle en production. Il est uniquement ESM, nécessite un service de même origine dans le navigateur et est sous licence AGPL-3.0.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 3 jours.
- En quel langage est-il écrit ?
- Principalement JavaScript, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Reconnaître le texte à partir d'images et de PDF
Le README présente Scribe.js comme une bibliothèque JavaScript qui effectue de l'OCR et extrait le texte à partir d'images et de PDF. Il énumère trois cas d'utilisation courants : reconnaître le texte à partir d'images, extraire le texte de fichiers PDF téléchargés par l'utilisateur (les PDF natifs en texte fournissent le texte existant, les PDF natifs en image passent par l'OCR) et écrire des PDF qui incluent une couche de texte invisible de haute qualité. Ce dernier cas permet d'insérer du texte dans un PDF existant pour le rendre consultable. La bibliothèque cible les développeurs ; les utilisateurs finaux qui souhaitent scanner des documents sont dirigés vers l'interface graphique officiellement prise en charge sur scribeocr.com, avec son dépôt lié.
Installation depuis npm et importation
Installez Scribe.js depuis npm avec la commande `npm i scribe.js-ocr`. Le paquet est écrit en JavaScript avec ESM, vous pouvez donc l'importer directement depuis le navigateur ou le code Node.js sans étape de build. Le README montre deux styles d'importation : un pour Node.js ou un navigateur avec bundler utilisant `import scribe from 'scribe.js-ocr'`, et un autre pour le navigateur sans bundler, utilisant une import map ou un chemin relatif vers `node_modules/scribe.js-ocr/scribe.js`. Cette deuxième forme exige explicitement que tous les fichiers soient servis depuis la même origine que le fichier importateur ; le README avertit que l'importation depuis un CDN ne fonctionnera pas et qu'aucune version UMD n'existe. Le nom du paquet sur npm est `scribe.js-ocr`, qui n'est pas identique au nom du dépôt, un détail à retenir lors de l'installation.
Extraction simple et contrôle complet du document
Pour les nouveaux utilisateurs, la fonction `scribe.extractText` prend un tableau de sources et renvoie du texte avec des paramètres par défaut raisonnables. Le README note que cela n'est pas idéal pour la production. Pour un contrôle complet, vous créez un objet document avec `openDocument`, puis appelez des méthodes comme `recognize({ langs: ['eng'] })` pour exécuter l'OCR et `download('pdf', 'receipt.pdf')` pour écrire un PDF consultable. Les deux exemples appellent `await scribe.terminate()` après la reconnaissance pour que le processus Node puisse se terminer. L'objet document peut accepter une image, un PDF ou des fichiers OCR existants, mais le README ne détaille pas quels formats de fichiers OCR sont pris en charge. L'exemple utilise `['receipt.png']` comme entrée, suggérant que les images sont acceptées directement.
Contraintes du navigateur et des modules
Le README est explicite sur le comportement du navigateur : tous les fichiers doivent être servis depuis la même origine que le fichier qui importe Scribe.js. Cela signifie que l'importation depuis un CDN ne fonctionnera pas et qu'il n'y a pas de version UMD. La bibliothèque est uniquement ESM, donc un bundler ou une import map est requis dans le navigateur. Ces contraintes sont listées sans explication, les développeurs doivent donc vérifier la configuration exacte du serveur avant de s'y fier. Le README ne mentionne aucun détail de compatibilité navigateur au-delà de cette règle d'origine, donc les navigateurs plus anciens peuvent ou non fonctionner selon leur prise en charge ESM.
Dépôts modèles et exemples
Le README lie quatre dépôts modèles montrant Scribe.js dans différents environnements : un navigateur avec ESM sans étape de build, un navigateur avec Next.js, un navigateur avec Webpack 5 et un navigateur avec Vue.js v2. Il pointe également vers un répertoire examples dans le dépôt et liste un projet : Scribe OCR, l'interface graphique officielle, hébergée sur scribeocr.com avec son code source sur github.com/scribeocr/scribeocr. Les contributeurs sont invités à ajouter leurs propres dépôts d'exemples ou projets via une pull request, à condition que les exemples soient bien documentés et que les projets soient fonctionnels et activement maintenus. Le README ne dit pas si ces modèles sont tenus à jour à chaque version.
Documentation, comparaison et interface graphique officielle
Le dépôt comprend un guide, une référence API, une référence CLI et un dossier examples, tous liés depuis le README. Un article dédié compare Scribe.js avec Tesseract.js, mais le README ne résume pas les conclusions de cet article. L'interface graphique officielle est décrite comme une application destinée aux utilisateurs finaux pour numériser des documents, séparée de la bibliothèque développeur. Le README ne précise pas quelles fonctionnalités de la bibliothèque l'interface expose, ni si l'article de comparaison recommande une bibliothèque plutôt que l'autre. Le répertoire de documentation est référencé comme `./docs/`, avec des fichiers comme `guide.md` et `API.md`, mais le README ne fournit pas de table des matières ni d'ordre de lecture.
Licence et processus de contribution
Le dépôt est sous licence AGPL-3.0, comme indiqué dans le fichier de licence. L'extrait de cette licence la décrit comme une licence copyleft conçue pour les logiciels de serveur réseau, exigeant que les versions modifiées exécutées sur un serveur accessible publiquement fournissent leur code source aux utilisateurs. La section contribution du README demande aux contributeurs de cloner avec `--recurse-submodules`, d'installer les dépendances, d'exécuter les tests automatisés via `npm run test` avant de faire une pull request. Le texte de la licence ne mentionne pas le support, la garantie ou les garanties de sécurité, et le README non plus. Le README ne spécifie pas non plus de code de conduite ou de directives de contribution au-delà de l'exigence de test.
Conclusion éditoriale
Scribe.js propose deux niveaux d'API : une fonction simple extractText pour les tests rapides et un objet document pour le contrôle en production. Il est uniquement ESM, nécessite un service de même origine dans le navigateur et est sous licence AGPL-3.0. Le README ne fournit pas de benchmarks de performance ni de garanties de sécurité, ceux-ci doivent donc être vérifiés avant adoption.
Notes de la communauté