Open source OCR JavaScript API om doorzoekbare PDF's te maken
Een toonaangevende JavaScript OCR-bibliotheek om doorzoekbare PDF's te maken en OCR (Optical Character Recognition) uit te voeren en tekst te extraheren uit zowel afbeeldingen (PNG, JPEG) als PDF-bestanden.
Wat is Scribe.js?
In de digitale wereld van vandaag is een enorme hoeveelheid waardevolle informatie opgesloten in afbeeldingen—screenshots van foutmeldingen, foto’s van documenten, dia’s van een presentatie, of zelfs memes met slimme tekst. Het handmatig transcriberen van deze tekst is een tijdrovend en foutgevoelig proces. Hier komt Optical Character Recognition (OCR)-technologie om de hoek kijken, en Scribe.js biedt een van de meest ontwikkelaarvriendelijke manieren om het in je webprojecten te integreren. Scribe.js is een open-source JavaScript-bibliotheek die OCR uitvoert en tekst uit zowel afbeeldingen als PDF‑bestanden haalt. In tegenstelling tot veel OCR‑oplossingen die backend‑verwerking of externe API‑aanroepen vereisen, draait Scribe.js volledig aan de client‑kant, waardoor je volledige controle over je gegevens hebt en serverkosten voor tekstanalyse wegvallen.
Scribe.js is een lichtgewicht JavaScript-client voor de Google Cloud Vision API. Alle OCR-bewerkingen vinden direct plaats in de browser van de gebruiker of in je Node.js-omgeving, wat privacy garandeert en de kosten voor serverinfrastructuur verlaagt. De bibliotheek bevat ondersteuning voor verschillende functies, zoals het voorbewerken van je afbeeldingen, een uniforme workflow voor afbeeldingen, automatische detectie, PDF-lagen, het filteren van pagina's met een lage vertrouwensscore, het cachen van OCR-engines, enzovoort. De bibliotheek is gebouwd met modern JavaScript ESM (ECMAScript-modules), waardoor het eenvoudig te integreren is in hedendaagse webontwikkelingsworkflows zonder complexe buildconfiguraties. Deze ontwikkelaar‑gerichte benadering betekent dat je tekst uit documenten kunt extraheren met slechts een paar regels code.
Aan de slag met Scribe.js
De aanbevolen manier om Scribe.js te installeren is via npm. Gebruik alstublieft het volgende commando voor een soepele installatie.
Installeer Scribe.js via npm
npm install scribe.js-ocr U kunt het ook handmatig installeren; download de nieuwste release‑bestanden rechtstreeks van de GitHub-repository.
Tekstherkenning van afbeeldingen
De meest fundamentele gebruikssituatie voor de Scribe.js-bibliotheek is het extraheren van tekst uit afbeeldingsbestanden. De bibliotheek ondersteunt verschillende afbeeldingsformaten en kan zowel enkele afbeeldingen als batches van meerdere afbeeldingen in één bewerking verwerken. Hier is een basisvoorbeeld dat tekstextractie van een afbeeldings‑URL binnen JavaScript‑apps demonstreert. Het fragment toont de eenvoudige API die Scribe.js biedt. De extractText‑methode accepteert een array van afbeeldings‑URL's en retourneert een Promise die wordt opgelost met de herkende tekst.
Hoe tekst uit een afbeelding extraheren via JavaScript-bibliotheek?
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);
});
Maak doorzoekbare PDF's via JavaScript
Een van de krachtigste functies van Scribe.js is de mogelijkheid om onzichtbare tekstlagen toe te voegen aan bestaande PDF‑bestanden. Deze functionaliteit verandert op afbeeldingen gebaseerde PDF's in doorzoekbare documenten zonder hun visuele uiterlijk te wijzigen. Wanneer een tekstlaag aan een PDF wordt toegevoegd, kunnen gebruikers zoeken naar specifieke woorden of zinnen binnen het document, tekst selecteren en kopiëren van wat lijkt op een afbeelding, schermlezers en toegankelijkheidstools gebruiken met gescande documenten, indexering door zoekmachines en documentbeheersystemen mogelijk maken, enzovoort.
Hoe doorzoekbare PDF-documenten maken via JavaScript-bibliotheek?
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;
}
}
Geavanceerde documenttekstdetectie via JS
Voor afbeeldingen van documenten met dichte tekst en complexe lay-outs (zoals een gescande boekpagina of een PDF-export) biedt de Scribe.js-bibliotheek een functie genaamd "Document Text Detection". Deze levert veel rijkere informatie, inclusief alinea-, woord- en regeleinde-detectie, wat helpt de structuur van het oorspronkelijke document te behouden. Dit is uiterst nuttig voor toepassingen waarbij de lay-out en structuur van het bronmateriaal belangrijk zijn, zoals het verwerken van formulieren, facturen of meerkoloms lay-outs.
Hoe geavanceerde tekstdetectie uitvoeren in JavaScript-apps?
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);
});
Batchverwerking van meerdere bestanden via JavaScript
In echte toepassingen moeten softwareprofessionals vaak meerdere documenten tegelijk verwerken. Scribe.js ondersteunt batchverwerking direct uit de doos, waardoor gebruikers tekst kunnen extraheren uit meerdere afbeeldingen of PDF's in één enkele bewerking binnen een JavaScript-toepassing. Het volgende voorbeeld laat zien hoe softwareontwikkelaars een batch documenten kunnen verwerken met JavaScript-commando's.
Hoe een batch documenten verwerken met behulp van JavaScript-bibliotheek?
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');
});