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

API OCR JavaScript de código aberto para criar PDFs pesquisáveis

Uma biblioteca JavaScript OCR líder para criar PDFs pesquisáveis e realizar OCR (Reconhecimento Óptico de Caracteres) e extrair texto tanto de imagens (PNG, JPEG) quanto de arquivos PDF.

O que é Scribe.js?

No mundo digital de hoje, uma enorme quantidade de informações valiosas está presa dentro de imagens — capturas de tela de mensagens de erro, fotografias de documentos, slides de uma apresentação ou até memes com texto inteligente. Transcrever manualmente esse texto é um processo tedioso e propenso a erros. É aqui que a tecnologia de Reconhecimento Óptico de Caracteres (OCR) entra em ação, e o Scribe.js oferece uma das maneiras mais amigáveis para desenvolvedores integrarem isso em seus projetos web. O Scribe.js é uma biblioteca JavaScript de código aberto que realiza OCR e extrai texto tanto de imagens quanto de arquivos PDF. Ao contrário de muitas soluções de OCR que exigem processamento no backend ou chamadas a APIs externas, o Scribe.js funciona inteiramente no lado do cliente, dando a você controle total sobre seus dados e eliminando custos de servidor para tarefas de reconhecimento de texto.

Scribe.js é um cliente JavaScript leve para a API Google Cloud Vision. Todas as operações de OCR ocorrem diretamente no navegador do usuário ou no seu ambiente Node.js, garantindo privacidade e reduzindo custos de infraestrutura de servidor. A biblioteca inclui suporte a vários recursos, como pré-processamento de imagens, fluxo de trabalho unificado para imagens, detecção automática, camadas de PDF, filtragem de páginas de baixa confiança, cache de mecanismos OCR e assim por diante. A biblioteca é construída usando JavaScript moderno ESM (Módulos ECMAScript), facilitando a integração em fluxos de trabalho de desenvolvimento web contemporâneos sem exigir configurações complexas de build. Essa abordagem voltada ao desenvolvedor significa que você pode começar a extrair texto de documentos com apenas algumas linhas de código.

Previous Next

Começando com Scribe.js

A forma recomendada de instalar o Scribe.js é usando npm. Por favor, use o comando a seguir para uma instalação tranquila.

Instalar Scribe.js via npm

 npm install scribe.js-ocr 

Você também pode instalá-lo manualmente; baixe os arquivos da versão mais recente diretamente do repositório GitHub.

Reconhecimento de Texto a partir de Imagens

O caso de uso mais fundamental da biblioteca Scribe.js é extrair texto de arquivos de imagem. A biblioteca lida com vários formatos de imagem e pode processar tanto imagens individuais quanto lotes de múltiplas imagens em uma única operação. Aqui está um exemplo básico que demonstra a extração de texto de uma URL de imagem em aplicativos JavaScript. O trecho demonstra a API simples que o Scribe.js fornece. O método extractText aceita um array de URLs de imagens e retorna uma Promise que resolve com o texto reconhecido.

Como Extrair Texto de uma Imagem via Biblioteca 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);
  });

Criar PDFs pesquisáveis via JavaScript

Um dos recursos mais poderosos do Scribe.js é a capacidade de adicionar camadas de texto invisíveis a arquivos PDF existentes. Essa funcionalidade transforma PDFs baseados em imagens em documentos pesquisáveis sem alterar sua aparência visual. Quando uma camada de texto é adicionada a um PDF, os usuários podem pesquisar palavras ou frases específicas dentro do documento, selecionar e copiar texto do que parece ser uma imagem, usar leitores de tela e ferramentas de acessibilidade com documentos escaneados, habilitar a indexação por mecanismos de busca e sistemas de gerenciamento de documentos, entre outros.

Como Criar Documentos PDF Pesquisáveis via Biblioteca 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;
  }
}

Detecção Avançada de Texto em Documentos via JS

Para imagens de documentos com texto denso e layouts complexos (como uma página de livro escaneada ou uma exportação PDF), a biblioteca Scribe.js oferece o recurso "Document Text Detection". Isso fornece informações muito mais ricas, incluindo detectores de parágrafo, palavra e quebra, o que ajuda a preservar a estrutura do documento original. Isso é extremamente útil para aplicações onde o layout e a estrutura do material de origem são importantes, como o processamento de formulários, faturas ou layouts de múltiplas colunas.

Como Realizar Detecção Avançada de Texto em Aplicativos 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);
  });

Processamento em Lote de Múltiplos Arquivos via JavaScript

Em aplicações do mundo real, profissionais de software frequentemente precisam processar vários documentos simultaneamente. O Scribe.js suporta processamento em lote nativamente, permitindo que os usuários extraiam texto de múltiplas imagens ou PDFs em uma única operação dentro de uma aplicação JavaScript. O exemplo a seguir demonstra como os desenvolvedores podem processar um lote de documentos usando comandos JavaScript.

Como Processar um Lote de Documentos usando Biblioteca 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');
  });
 Português