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

API OCR JavaScript de código abierto para crear PDFs buscables

Una biblioteca OCR JavaScript líder para crear PDFs buscables y que realiza OCR (Reconocimiento Óptico de Caracteres) y extrae texto tanto de imágenes (PNG, JPEG) como de archivos PDF.

¿Qué es Scribe.js?

En el mundo digital de hoy, una enorme cantidad de información valiosa está atrapada dentro de imágenes: capturas de pantalla de mensajes de error, fotografías de documentos, diapositivas de una presentación o incluso memes con texto ingenioso. Transcribir manualmente este texto es un proceso tedioso y propenso a errores. Aquí es donde la tecnología de Reconocimiento Óptico de Caracteres (OCR) entra en acción, y Scribe.js ofrece una de las formas más amigables para los desarrolladores de integrarla en tus proyectos web. Scribe.js es una biblioteca JavaScript de código abierto que realiza OCR y extrae texto tanto de imágenes como de archivos PDF. A diferencia de muchas soluciones OCR que requieren procesamiento en el backend o llamadas a API externas, Scribe.js se ejecuta completamente del lado del cliente, dándote control total sobre tus datos y eliminando los costos del servidor para tareas de reconocimiento de texto.

Scribe.js es un cliente ligero de JavaScript para la API Google Cloud Vision. Todas las operaciones de OCR se realizan directamente en el navegador del usuario o en tu entorno Node.js, garantizando privacidad y reduciendo los costos de infraestructura del servidor. La biblioteca incluye soporte para diversas funciones, como preprocesar tus imágenes, flujo de trabajo unificado para imágenes, detección automática, capas PDF, filtrar páginas de baja confianza, almacenar en caché los motores OCR, entre otras. La biblioteca está construida usando JavaScript moderno ESM (Módulos ECMAScript), lo que facilita su integración en flujos de trabajo de desarrollo web contemporáneos sin requerir configuraciones de compilación complejas. Este enfoque orientado al desarrollador significa que puedes comenzar a extraer texto de documentos con solo unas pocas líneas de código.

Previous Next

Comenzando con Scribe.js

La forma recomendada de instalar Scribe.js es usando npm. Por favor, utiliza el siguiente comando para una instalación sin problemas

Instalar Scribe.js vía npm

 npm install scribe.js-ocr 

También puedes instalarlo manualmente; descarga los archivos de la última versión directamente del repositorio GitHub.

Reconocimiento de texto a partir de imágenes

El caso de uso más fundamental de la biblioteca Scribe.js es extraer texto de archivos de imagen. La biblioteca maneja varios formatos de imagen y puede procesar tanto imágenes individuales como lotes de múltiples imágenes en una sola operación. Aquí hay un ejemplo básico que demuestra la extracción de texto de una URL de imagen dentro de aplicaciones JavaScript. El fragmento muestra la API sencilla que proporciona Scribe.js. El método extractText acepta una matriz de URLs de imágenes y devuelve una Promesa que se resuelve con el texto reconocido.

¿Cómo extraer texto de una imagen mediante una 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);
  });

Crear PDFs buscables mediante JavaScript

Una de las características más poderosas de Scribe.js es su capacidad para añadir capas de texto invisibles a archivos PDF existentes. Esta funcionalidad transforma los PDFs basados en imágenes en documentos buscables sin alterar su apariencia visual. Cuando se añade una capa de texto a un PDF, los usuarios pueden buscar palabras o frases específicas dentro del documento, seleccionar y copiar texto de lo que parece ser una imagen, usar lectores de pantalla y herramientas de accesibilidad con documentos escaneados, habilitar la indexación por motores de búsqueda y sistemas de gestión documental, entre otras cosas.

¿Cómo crear documentos PDF buscables mediante una 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;
  }
}

Detección avanzada de texto en documentos mediante JS

Para imágenes de documentos con texto denso y diseños complejos (como una página de libro escaneada o una exportación PDF), la biblioteca Scribe.js ofrece una función de "Detección de Texto de Documento". Esto proporciona información mucho más rica, incluidos detectores de párrafos, palabras y saltos, lo que ayuda a preservar la estructura del documento original. Es extremadamente útil para aplicaciones donde el diseño y la estructura del material fuente son importantes, como el procesamiento de formularios, facturas o diseños de varias columnas.

¿Cómo realizar detección avanzada de texto dentro de aplicaciones 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);
  });

Procesamiento por lotes de múltiples archivos mediante JavaScript

En aplicaciones del mundo real, los profesionales del software a menudo necesitan procesar varios documentos simultáneamente. Scribe.js admite el procesamiento por lotes de forma nativa, lo que permite a los usuarios extraer texto de múltiples imágenes o PDF en una sola operación dentro de una aplicación JavaScript. El siguiente ejemplo demuestra cómo los desarrolladores pueden procesar un lote de documentos usando comandos JavaScript.

¿Cómo procesar un lote de documentos usando una 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');
  });
 Español