Отворен код 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), което я прави лесна за интеграция в съвременни уеб разработки без необходимост от сложни конфигурации за изграждане. Този подход, ориентиран към разработчиците, означава, че можете да започнете да извличате текст от документи с няколко реда код.

Previous Next

Започване с 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');
  });
 Български