Open-source OCR JavaScript API pro vytváření prohledávatelných PDF
Vedoucí JavaScript OCR knihovna pro vytváření prohledávatelných PDF, která provádí OCR (optické rozpoznávání znaků) a extrahuje text jak z obrázků (PNG, JPEG), tak z PDF souborů.
Co je Scribe.js?
V dnešním digitálním světě je obrovské množství cenných informací uvězněno v obrázcích — snímcích obrazovky chybových zpráv, fotografiích dokumentů, slidech z prezentace nebo dokonce memech s chytrým textem. Ruční přepisování tohoto textu je zdlouhavý a náchylný k chybám. Zde přichází na pomoc technologie optického rozpoznávání znaků (OCR) a Scribe.js nabízí jeden z nejuživatelsky přívětivějších způsobů, jak ji integrovat do vašich webových projektů. Scribe.js je open-source JavaScript knihovna, která provádí OCR a extrahuje text jak z obrázků, tak z PDF souborů. Na rozdíl od mnoha OCR řešení, která vyžadují zpracování na serveru nebo volání externích API, Scribe.js běží zcela na straně klienta, což vám dává plnou kontrolu nad vašimi daty a odstraňuje náklady na server při úlohách rozpoznávání textu.
Scribe.js je lehký JavaScriptový klient pro Google Cloud Vision API. Veškeré operace OCR probíhají přímo v prohlížeči uživatele nebo ve vašem prostředí Node.js, což zajišťuje soukromí a snižuje náklady na serverovou infrastrukturu. Knihovna zahrnuje podporu různých funkcí, jako je předzpracování obrázků, jednotný pracovní postup pro obrázky, automatické rozpoznávání, vrstvení PDF, filtrování stránek s nízkou důvěryhodností, ukládání OCR enginů do mezipaměti a další. Knihovna je postavena pomocí moderního JavaScriptu ESM (ECMAScript Modules), což usnadňuje integraci do současných webových vývojových workflow bez nutnosti složitých build konfigurací. Tento vývojářsky orientovaný přístup vám umožní začít extrahovat text z dokumentů během několika řádků kódu.
Začínáme se Scribe.js
Doporučený způsob instalace Scribe.js je pomocí npm. Použijte prosím následující příkaz pro hladkou instalaci
Nainstalujte Scribe.js pomocí npm
npm install scribe.js-ocr Můžete jej také nainstalovat ručně; stáhněte nejnovější soubory vydání přímo z GitHub repozitáře.
Rozpoznávání textu z obrázků
Nejzákladnějším případem použití knihovny Scribe.js je extrahování textu z obrazových souborů. Knihovna podporuje různé formáty obrázků a dokáže zpracovat jak jednotlivé obrázky, tak i dávky více obrázků v jedné operaci. Zde je jednoduchý příklad, který ukazuje extrakci textu z URL obrázku v JavaScriptových aplikacích. Úryvek představuje přehledné API, které Scribe.js poskytuje. Metoda extractText přijímá pole URL obrázků a vrací Promise, která se vyřeší rozpoznaným textem.
Jak extrahovat text z obrázku pomocí JavaScript knihovny?
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);
});
Vytvořte prohledávatelné PDF pomocí JavaScriptu
Jednou z nejvýkonnějších funkcí Scribe.js je schopnost přidávat neviditelné textové vrstvy do existujících PDF souborů. Tato funkce promění PDF založené na obrázcích na prohledávatelné dokumenty, aniž by změnila jejich vizuální vzhled. Když je do PDF přidána textová vrstva, uživatelé mohou v dokumentu vyhledávat konkrétní slova nebo fráze, vybírat a kopírovat text z toho, co vypadá jako obrázek, používat čtečky obrazovky a nástroje přístupnosti u skenovaných dokumentů, umožnit indexování vyhledávači a systémy pro správu dokumentů a podobně.
Jak vytvořit prohledávatelné PDF dokumenty pomocí JavaScript knihovny?
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;
}
}
Pokročilé rozpoznávání textu v dokumentech pomocí JS
Pro obrázky dokumentů s hustým textem a složitým rozvržením (například naskenovaná stránka knihy nebo export PDF) knihovna Scribe.js nabízí funkci "Detekce textu dokumentu". Poskytuje mnohem bohatší informace, včetně detektorů odstavců, slov a zalomení, což pomáhá zachovat strukturu původního dokumentu. To je mimořádně užitečné pro aplikace, kde je důležité rozvržení a struktura zdrojového materiálu, jako je zpracování formulářů, faktur nebo vícesloupcových rozvržení.
Jak provést pokročilé rozpoznávání textu v JavaScript aplikacích?
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);
});
Dávkové zpracování více souborů pomocí JavaScriptu
V reálných aplikacích často potřebují softwaroví profesionálové zpracovávat více dokumentů najednou. Scribe.js podporuje dávkové zpracování přímo z krabice, což uživatelům umožňuje extrahovat text z více obrázků nebo PDF v jedné operaci v rámci JavaScriptové aplikace. Následující příklad ukazuje, jak mohou vývojáři softwaru zpracovat dávku dokumentů pomocí JavaScriptových příkazů.
Jak zpracovat dávku dokumentů pomocí JavaScript knihovny?
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');
});