Open Source OCR JavaScript API för att skapa sökbara PDF-filer
Ett ledande JavaScript OCR-bibliotek för att skapa sökbara PDF-filer och utför OCR (Optisk teckenigenkänning) samt extraherar text från både bilder (PNG, JPEG) och PDF-filer.
Vad är Scribe.js?
I dagens digitala värld är en enorm mängd värdefull information fångad i bilder — skärmdumpar av felmeddelanden, fotografier av dokument, bilder från en presentation eller till och med memes med smart text. Att manuellt transkribera denna text är en tråkig och felbenägen process. Här kommer teknik för optisk teckenigenkänning (OCR) till undsättning, och Scribe.js erbjuder ett av de mest utvecklarvänliga sätten att integrera den i dina webbprojekt. Scribe.js är ett open-source JavaScript-bibliotek som utför OCR och extraherar text från både bilder och PDF-filer. Till skillnad från många OCR-lösningar som kräver backend‑behandling eller externa API‑anrop, kör Scribe.js helt på klientsidan, vilket ger dig full kontroll över dina data och eliminerar serverkostnader för textigenkänningsuppgifter.
Scribe.js är en lättviktig JavaScript-klient för Google Cloud Vision API. Alla OCR‑operationer sker direkt i användarens webbläsare eller i din Node.js‑miljö, vilket säkerställer integritet och minskar kostnader för serverinfrastruktur. Biblioteket har inkluderat stöd för olika funktioner, såsom förbehandling av dina bilder, enhetligt arbetsflöde för bilder, automatisk detektering, PDF‑lagring, filtrering av sidor med låg förtroendegrad, cachelagring av OCR‑motorer och så vidare. Biblioteket är byggt med modern JavaScript ESM (ECMAScript Modules), vilket gör det enkelt att integrera i samtida webbutvecklingsarbetsflöden utan att kräva komplexa byggkonfigurationer. Detta utvecklar‑först‑tillvägagångssätt innebär att du kan börja extrahera text från dokument med bara några rader kod.
Komma igång med Scribe.js
Det rekommenderade sättet att installera Scribe.js är att använda npm. Använd följande kommando för en smidig installation
Installera Scribe.js via npm
npm install scribe.js-ocr Du kan också installera det manuellt; ladda ner de senaste release‑filerna direkt från GitHub-arkivet.
Textigenkänning från bilder
Det mest grundläggande användningsfallet för Scribe.js-biblioteket är att extrahera text från bildfiler. Biblioteket hanterar olika bildformat och kan bearbeta både enskilda bilder och batcher av flera bilder i en operation. Här är ett enkelt exempel som demonstrerar textutdragning från en bild-URL i JavaScript-appar. Snippet visar det enkla API:et som Scribe.js tillhandahåller. Metoden extractText accepterar en array av bild-URL:er och returnerar ett Promise som löser sig med den igenkända texten.
Hur extraherar man text från en bild via ett JavaScript-bibliotek?
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);
});
Skapa sökbara PDF-filer via JavaScript
En av Scribe.js mest kraftfulla funktioner är dess förmåga att lägga till osynliga textlager i befintliga PDF-filer. Denna funktionalitet omvandlar bildbaserade PDF-filer till sökbara dokument utan att ändra deras visuella utseende. När ett textlager läggs till i en PDF kan användare söka efter specifika ord eller fraser i dokumentet, markera och kopiera text från det som ser ut som en bild, använda skärmläsare och tillgänglighetsverktyg med skannade dokument, möjliggöra indexering av sökmotorer och dokumenthanteringssystem och så vidare.
Hur skapar man sökbara PDF-dokument via ett JavaScript-bibliotek?
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;
}
}
Avancerad dokumenttextdetektering via JS
För bilder av dokument med tät text och komplexa layouter (t.ex. en skannad boksida eller en PDF-export) erbjuder Scribe.js-biblioteket en funktion för "Document Text Detection". Detta ger mycket rikare information, inklusive avsnitt-, ord- och radbrytningdetektorer, vilket hjälper till att bevara strukturen i det ursprungliga dokumentet. Detta är extremt användbart för applikationer där layouten och strukturen i källmaterialet är viktig, såsom bearbetning av formulär, fakturor eller flerkolumnslayouter.
Hur utför man avancerad textdetektering i JavaScript-appar?
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);
});
Batchbearbetning av flera filer via JavaScript
I verkliga applikationer behöver mjukvaruprofessionella ofta bearbeta flera dokument samtidigt. Scribe.js stödjer batchbearbetning direkt ur lådan, vilket gör att användare kan extrahera text från flera bilder eller PDF-filer i en enda operation i en JavaScript-applikation. Följande exempel visar hur mjukvaruutvecklare kan bearbeta en batch av dokument med JavaScript-kommandon.
Hur bearbetar man en batch av dokument med ett JavaScript-bibliotek?
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');
});