OCR de un PDF escaneado

Extrae el texto de un PDF escaneado y guárdalo como .txt, o recupera el mismo PDF con una capa de texto invisible y buscable. Todo en tu navegador.

pdf

OCR de un PDF escaneado

PDF escaneado a leer

Suelta un archivo aquí o haz clic para elegir

El mismo escaneo, idéntico a la vista, con las palabras reconocidas escritas encima de forma invisible para que Ctrl+F y la selección de texto funcionen.

Se ejecuta completamente en tu navegador. Tus datos nunca salen de tu dispositivo.

What next?

How it works

Primero, averigua si necesitas OCR en absoluto

Un PDF puede contener texto de dos maneras completamente diferentes, y se ven idénticas en pantalla.

Un PDF digital — cualquier cosa exportada desde Word, un navegador, LaTeX o una herramienta de diseño — almacena los caracteres en sí. Abrirlo e intenta seleccionar una oración: si el cursor resalta palabras, el texto ya está allí. No necesitas OCR, y ejecutarlo sería un desperdicio de varios minutos. Copia el texto, o usa una herramienta PDF-a-texto.

Un PDF escaneado almacena una fotografía de una página. Seleccionar una oración no resalta nada, o resalta un rectángulo que cubre la imagen de página completa. Buscar no encuentra nada. Esto es para qué OCR es: leer las formas en la imagen y calcular qué caracteres son.

Los documentos mixtos existen y son comunes — un contrato digital con una página de firma escaneada adjunta, por ejemplo. Ejecutar OCR sobre el todo es inofensivo pero lento; el campo de rango de páginas te permite hacer solo las páginas escaneadas.

La calidad del escaneo decide la mayoría del resultado

El reconocimiento óptico de caracteres es coincidencia de patrones sobre píxeles. Nada posterior puede recuperar detalle que el escaneo nunca capturó, así que la calidad de la fuente domina todo lo demás que puedas controlar.

Resolución. La figura útil no es el DPI del archivo sino la altura de una letra minúscula en píxeles. Por debajo de aproximadamente 20 píxeles, el reconocimiento se degrada mal; alrededor de 30 a 40 píxeles es cómodo. El tipo de cuerpo ordinario de 10 puntos llega a eso en aproximadamente 200–300 DPI. Un escaneo de 600 DPI de la misma página es cuatro veces los datos sin ganancia en precisión.

Rectitud. Una página alimentada torcida a través de un escáner, o fotografiada en ángulo, es mucho más difícil que una cuadrada. Tesseract tolera un grado o dos y tiene dificultades más allá. Esta herramienta no desinclinación: la rectificación automática necesita una estimación de ángulo, y una estimación incorrecta empeora las cosas silenciosamente, que es un mal trato para una herramienta que no puedes inspeccionar. Si tus páginas están visiblemente inclinadas, volver a escanearlas rectas vale más que cualquier configuración.

Contraste y uniformidad. Texto gris sobre un fondo gris, un flash telefónico destrozando el medio de una página brillante, una sombra de la propia cabeza del fotógrafo — cada uno de estos elimina líneas completas. Un escáner de cama plana o una aplicación de escaneo de documentos telefónica vence a una fotografía casual por un amplio margen.

Compresión. Un escaneo ya guardado como un JPEG pequeño lleva artefactos de zumbido alrededor de cada letra. Son invisibles de un vistazo y muy visibles para un clasificador de caracteres.

Diseño. El texto simple de una columna es el caso fácil. Tablas densas, diseños de varias columnas con canaletas estrechas, texto impreso sobre fotografías, y caras de visualización estilizadas son todo considerablemente más difícil. La escritura a mano no funciona en absoluto — los modelos de Tesseract se entrenan en tipo impreso, y la cursiva produce tonterías confiables.

Por qué la herramienta renderiza cada página a 200 DPI

Antes del reconocimiento cada página tiene que convertirse en píxeles, así que la herramienta la rasteriza con pdf.js. La escala que usa es 200 puntos por pulgada, y ambas direcciones desde allí son peor.

Menor, y las letras caen bajo la altura de píxel que los modelos necesitan. Mayor, y estás ampliando una fotografía: si el escaneo integrado es 200 DPI, renderizar la página a 400 no inventa nuevo detalle, solo cuadruplica el trabajo. Ya que un PDF escaneado es usualmente 200–300 DPI para empezar, 200 es donde la precisión deja de mejorar y el costo sigue subiendo.

