Отворен код OCR JavaScript API за създаване на търсими PDF файлове
Водеща JavaScript OCR библиотека за създаване на търсими PDF файлове, която извършва OCR (Оптично разпознаване на знаци) и извлича текст както от изображения (PNG, JPEG), така и от PDF файлове.
Какво е Scribe.js?
В днешния дигитален свят огромно количество ценно информация е заключено в изображения — екранни снимки на съобщения за грешки, фотографии на документи, слайдове от презентация или дори мемове с умни текстове. Ръчно транскрибиране на този текст е досаден и склонен към грешки процес. Тук идва на помощ технологията за оптично разпознаване на знаци (OCR), а Scribe.js предлага един от най-удобните за разработчиците начини за интегрирането ѝ във вашите уеб проекти. Scribe.js е отворена JavaScript библиотека, която извършва OCR и извлича текст както от изображения, така и от PDF файлове. За разлика от много OCR решения, които изискват бекенд обработка или външни API повиквания, Scribe.js работи изцяло от клиентската страна, давайки ви пълен контрол върху данните и премахвайки сървърните разходи за задачи по разпознаване на текст.
Scribe.js е лек JavaScript клиент за Google Cloud Vision API. Всички OCR операции се извършват директно в браузъра на потребителя или във вашата Node.js среда, осигурявайки поверителност и намалявайки разходите за сървърна инфраструктура. Библиотеката включва поддръжка за различни функции, като предварителна обработка на вашите изображения, унифициран работен процес за изображения, автоматично откриване, слоест PDF, филтриране на страници с ниска увереност, кеширане на OCR двигатели и др. Библиотеката е изградена с използване на съвременен JavaScript ESM (ECMAScript Modules), което я прави лесна за интеграция в съвременни уеб разработки без необходимост от сложни конфигурации за изграждане. Този подход, ориентиран към разработчиците, означава, че можете да започнете да извличате текст от документи с няколко реда код.
Започване с Scribe.js
Препоръчителният начин за инсталиране на Scribe.js е чрез npm. Моля, използвайте следната команда за гладка инсталация
Инсталирайте Scribe.js чрез npm
npm install scribe.js-ocr Можете също да го инсталирате ръчно; изтеглете последните файлове от релиза директно от GitHub хранилището.
Разпознаване на текст от изображения
Най-основният случай на използване на библиотеката Scribe.js е извличането на текст от файлове с изображения. Библиотеката поддържа различни формати на изображения и може да обработва както единични изображения, така и партиди от множество изображения в една операция. Ето прост пример, който демонстрира извличане на текст от URL на изображение в JavaScript приложения. Този кодов откъс показва простия API, който предоставя Scribe.js. Методът extractText приема масив от URL адреси на изображения и връща Promise, който се изпълнява с разпознатия текст.
Как да извлечете текст от изображение чрез 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);
});
Създаване на търсими PDF файлове чрез JavaScript
Една от най-мощните функции на Scribe.js е способността му да добавя невидими текстови слоеве към съществуващи PDF файлове. Тази функционалност преобразува PDF файлове, базирани на изображения, в търсими документи, без да променя визуалния им вид. Когато към PDF се добави текстов слой, потребителите могат да търсят конкретни думи или фрази в документа, да избират и копират текст от това, което изглежда като изображение, да използват екранни четци и инструменти за достъпност със сканирани документи, да позволят индексиране от търсачки и системи за управление на документи и др.
Как да създадете търсими PDF документи чрез 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;
}
}
Разширено откриване на текст в документи чрез JS
За изображения на документи с плътен текст и сложни оформления (като сканирана страница от книга или PDF експортиране), библиотеката Scribe.js предлага функция "Document Text Detection". Тя предоставя много по-богата информация, включително детектори за параграфи, думи и прекъсвания, което помага да се запази структурата на оригиналния документ. Това е изключително полезно за приложения, при които оформлението и структурата на изходния материал са важни, като обработка на формуляри, фактури или многоколоночни оформления.
Как да извършите напреднало откриване на текст в 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);
});
Пакетна обработка на множество файлове чрез JavaScript
В реални приложения софтуерните професионалисти често трябва да обработват множество документи едновременно. Scribe.js поддържа пакетна обработка директно, позволявайки на потребителите да извличат текст от множество изображения или PDF файлове в една операция в JavaScript приложение. Следният пример демонстрира как софтуерните разработчици могат да обработват пакет от документи, използвайки JavaScript команди.
Как да обработите партида документи с помощта на 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');
});