API OCR JavaScript open source pour créer des PDF recherchables
Une bibliothèque OCR JavaScript de premier plan pour créer des PDF recherchables, effectuer la reconnaissance optique de caractères (OCR) et extraire le texte à la fois des images (PNG, JPEG) et des fichiers PDF.
Qu’est‑ce que Scribe.js ?
Dans le monde numérique d'aujourd'hui, une quantité massive d'informations précieuses est enfermée dans les images—captures d'écran de messages d'erreur, photographies de documents, diapositives d'une présentation, voire des mèmes avec du texte astucieux. Transcrire manuellement ce texte est un processus fastidieux et sujet aux erreurs. C'est là que la technologie de reconnaissance optique de caractères (OCR) entre en jeu, et Scribe.js propose l'une des méthodes les plus conviviales pour les développeurs afin de l'intégrer à vos projets web. Scribe.js est une bibliothèque JavaScript open source qui effectue l'OCR et extrait le texte à la fois des images et des fichiers PDF. Contrairement à de nombreuses solutions OCR qui nécessitent un traitement côté serveur ou des appels d'API externes, Scribe.js fonctionne entièrement côté client, vous donnant un contrôle total sur vos données et éliminant les coûts serveur pour les tâches de reconnaissance de texte.
Scribe.js est un client JavaScript léger pour l'API Google Cloud Vision. Toutes les opérations OCR s'exécutent directement dans le navigateur de l'utilisateur ou votre environnement Node.js, garantissant la confidentialité et réduisant les coûts d'infrastructure serveur. La bibliothèque inclut la prise en charge de diverses fonctionnalités, telles que le prétraitement de vos images, un flux de travail unifié pour les images, la détection automatique, la superposition de PDF, le filtrage des pages à faible confiance, la mise en cache des moteurs OCR, etc. La bibliothèque est construite avec les modules JavaScript modernes ESM (ECMAScript Modules), ce qui la rend facile à intégrer aux flux de travail de développement web contemporains sans nécessiter de configurations de build complexes. Cette approche axée sur les développeurs vous permet de commencer à extraire du texte des documents en quelques lignes de code seulement.
Commencer avec Scribe.js
La méthode recommandée pour installer Scribe.js est d'utiliser npm. Veuillez utiliser la commande suivante pour une installation fluide.
Installer Scribe.js via npm
npm install scribe.js-ocr Vous pouvez également l'installer manuellement ; téléchargez les derniers fichiers de version directement depuis le dépôt GitHub.
Reconnaissance de texte à partir d’images
Le cas d'utilisation le plus fondamental de la bibliothèque Scribe.js est l'extraction de texte à partir de fichiers image. La bibliothèque gère divers formats d'image et peut traiter à la fois des images uniques et des lots de plusieurs images en une seule opération. Voici un exemple de base qui montre l'extraction de texte à partir d'une URL d'image dans les applications JavaScript. L'extrait met en avant l'API simple que Scribe.js fournit. La méthode extractText accepte un tableau d'URL d'images et renvoie une Promise qui se résout avec le texte reconnu.
Comment extraire du texte d'une image via une bibliothèque JavaScript ?
import scribe from 'scribe.js-ocr';
// Extract text from a single image
scribe.extractText(['https://example.com/sample-image.png'])
.then((result) => {
console.log('Extracted text:', result);
})
.catch((error) => {
console.error('OCR failed:', error);
});
Créer des PDF recherchables via JavaScript
L'une des fonctionnalités les plus puissantes de Scribe.js est sa capacité à ajouter des calques de texte invisibles aux fichiers PDF existants. Cette fonctionnalité transforme les PDF basés sur des images en documents consultables sans modifier leur apparence visuelle. Lorsqu'un calque de texte est ajouté à un PDF, les utilisateurs peuvent rechercher des mots ou des expressions spécifiques dans le document, sélectionner et copier le texte à partir de ce qui semble être une image, utiliser des lecteurs d'écran et des outils d'accessibilité avec les documents numérisés, permettre l'indexation par les moteurs de recherche et les systèmes de gestion de documents, etc.
Comment créer des documents PDF recherchables via une bibliothèque JavaScript ?
import scribe from 'scribe.js-ocr';
// Add searchable text layer to an image-based PDF
async function makeSearchablePDF(inputPdfUrl) {
try {
// First, perform OCR on the PDF
const ocrResult = await scribe.extractText([inputPdfUrl]);
// Then create a new PDF with the text layer embedded
const searchablePdf = await scribe.createSearchablePDF(
inputPdfUrl,
ocrResult
);
// The resulting PDF maintains the original appearance
// but now contains selectable, searchable text
return searchablePdf;
} catch (error) {
console.error('Failed to create searchable PDF:', error);
throw error;
}
}
Détection avancée de texte de documents via JS
Pour les images de documents contenant du texte dense et des mises en page complexes (comme une page de livre numérisée ou une exportation PDF), la bibliothèque Scribe.js propose une fonctionnalité "Détection de texte de document". Celle-ci fournit des informations beaucoup plus riches, incluant des détecteurs de paragraphes, de mots et de sauts, ce qui aide à préserver la structure du document original. Cela est extrêmement utile pour les applications où la mise en page et la structure du matériel source sont importantes, comme le traitement de formulaires, de factures ou de mises en page à plusieurs colonnes.
Comment effectuer une détection de texte avancée dans les applications JavaScript ?
const Scribe = require('scribejs');
const serviceAccountKey = require('./path-to-your-key.json');
const scribe = new Scribe(serviceAccountKey);
const documentImageUrl = 'https://example.com/scanned-invoice.png';
// Use the `documentText` method for advanced detection
scribe.documentText(documentImageUrl)
.then(fullTextAnnotation => {
// The fullTextAnnotation object contains detailed data
console.log('Full Document Text:');
console.log(fullTextAnnotation.text); // The plain text of the entire document
// You can also iterate through pages, blocks, paragraphs, and words
fullTextAnnotation.pages.forEach(page => {
page.blocks.forEach(block => {
console.log('\nBlock Confidence:', block.confidence);
block.paragraphs.forEach(paragraph => {
console.log(paragraph.text);
});
});
});
})
.catch(error => {
console.error('Document OCR Error:', error);
});
Traitement par lots de plusieurs fichiers via JavaScript
Dans les applications réelles, les professionnels du logiciel doivent souvent traiter plusieurs documents simultanément. Scribe.js prend en charge le traitement par lots dès le départ, permettant aux utilisateurs d'extraire du texte de plusieurs images ou PDF en une seule opération au sein d'une application JavaScript. L'exemple suivant montre comment les développeurs peuvent traiter un lot de documents à l'aide de commandes JavaScript.
Comment traiter un lot de documents en utilisant une bibliothèque JavaScript ?
import scribe from 'scribe.js-ocr';
// Process multiple documents at once
async function batchProcess(fileUrls) {
try {
// Pass an array of URLs to process multiple files
const results = await scribe.extractText(fileUrls);
// Results are returned in the same order as input
results.forEach((text, index) => {
console.log(`Document ${index + 1} text:`, text);
});
return results;
} catch (error) {
console.error('Batch processing failed:', error);
throw error;
}
}
// Process a batch of documents
const documents = [
'https://example.com/receipt1.jpg',
'https://example.com/receipt2.jpg',
'https://example.com/invoice.pdf'
];
batchProcess(documents)
.then(allText => {
console.log('All documents processed successfully');
});