Dos ajustes suceden automáticamente. Las páginas se convierten a escala de grises, que aproximadamente duplica el tiempo de reconocimiento y pierde nada — Tesseract descarta el color internamente de todos modos. Y una página lo suficientemente grande como para exceder lo que los navegadores asignarán para un lienzo (un plan A0 a 200 DPI sería aproximadamente 119 megapíxeles) se renderiza a una escala reducida en lugar de fallar; las posiciones de palabras se mapean a través del tamaño real de la imagen, así que la capa buscable se mantiene correcta.

Por qué los modelos de idioma aquí son los "rápidos"

Tesseract publica sus modelos entrenados en tres conjuntos. tessdata_best es el más preciso y el más grande. tessdata es el del medio. tessdata_fast es cuantizado entero para velocidad y tamaño.

Este sitio envía fast, y la razón es aritmética en lugar de preferencia. El inglés en fast es aproximadamente 4 MB; en best es aproximadamente cuatro veces eso. Cada visitante que presiona el botón lo descarga. La diferencia de precisión es real pero pequeña — aproximadamente dos a tres por ciento de caracteres, concentrados en los escaneos difíciles donde la salida necesita corrección de todos modos. Pagar 15 MB por visitante por eso en cada idioma sería la predeterminada incorrecta, así que no lo es. También es un techo genuino en lo que esta herramienta puede hacer, que es por qué se escribe aquí en lugar de dejarse para que descubras.

Cuatro idiomas están disponibles — inglés, vietnamita, español y portugués — porque esos cuatro archivos de modelo se envían con el sitio. Tesseract soporta más de cien, pero cada uno adicional tendría que obtenerse de un CDN de terceros en el momento en que lo seleccionaste, lo que filtraría el hecho de que estás leyendo un documento en ese idioma. Eso es la solicitud que esta herramienta existe para evitar, así que la lista se detiene en lo que se puede servir desde aquí.

Qué "PDF buscable" realmente significa

Esta es la opción que la mayoría de las personas buscan, y el nombre está haciendo mucho trabajo.

La herramienta carga tu archivo original con pdf-lib y, para cada palabra que el reconocedor ubicó, dibuja esa palabra a opacidad cero en el lugar en la página donde está la tinta. El escaneo debajo no se toca: no se rerenderiza, no se recomprime, no se convierte. Lo que devuelves se ve pixel a pixel como lo que pusiste, pero Ctrl+F encuentra palabras, la selección de texto funciona, y cualquier cosa que indexe PDFs — Spotlight, Windows Search, un sistema de gestión de documentos — puede leerlo.

Tres detalles merecen saberse:

  • La posición viene del reconocedor, no de adivinanzas. El cuadro de cada palabra está en píxeles de la imagen renderizada, origen arriba-izquierda; las coordenadas de PDF son puntos, origen abajo-izquierda; y una página puede llevar una bandera /Rotate que el lector aplica pero la capa de dibujo no. Las tres conversiones suceden por página, usando el ancho real de la imagen renderizada en lugar de un DPI asumido.
  • Las palabras de baja confianza se dejan fuera. Por debajo del 30% de confianza, la salida suele ser motas leídas como puntuación, e incluirla hace que seleccionar una línea copie basura entre las palabras reales.
  • La capa es tan buena como el OCR. Una palabra leída incorrectamente es buscable bajo la ortografía equivocada. El texto invisible oculta sus propios errores, que es una razón para verificar la salida .txt en una página o dos antes de confiar en un lote grande.

Para inglés, español y portugués el texto invisible usa Helvetica, una de las fuentes que cada lector PDF ya tiene, así que el archivo crece por decenas de kilobytes. El vietnamita necesita una fuente Unicode integrada — el conjunto de caracteres Helvetica no puede escribirlo — así que un archivo Noto Sans de 421 KB se obtiene desde este sitio y se subconjunta solo a los glifos utilizados.

Qué descarga la primera ejecución, y dónde va

Abrir la página no descarga ninguna maquinaria de OCR. Presiona Reconocer texto y tres cosas llegan, todas de este origen:

QuéTamañoAlmacenado después
Script del worker~110 KBCaché HTTP normal
Motor WebAssembly~3,8 MBCaché HTTP normal
Datos de idioma0,5–4 MBIndexedDB, en tu navegador

