Otwarto‑źródłowe API OCR w JavaScript do tworzenia przeszukiwalnych PDF
Wiodąca biblioteka OCR w JavaScript do tworzenia przeszukiwalnych PDF, wykonująca OCR (Optical Character Recognition) i wyodrębniająca tekst zarówno z obrazów (PNG, JPEG), jak i plików PDF.
Co to jest Scribe.js?
W dzisiejszym cyfrowym świecie ogromna ilość cennych informacji jest uwięziona w obrazach — zrzuty ekranu komunikatów o błędach, fotografie dokumentów, slajdy z prezentacji czy nawet memy z dowcipnym tekstem. Ręczne przepisywanie tego tekstu jest żmudnym i podatnym na błędy procesem. To właśnie technologia Rozpoznawania Znaków Optycznych (OCR) przychodzi z pomocą, a Scribe.js oferuje jedną z najbardziej przyjaznych dla programistów metod integracji jej w projektach internetowych. Scribe.js to otwarto‑źródłowa biblioteka JavaScript, która wykonuje OCR i wyodrębnia tekst zarówno z obrazów, jak i plików PDF. W przeciwieństwie do wielu rozwiązań OCR, które wymagają przetwarzania po stronie serwera lub wywołań zewnętrznych API, Scribe.js działa w pełni po stronie klienta, dając pełną kontrolę nad danymi i eliminując koszty serwera przy zadaniach rozpoznawania tekstu.
Scribe.js jest lekkim klientem JavaScript dla Google Cloud Vision API. Wszystkie operacje OCR odbywają się bezpośrednio w przeglądarce użytkownika lub w środowisku Node.js, zapewniając prywatność i redukując koszty infrastruktury serwerowej. Biblioteka zawiera wsparcie dla różnych funkcji, takich jak wstępne przetwarzanie obrazów, ujednolicony przepływ pracy dla obrazów, automatyczne wykrywanie, warstwowanie PDF, filtrowanie stron o niskim poziomie pewności, buforowanie silników OCR i inne. Biblioteka jest zbudowana przy użyciu nowoczesnego JavaScript ESM (ECMAScript Modules), co ułatwia integrację z współczesnymi procesami tworzenia aplikacji webowych bez konieczności skomplikowanych konfiguracji budowania. To podejście skoncentrowane na deweloperze oznacza, że możesz rozpocząć wyodrębnianie tekstu z dokumentów już po kilku linijkach kodu.
Rozpoczęcie pracy z Scribe.js
Zalecanym sposobem instalacji Scribe.js jest użycie npm. Proszę użyć następującego polecenia, aby zapewnić płynną instalację
Zainstaluj Scribe.js za pomocą npm
npm install scribe.js-ocr Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z repozytorium GitHub.
Rozpoznawanie tekstu z obrazów
Najbardziej podstawowym przypadkiem użycia biblioteki Scribe.js jest wyodrębnianie tekstu z plików graficznych. Biblioteka obsługuje różne formaty obrazów i może przetwarzać zarówno pojedyncze obrazy, jak i partie wielu obrazów w jednej operacji. Oto prosty przykład, który demonstruje wyodrębnianie tekstu z adresu URL obrazu w aplikacjach JavaScript. Fragment prezentuje prosty interfejs API, który udostępnia Scribe.js. Metoda extractText przyjmuje tablicę adresów URL obrazów i zwraca Promise, który rozwiązuje się z rozpoznanym tekstem.
Jak wyodrębnić tekst z obrazu przy użyciu biblioteki 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);
});
Tworzenie przeszukiwalnych plików PDF za pomocą JavaScript
Jedną z najpotężniejszych funkcji Scribe.js jest możliwość dodawania niewidzialnych warstw tekstu do istniejących plików PDF. Ta funkcjonalność przekształca PDF‑y oparte na obrazach w dokumenty przeszukiwalne bez zmiany ich wyglądu wizualnego. Gdy warstwa tekstowa zostanie dodana do PDF‑a, użytkownicy mogą wyszukiwać konkretne słowa lub frazy w dokumencie, zaznaczać i kopiować tekst z tego, co wygląda jak obraz, korzystać z czytników ekranu i narzędzi dostępnościowych przy zeskanowanych dokumentach, umożliwiać indeksowanie przez wyszukiwarki i systemy zarządzania dokumentami i tak dalej.
Jak utworzyć przeszukiwalne dokumenty PDF przy użyciu biblioteki 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;
}
}
Zaawansowane wykrywanie tekstu w dokumentach za pomocą JS
Dla obrazów dokumentów z gęstym tekstem i złożonym układem (takich jak zeskanowana strona książki lub eksport PDF), biblioteka Scribe.js oferuje funkcję \"Wykrywanie tekstu dokumentu\". Dostarcza ona znacznie bogatsze informacje, w tym wykrywanie akapitów, słów i przerw, co pomaga zachować strukturę oryginalnego dokumentu. Jest to niezwykle przydatne w aplikacjach, w których układ i struktura materiału źródłowego są istotne, np. przy przetwarzaniu formularzy, faktur lub układów wielokolumnowych.
Jak przeprowadzić zaawansowane wykrywanie tekstu w aplikacjach 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);
});
Przetwarzanie wsadowe wielu plików za pomocą JavaScript
W rzeczywistych aplikacjach profesjonaliści oprogramowania często muszą przetwarzać wiele dokumentów jednocześnie. Scribe.js obsługuje przetwarzanie wsadowe od razu, umożliwiając użytkownikom wyodrębnianie tekstu z wielu obrazów lub plików PDF w jednej operacji w aplikacji JavaScript. Poniższy przykład pokazuje, jak programiści mogą przetwarzać batch dokumentów przy użyciu poleceń JavaScript.
Jak przetworzyć partię dokumentów przy użyciu biblioteki 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');
});