1. Produkty
  2.   OCR
  3.   JavaScript
  4.   Scribe.js
 
  

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.

Previous Next

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');
  });
 Polski