El archivo de idioma se escribe en IndexedDB de tu navegador por tesseract.js, que es por qué el segundo documento en el mismo idioma comienza a reconocer inmediatamente. Es tu propio almacenamiento; borrar datos del sitio lo elimina y la siguiente ejecución lo obtiene de nuevo. Nada se envía a ningún lado — el único tráfico de red son estas descargas desde el sitio en el que ya estás.

Un orden de operaciones que funciona

  1. Intenta seleccionar texto en tu PDF primero. Si selecciona, no necesitas esta herramienta.
  2. Elige el idioma del documento, no tu propio idioma.
  3. Ejecuta una página — pon 1 en el rango de páginas — y lee la salida. Treinta segundos aquí te dice si el escaneo es lo suficientemente bueno antes de gastar diez minutos en 200 páginas.
  4. Si la confianza está bajo aproximadamente 70%, arregla la entrada en lugar de la configuración: reescanea recto, a 300 DPI, en escala de grises.
  5. Decide qué realmente quieres. .txt si el texto va a ser editado o reutilizado; PDF buscable si el documento tiene que mantenerse como documento y solo necesita ser encontrable.
  6. Para trabajos largos, usa el rango de páginas para trabajar en lotes. Detener abandona la ejecución si cambias de idea — no entrega las páginas leídas hasta ahora, que es exactamente por qué los lotes vale la pena el problema.

FAQ

¿Se sube mi documento a algún lado?

No. Cada página se renderiza a un lienzo por pdf.js, se reconoce por Tesseract compilado a WebAssembly, y — si pides un PDF buscable — se reensamble por pdf-lib. Los tres se ejecutan dentro de esta pestaña del navegador. Nada del documento llega a un servidor, así que no hay copia almacenada para retener, registrar o borrar.

Esta es la razón completa por la que la herramienta existe en esta forma. Cada otro servicio gratuito de "OCR PDF" sube tu archivo a una máquina que no controlas, y los PDFs escaneados son abrumadoramente los documentos que menos querías entregar: contratos, registros médicos, extractos bancarios, títulos de propiedad, presentaciones judiciales. Puedes verificarlo: abre la pestaña Red, ejecuta la herramienta, y después de que se carga el archivo de idioma no verás ninguna solicitud que lleve el PDF.

¿Qué es un "PDF buscable" y qué cambia realmente la opción?

Es el mismo escaneo, visualmente sin cambios, con las palabras reconocidas escritas sobre la imagen en texto invisible. Tu lector puede entonces encontrar, seleccionar y copiar palabras que solo existen en el documento como píxeles.

Nada se redibuja o se recomprime. La herramienta carga tu archivo original, y por cada palabra que Tesseract encontró dibuja esa palabra a opacidad cero, posicionada sobre el lugar en la página donde está la tinta. El escaneo que ves después es byte-idéntico en apariencia; solo se ha agregado una capa de texto. Eso significa que el archivo crece por algunos decenas de kilobytes en lugar de ser recodificado — y también significa que la calidad de la imagen es exactamente con la que empezaste, para mejor o peor.

Si dejas la opción apagada obtienes .txt simple con un marcador --- Página n --- antes de cada página, que es la salida mejor cuando tienes la intención de editar o reutilizar el texto en lugar de mantener el escaneo.

¿Por qué tarda tanto, y puedo detenerlo?

El reconocimiento es genuinamente costoso: aproximadamente uno a cinco segundos por página en una laptop moderna, más en un teléfono, más un costo de inicio único la primera vez. Un escaneo de cincuenta páginas es algunos minutos de trabajo real, y es tu propio CPU haciendo — un servicio del lado del servidor se siente más rápido porque el trabajo sucede en la máquina de otro.

Hay un botón Detener. Termina la ejecución: la página siendo leída se abandona, el motor de reconocimiento se apaga, y el bucle no se mueve a la siguiente página. Lo que no hace es entregarte las páginas que ya había terminado — una ejecución detenida no produce texto en absoluto, y el botón se queda en su estado "deteniendo" hasta que la ejecución realmente se haya desenvuelto, que normalmente es una fracción de segundo.

Así que si solo quieres parte de un documento, usa el campo de rango de página en lugar de Detener: leer páginas 12–14 de un escaneo de 200 páginas tarda segundos y te da esas tres páginas.

