De imagen a texto
en el navegador
Suelta una captura de pantalla, una foto del móvil, un escaneo o un PDF de una página y copia el texto en segundos. Español, inglés y 23 idiomas más. El motor de reconocimiento se ejecuta dentro de tu navegador — el archivo no sale hacia nuestro servidor.
Compruébalo tú mismo: abre DevTools, en la pestaña Network suelta un archivo — verás cero peticiones saliendo con tu imagen.
Tres pasos.
Suelta tu imagen
JPG, PNG, WebP, HEIC del iPhone, o un PDF de una página. El archivo se abre en el navegador y ahí se queda. La primera vez que usas la herramienta, el motor de reconocimiento (unos 10 MB) se descarga en tu navegador y queda en caché — cada ejecución posterior arranca al instante y funciona sin conexión.
Espera unos segundos mientras el motor lee
Tesseract.js — port WebAssembly del motor OCR Tesseract mantenido por Google — corre entero en tu navegador. Un escaneo A4 limpio termina en 3–8 segundos en un portátil moderno; una foto de un tique o de un cartel desde el móvil suele estar bajo los 4 segundos. La barra de progreso muestra tanto el calentamiento del motor como el reconocimiento de la página.
Copia el texto o descarga .txt
El resultado aparece en una caja de texto plano con una puntuación de confianza. Cópialo al portapapeles o descárgalo como archivo .txt en UTF-8. Todo lo que se ejecutó — el núcleo WASM, el modelo de idioma, el reconocimiento mismo — pasó en tu dispositivo. Ningún archivo, ningún texto reconocido y ningún metadato llegaron a nuestro servidor.
Qué hace realmente el OCR
OCR (Optical Character Recognition, reconocimiento óptico de caracteres) convierte píxeles que parecen letras en texto que el ordenador entiende. Una foto de un tique o el escaneo de la página de un libro son solo puntos de color para el ordenador hasta que un modelo entrenado con millones de caracteres impresos mapea cada patrón de puntos de vuelta a a, b, 9, =. El motor que usa esta herramienta es Tesseract, el mismo que está detrás del escáner de libros de Internet Archive, de la versión gratuita de ABBYY y de la mayoría de los lectores PDF de código abierto — solo que aquí compilado a WebAssembly para correr en tu navegador en lugar de en el servidor de otra persona.
Qué puedes soltar
JPG, PNG, WebP, HEIC (del iPhone) y PDF de una página. El HEIC se decodifica dentro del navegador — sin paso de conversión aparte. PDF de varias páginas: se reconoce solo la primera; si necesitas todas, divide primero el PDF con split-pdf y procesa cada una. Las fotos directamente del móvil funcionan; igual que las capturas de pantalla, los escaneos de escáner plano y las capturas de pantalla. El límite práctico es 25 MB por archivo — por encima, el navegador empieza a sufrir para mantener simultáneamente en memoria el canvas y el heap WASM.
Cómo es una buena entrada
La calidad del OCR depende mucho más de la imagen que del motor. Un escaneo a 300 DPI desde un escáner plano de una página mecanografiada llega al 98–99% de acierto sin ajustes. Una foto nítida de un tique con luz decente: 95%+. Una foto borrosa de un contrato sacada en ángulo con poca luz: 60–80%, y el resultado va a necesitar revisión. Tres cosas mueven la precisión más que nada: nitidez (enfoca la cámara antes de disparar), contraste (un tique blanco sobre negro es más difícil que negro sobre blanco) y orientación (el motor aguanta inclinaciones pequeñas pero una imagen girada 90 grados hay que enderezarla antes). Si estás escaneando DNI, NIE, nómina o contrato y la precisión importa, primero usa una app de escáner — Notas de iOS, Google Drive o Adobe Scan corrigen perspectiva y contraste antes de guardar.
Idiomas
La v1 viene con 25 idiomas — uno por locale de Vastiko más chino simplificado para usuarios del continente. Latino: inglés, alemán, francés, español, italiano, portugués (cubre también el brasileño), polaco, neerlandés, danés, sueco, rumano, húngaro, checo, turco, indonesio, vietnamita. Cirílico: ruso, ucraniano. Griego. Árabe (escritura de derecha a izquierda). Tailandés. CJK: japonés, coreano, chino simplificado (continente), chino tradicional (Taiwán / Hong Kong).
La herramienta intenta acertar tu idioma desde el locale del navegador al primer cargado — un navegador en español abre con español preseleccionado, uno japonés con japonés, y así. Puedes cambiar en cualquier momento desde la barra de arriba; tu última elección queda guardada entre sesiones. Cada paquete de idioma se descarga solo la primera vez (de 1 a 6 MB según el alfabeto — los alfabetos latinos comprimen mejor que CJK) y queda en caché en el navegador. Cambiar de idioma es una descarga única por idioma; los usos siguientes son instantáneos.
Los documentos españoles en condiciones reales rara vez son 100% en español. Un contrato menciona Excel, PDF y WhatsApp. Una nómina trae IRPF, Seguridad Social e IBAN del banco junto a nombres de empresa en inglés. Una factura electrónica usa los códigos del país y palabras técnicas anglosajonas. Por eso, elegir cualquier idioma que no sea inglés como primario carga automáticamente el inglés como alfabeto secundario en el mismo paso de reconocimiento — el motor entonces considera los dos alfabetos y elige la lectura con más confianza por palabra. Coste: ~2× la memoria y ~30% más lento que un solo paquete, vale la pena porque la alternativa es nombre de marca en inglés saliendo enrevesado en medio del español.
Lo que esta herramienta no hace bien
La escritura a mano. Tesseract está entrenado con texto impreso. Letra ligada, receta del médico escrita a mano, apuntes de cuaderno — confunden al modelo (la Read API de Microsoft y Google Cloud Vision lo hacen significativamente mejor, pero ambas exigen subir la imagen). Tablas complejas. Un PDF de hoja de cálculo sale como texto plano con las columnas pegadas; esta herramienta preserva el orden de lectura, no la estructura de la tabla. Para tablas que tienen que seguir siendo datos usa pdf-to-excel. Fuentes decorativas o estilizadas. Logos, fuente display de titular, efectos de texto renderizado — fallan a menudo o vuelven como galimatías, porque el modelo espera formas de texto corrido. Resolución muy baja. Captura de pantalla de un párrafo de 320 píxeles de ancho: adivina. De 1500 píxeles: lee.
Por qué esto se queda en tu navegador
Cuando una persona hace OCR, el documento suele ser personal: escaneo del DNI para rellenar trámite de visado, una factura de la clínica privada, una nómina para solicitar hipoteca, un contrato que alguien envió como JPG en vez de Word. El camino más corto desde esas fotos a texto legible en el portapapeles normalmente pasa por una web gratis de OCR de alguien que guarda silenciosamente la subida «para mejorar la calidad». Probamos las más populares para nuestro privacy audit de editores PDF y el patrón se repite en OCR: subida al servidor, política de retención que dice «pocas horas» pero apunta al mismo disco meses después, analíticas de terceros recibiendo el hash de la forma del archivo. Hicimos el trabajo de que el OCR funcionara entero en el dispositivo porque el tipo de archivo que apuntas aquí es exactamente el tipo que prefieres no entregar al servidor de nadie.
Qué pasa con tu archivo
Abre DevTools, ve a la pestaña Network y suelta el archivo. Verás una descarga única del núcleo WASM y del modelo de idioma español (unos 10 MB en total) la primera vez, y después absolutamente cero peticiones saliendo con cualquier parte de tu archivo. En usos posteriores no hay peticiones, punto — el motor está en caché y la página funciona sin conexión. El texto reconocido vive en un textarea del navegador desde el que puedes copiar o descargarlo como .txt. Nada de eso toca ningún log nuestro, en ningún momento.
Cuándo un OCR de servidor tiene más sentido
Si procesas 10.000 facturas por noche, una herramienta en el navegador es la forma equivocada — quieres una cola y una flota de workers con GPU. Si necesitas OCR de manuscrito con alta precisión, las APIs de la nube siguen siendo mejores que el open-source. Si tus documentos son públicos — archivos históricos, contratos de dominio público, capturas de pantalla de tu propio blog — no hay ventaja de privacidad y el servidor puede ser más rápido. La cuestión no es que el OCR local gane en todos los escenarios; es que para las fotos que se quedan en el carrete de una persona, el cálculo se invierte y no debería exigir un acto de fe sobre la política de retención.
Si ya tienes un PDF con capa de texto — la mayoría de los PDFs creados digitalmente la tienen — usa mejor pdf-to-txt: es más rápido y sin pérdida, porque lee el texto subyacente en lugar de correr OCR sobre la página renderizada.
Preguntas frecuentes
¿Mi imagen va a vuestro servidor?
No. La imagen se abre en tu navegador y se procesa ahí. El motor de reconocimiento — Tesseract.js — se descarga una sola vez (~10 MB), queda en caché en el navegador y corre local. Para verificar, abre DevTools, ve a la pestaña Network y suelta un archivo: no verás ninguna petición saliendo con tu imagen.
¿Qué tipos de archivo se soportan?
JPG, PNG, WebP, HEIC (iPhone) y PDF de una página. El HEIC se decodifica en el navegador — sin conversión aparte. PDFs de varias páginas: solo se procesa la primera; divide primero el PDF con split-pdf si necesitas todas.
¿Qué idiomas reconoce?
25 idiomas: inglés, alemán, francés, español, italiano, portugués (cubre también el brasileño), polaco, neerlandés, danés, sueco, rumano, húngaro, checo, turco, indonesio, vietnamita, ruso, ucraniano, griego, árabe, tailandés, japonés, coreano, chino simplificado y chino tradicional. El selector está en la barra superior; el predeterminado se detecta del locale del navegador y persiste entre sesiones.
¿Qué tan preciso es el reconocimiento?
En un escaneo limpio a 300 DPI de texto mecanografiado, 98–99%. En una foto nítida de página impresa o tique, 95%+. En una imagen borrosa, con poca luz o inclinada, 60–80% — el resultado va a necesitar revisión. Cada resultado muestra una puntuación de confianza para que sepas en qué lado del rango caíste.
¿Y los documentos que mezclan español e inglés?
Gestionado automáticamente. Elige español como primario y el motor carga el inglés como alfabeto secundario en el mismo paso de reconocimiento — así nombres de marca (Excel, WhatsApp, IBAN), URLs y términos técnicos en inglés salen limpios junto al texto en español. Un pequeño badge + EN al lado del selector muestra cuando este modo mixto está activo. El coste es ~30% más lento y ~2× memoria; lo dejamos activo por defecto porque la alternativa — paso de idioma único en documento mixto — es exactamente lo que produce nombres de marca enrevesados.
¿Funciona con escritura a mano?
Mal. Tesseract está entrenado con texto impreso — letra ligada, receta médica manuscrita y apuntes de cuaderno lo confunden. Para escritura a mano, la Read API de Microsoft y Google Cloud Vision son significativamente mejores, pero ambos requieren subir la imagen.
¿Por qué la primera ejecución es lenta?
Porque el motor de reconocimiento — unos 10 MB de WebAssembly más un modelo de idioma — se descarga en tu navegador la primera vez. Después el motor queda en caché y el reconocimiento arranca instantáneo. La página funciona sin conexión después del primer cargado.
¿Se puede usar en el móvil?
Sí. La página es una página web normal que corre en cualquier navegador móvil moderno. En móviles más antiguos la primera ejecución tarda más por la descarga del motor; las siguientes son rápidas.
¿Y tablas, layouts multi-columna o documentos complejos?
El texto sale en orden de lectura como flujo de párrafo plano — la estructura de la tabla no se preserva. Para PDFs donde necesitas las filas y columnas como datos usa pdf-to-excel. Para un PDF que ya tiene capa de texto (la mayoría de los PDFs creados digitalmente la tienen) usa pdf-to-txt — es más rápido, sin pérdida y no necesita OCR.
¿Es gratis de verdad? ¿Hay límites?
Sí — sin cuenta, sin marca de agua, sin límite por exportación. El procesamiento corre en tu dispositivo, así que no hay coste de servidor que recuperar. Límite práctico de tamaño: 25 MB por imagen para que el navegador no se quede sin memoria.