Atviro kodo OCR JavaScript API, skirtas kurti ieškomus PDF
Vyriausia JavaScript OCR biblioteka, skirta kurti ieškomus PDF ir atlieka OCR (optinį simbolių atpažinimą) bei išgauna tekstą tiek iš vaizdų (PNG, JPEG), tiek iš PDF failų.
Kas yra Scribe.js?
Šiandien skaitmeniniame pasaulyje didžiulė vertinga informacija yra įstrigusi paveikslėliuose – ekrano nuotraukose su klaidų pranešimais, dokumentų nuotraukose, pristatymo skaidrėse arba net memuose su protingu tekstu. Rankiniu būdu šio teksto perrašymas yra varginantis ir klaidų linkęs procesas. Čia į pagalbą įsijungia optinio teksto atpažinimo (OCR) technologija, o Scribe.js siūlo vieną iš patogiausių kūrėjams būdų ją integruoti į jūsų internetinius projektus. Scribe.js yra atviro kodo JavaScript biblioteka, atliekanti OCR ir išgaunanti tekstą tiek iš paveikslėlių, tiek iš PDF failų. Skirtingai nuo daugelio OCR sprendimų, kuriems reikia serverio apdorojimo arba išorinių API iškvietimų, Scribe.js veikia visiškai kliento pusėje, suteikdamas jums visišką kontrolę над jūsų duomenimis ir pašalindamas serverio išlaidas teksto atpažinimo užduotims.
Scribe.js yra lengvas JavaScript klientas Google Cloud Vision API. Visos OCR operacijos vyksta tiesiai vartotojo naršyklėje arba jūsų Node.js aplinkoje, užtikrinant privatumą ir sumažinant serverio infrastruktūros išlaidas. Biblioteka įtraukia palaikymą įvairioms funkcijoms, tokioms kaip vaizdų išankstinis apdorojimas, vieninga vaizdų darbo eiga, automatinis aptikimas, PDF sluoksniavimas, mažos pasitikėjimo puslapių filtravimas, OCR variklių talpinimas talpykloje ir pan. Biblioteka sukurta naudojant modernų JavaScript ESM (ECMAScript Modules), todėl ją lengva integruoti į šiuolaikinius web kūrimo procesus be sudėtingų kūrimo konfigūracijų. Šis kūrėjų pirmiausia orientuotas požiūris leidžia pradėti išgauti tekstą iš dokumentų vos keliais kodo eilutėmis.
Pradžia su Scribe.js
Rekomenduojamas būdas įdiegti Scribe.js yra naudojant npm. Prašome naudoti šią komandą sklandžiam įdiegimui
Įdiekite Scribe.js per npm
npm install scribe.js-ocr Taip pat galite įdiegti rankiniu būdu; atsisiųskite naujausius išleidimo failus tiesiai iš GitHub saugyklos.
Teksto atpažinimas iš vaizdų
Labiausiai pagrindinis Scribe.js bibliotekos naudojimo atvejis yra teksto išgavimas iš paveikslėlių failų. Biblioteka palaiko įvairius paveikslėlių formatus ir gali apdoroti tiek atskirus paveikslėlius, tiek kelių paveikslėlių paketus vienoje operacijoje. Štai paprastas pavyzdys, demonstruojantis teksto išgavimą iš paveikslėlio URL JavaScript programose. Šis fragmentas parodo tiesioginę Scribe.js teikiamą API. extractText metodas priima masyvą su paveikslėlių URL ir grąžina Promise, kuris išsprendžiamas su atpažintu tekstu.
Kaip išgauti tekstą iš paveikslėlio naudojant 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);
});
Kurti ieškomus PDF failus naudojant JavaScript
Viena iš galingiausių Scribe.js funkcijų yra galimybė pridėti nematomus teksto sluoksnius prie esamų PDF failų. Ši funkcija paverčia iš paveikslėlių sukurtus PDF dokumentus į peržiūrimus dokumentus, nekeisdama jų vizualinio išvaizdos. Kai PDF dokumentui pridedamas teksto sluoksnis, vartotojai gali ieškoti konkrečių žodžių ar frazių dokumente, pasirinkti ir kopijuoti tekstą iš to, kas atrodo kaip paveikslėlis, naudoti ekrano skaitytuvus ir prieinamumo įrankius su nuskenuotais dokumentais, leisti paieškos sistemoms ir dokumentų valdymo sistemoms indeksuoti ir t.t.
Kaip sukurti ieškomus PDF dokumentus naudojant 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;
}
}
Išplėstinis dokumentų teksto aptikimas naudojant JS
Vaizdams, kuriuose dokumentų tekstas tankus ir išdėstymas sudėtingas (pvz., nuskenuotas knygos puslapis arba PDF eksportas), Scribe.js biblioteka siūlo funkciją "Dokumento teksto aptikimas". Tai suteikia daug turtingesnę informaciją, įskaitant pastraipų, žodžių ir pertraukų detektorius, kurie padeda išsaugoti originalaus dokumento struktūrą. Tai ypač naudinga programoms, kuriose svarbus šaltinio medžiagos išdėstymas ir struktūra, pvz., formų, sąskaitų faktūrų ar daugiastulpelių išdėstymų apdorojimui.
Kaip atlikti pažangią teksto aptikimą JavaScript programose?
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);
});
Masinis kelių failų apdorojimas naudojant JavaScript
Realiose programų taikymo srityse programinės įrangos specialistams dažnai reikia apdoroti kelis dokumentus vienu metu. Scribe.js iš karto palaiko paketų apdorojimą, leidžiant vartotojams išgauti tekstą iš kelių vaizdų arba PDF failų vienoje operacijoje JavaScript programoje. Toliau pateiktas pavyzdys demonstruoja, kaip programinės įrangos kūrėjai gali apdoroti dokumentų paketą naudojant JavaScript komandas.
Kaip apdoroti dokumentų grupę naudojant 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');
});