¿Qué se descarga la primera vez?

Nada hasta que presionas Reconocer texto. Entonces, desde este sitio y nunca de un CDN: el script del worker (~110 KB), el motor WebAssembly (~3,8 MB), y los datos de idioma (0,5–4 MB dependiendo del idioma). El archivo de idioma se almacena en IndexedDB de tu navegador, así que el segundo documento en el mismo idioma no descarga nada. Elegir la opción de PDF buscable en vietnamita además obtiene un archivo Noto Sans de 421 KB, porque las fuentes PDF integradas no pueden escribir vietnamita; los otros tres idiomas usan una fuente que cada lector PDF ya tiene.

¿Por qué 200 DPI, y importa la resolución?

Cada página tiene que convertirse en píxeles antes del reconocimiento, así que la herramienta la rasteriza con pdf.js. La escala que usa es 200 puntos por pulgada, y ambas direcciones desde allí son peor.

Menor, y las letras caen por debajo de la altura de píxeles que los modelos necesitan. Mayor, y estás ampliando una fotografía: si el escaneo integrado es 200 DPI, renderizar la página a 400 no inventa nuevo detalle, solo cuadruplica el trabajo. Ya que un PDF escaneado es usualmente 200–300 DPI para empezar, 200 es donde la precisión deja de mejorar y el costo sigue subiendo.

Lo que sí importa es el escaneo con el que comenzaste. Un escaneo en escala de grises de 150 DPI de una página impresa limpia hará muy bien. Una fotografía de una página tomada en ángulo, un fax, o un escaneo que alguien ya ha comprimido a un JPEG pequeño hará notablemente peor, y ninguna configuración aquí puede recuperar información que el escaneo no capturó. Las páginas se convierten a escala de grises antes del reconocimiento, que es aproximadamente dos veces más rápido y no menos preciso, ya que Tesseract descarta el color internamente de todos modos.

¿Por qué algunas palabras desaparecen de la capa buscable?

Dos razones, ambas reportadas en lugar de ocultas. Las palabras que el reconocedor tenía menos del 30% de confianza se dejan fuera a propósito: a ese nivel suelen ser motas leídas como puntuación, e incluirlas hace que seleccionar una línea copie basura.

La otra razón es la fuente. Para inglés, español y portugués la capa invisible se dibuja en Helvetica, cuyo conjunto de caracteres es aproximadamente Latin-1. El vietnamita usa Noto Sans integrado en su lugar, que cubre aproximadamente tres mil puntos de código — el alfabeto latino con cada marca tonal vietnamita, griego, cirílico y puntuación común. De cualquier forma, una palabra que contiene un carácter que la fuente no tiene glifo se deja fuera y se cuenta, y el conteo aparece sobre el texto. Los caracteres que caen fuera de ambos son raros en la práctica y generalmente mal leídos para empezar: CJK, flechas y líneas de cuadro que OCR extrajo de un sello o un borde de tabla. La salida .txt no tiene tal límite — contiene cada palabra sin importar la fuente.

¿Qué pasa si el PDF buscable no se puede construir?

Aún obtienes el texto. La herramienta verifica tu original antes de que empiece a leer — un archivo con permisos o una contraseña en él se puede mostrar pero no se le puede escribir una capa de texto, y eso se rechaza por adelantado en lugar de después de varios minutos de reconocimiento. Si algo sale mal después, en el paso de ensamblaje, el texto reconocido y la descarga .txt se quedan en la página y un mensaje explica por qué falta el PDF.

Un original protegido con contraseña es el caso común. Elimina la protección primero, o apaga la opción de PDF buscable y toma el texto por sí solo.

¿Cuán preciso es?

Los archivos de idioma son los modelos tessdata_fast de Tesseract — cuantizados para velocidad y tamaño. En una página impresa limpia espera los altos noventa por ciento de caracteres; la herramienta reporta una confianza promedio por página así que puedes ver qué páginas son débiles. tessdata_best sería aproximadamente dos a tres por ciento mejor y cuatro veces la descarga, que no es un trato que valga la pena hacer para cada visitante. La escritura a mano no funciona en absoluto, y tablas densas, diseños de varias columnas con canaletas estrechas, y texto impreso sobre imágenes son todo notablemente peor que texto de cuerpo simple.

More pdf tools