Extraer texto de un PDF: capas de texto y OCR
Algunos PDF entregan su texto en un segundo; otros solo contienen imágenes de las páginas y necesitan OCR. Esta guía explica cómo se guarda el texto en un PDF, por qué el texto extraído puede salir ilegible o desordenado, cómo lee el OCR las páginas escaneadas y qué influye en su precisión, y qué revisar antes de fiarte del resultado.
Dos tipos de páginas PDF
Una página PDF puede contener texto de dos maneras. La mayoría de los PDF exportados desde un procesador de textos, un navegador o un programa de diseño tienen una capa de texto: cada carácter se guarda como un código de una fuente y se coloca en una posición de la página. Una página escaneada o fotografiada es distinta: es una sola imagen de la página, y para el software sus letras son solo píxeles.
| Tipo de página | Cómo se creó | Qué devuelve la extracción |
|---|---|---|
| PDF de texto | Exportado o impreso a PDF desde una aplicación | Los caracteres guardados, normalmente tal cual |
| PDF escaneado | Escáner, cámara del móvil o fax | Nada hasta que el OCR lee la imagen |
| Escaneo con búsqueda | Un escaneo al que se añadió después una capa de texto OCR | Aquel resultado de OCR, con sus errores |
| Texto trazado | Texto convertido en formas en un programa de diseño | Ningún carácter; solo el OCR puede leerlo |
Un visor de PDF suele indicarte de qué tipo es. Si puedes seleccionar una sola palabra o encontrarla con el buscador, la página tiene capa de texto. Si al arrastrar se selecciona toda la página como un bloque, o la búsqueda no encuentra nada, la página es una imagen. Un mismo archivo puede mezclar ambos tipos, como un informe escrito con anexos escaneados.
Cómo funciona la extracción de la capa de texto
Un PDF no guarda párrafos. Guarda fragmentos de caracteres, cada uno con una fuente y una posición, a menudo una palabra o unas pocas letras cada vez, en el orden que eligió el programa que creó el archivo. Un extractor lee esos fragmentos y reconstruye las líneas a partir de sus posiciones.
La herramienta PDF a texto de LeedyBox lee los fragmentos con PDF.js, el motor de PDF de Firefox. Empieza una línea nueva cuando la posición vertical cambia más de 5 puntos (unos 1,8 mm) y, si no, une los fragmentos con un espacio; cada página del resultado empieza con una marca como --- Página 1 ---. La mayoría de los documentos a una columna salen legibles, con algunos efectos secundarios:
- Una palabra guardada en varios fragmentos, por ejemplo por el espaciado entre letras, puede salir con espacios en medio.
- Las columnas, los recuadros laterales y los pies de foto aparecen en el orden en que están guardados, que puede no coincidir con el orden de lectura.
- Los superíndices, las llamadas de nota y otros textos situados por encima o por debajo de la línea pueden formar una línea propia.
- Los encabezados, pies de página y números de página forman parte del texto de cada página.
Por qué el texto extraído puede salir ilegible
Dentro de un PDF, el texto se guarda como códigos de glifos de una fuente, no como caracteres Unicode. Para convertir los códigos de nuevo en letras, el archivo necesita una tabla de correspondencias. Los PDF bien hechos incluyen una tabla ToUnicode para cada fuente, y las fuentes con una codificación estándar pueden descodificarse sin ella. El problema aparece cuando una fuente está incrustada como subconjunto con su propia numeración y sin tabla: los códigos no significan nada fuera del archivo, y la extracción produce letras equivocadas, símbolos o recuadros vacíos aunque la página se vea bien.
Las fuentes chinas, japonesas y coreanas suelen usar mapas de caracteres predefinidos (CMap), como Adobe-Japan1 o Adobe-Korea1, en lugar de tablas propias. La herramienta de LeedyBox carga estos CMap junto con PDF.js, lo que resuelve muchos documentos de Asia oriental que los extractores más sencillos leen mal. Otras causas habituales son las ligaduras, como fi guardada en un solo glifo, las fuentes Type 3, cuyas letras se dibujan como formas y a menudo no tienen tabla, y los PDF cuya codificación se alteró a propósito para dificultar la copia.
Si una página tiene capa de texto, la herramienta la usa, aunque ese texto sea ilegible, y no ejecuta el OCR en esa página. Para leer una página así con OCR, conviértela en imagen con PDF a JPG y lee la imagen con Imagen a texto (OCR).
Cuándo usa OCR la herramienta de LeedyBox
La herramienta decide página por página. Si la capa de texto de una página tiene menos de 15 caracteres, la página se dibuja como imagen al doble de su tamaño normal, unos 144 píxeles por pulgada, y Tesseract.js la lee en el idioma elegido en «Idioma de OCR» junto con el inglés. Así, en un documento con páginas escritas y páginas escaneadas, las escritas se leen tal cual y solo los escaneos pasan por el OCR.
Una página escaneada con unos pocos caracteres de un sello o un número de página se sigue considerando vacía y pasa por el OCR. Un escaneo que ya tiene una capa de texto de 15 caracteres o más no pasa por él, de modo que una capa de OCR de mala calidad añadida por el escáner sale tal como está. El motor de OCR y sus datos de idioma se descargan de leedybox.com la primera vez que se ejecuta el OCR, por lo que la primera página escaneada tarda más. Tu PDF se lee en el navegador y no se sube a ningún servidor.
Cómo convierte el OCR los píxeles en texto
El OCR trabaja por etapas. El motor convierte primero la imagen a blanco y negro y localiza bloques de texto, líneas y palabras, un paso llamado segmentación de la página. Después, una red neuronal entrenada para un idioma o una escritura lee cada línea y elige la secuencia de caracteres más probable, con ayuda de las listas de palabras del idioma. El resultado es una estimación, no una copia: formas parecidas como 0 y O, 1, l e I, o rn y m pueden confundirse, y las palabras que no están en los datos del idioma se leen mal con más frecuencia.
El idioma importa más que cualquier otra opción. Un modelo entrenado con letras latinas no puede leer tailandés ni japonés, y el texto en un idioma no seleccionado suele salir con caracteres equivocados. Todas las opciones de la herramienta de LeedyBox salvo «Solo inglés» combinan el idioma elegido con el inglés, lo que ayuda con documentos mixtos, como un contrato en español con nombres de productos en inglés.
Qué influye en la precisión del OCR
| Factor | Efecto | Qué ayuda |
|---|---|---|
| Resolución | La letra pequeña pierde los detalles que distinguen unas letras de otras | Escanear a 300 DPI o más; más para la letra pequeña |
| Inclinación y curvatura | Las líneas torcidas y las páginas curvadas de un libro confunden la detección de líneas | Escanear plano y recto; fotografiar desde arriba |
| Contraste y ruido | Fondos grises, manchas, transparencias del reverso y artefactos JPEG parecen trazos | Escaneos limpios con texto oscuro sobre fondo blanco |
| Fuentes | Las fuentes decorativas, muy finas o muy gruesas se leen mal más a menudo | Revisar el resultado con cuidado |
| Escritura a mano | Tesseract está entrenado con texto impreso | Esperar malos resultados; mejor escribirlo |
| Texto vertical | El japonés o el chino en vertical se leen mal a menudo | Revisar con cuidado o volver a escribirlo |
Como la herramienta dibuja las páginas a unos 144 píxeles por pulgada, la letra pequeña, como las notas al pie o la letra pequeña de un contrato, puede costar de leer incluso en un buen escaneo. Para esas páginas, PDF a JPG genera imágenes a mayor resolución, e Imagen a texto (OCR) puede volver a leer el texto pequeño al doble de tamaño y aumentar el contraste antes del reconocimiento.
Tablas, columnas y maquetación
El resultado es texto sin formato. Las tablas pierden su cuadrícula, las páginas a varias columnas pueden salir columna a columna o línea a línea atravesando las columnas, y los cuadros de texto y los pies de foto quedan donde el archivo o el motor de OCR los colocó en el orden de lectura. Reconocer palabras y reconstruir una maquetación son problemas distintos, y la herramienta solo resuelve el primero. En las tablas de cifras, comprueba cada valor con el original o vuelve a escribir la tabla en una hoja de cálculo; en los documentos largos, reconstruye títulos y párrafos en tu editor después de extraer el texto.
Revisar y limpiar el resultado
- Compara algunos números, nombres y fechas con el original; los errores de OCR en las cifras pasan desapercibidos con facilidad.
- Busca las confusiones típicas: 0 y O, 1, l e I, 5 y S, rn y m, y tildes o diacríticos que falten.
- Vuelve a unir las palabras cortadas con guion al final de línea y las líneas partidas dentro de los párrafos.
- Quita las marcas de página, los encabezados y los números de página si necesitas un texto continuo.
- Guarda el resultado con «Copiar texto» o «Guardar como .TXT»; el archivo guardado es texto sin formato en UTF-8.
Preguntas frecuentes
¿Por qué una página sale vacía?
La página no tenía capa de texto y el OCR no encontró nada que pudiera leer: el escaneo puede estar en blanco, ser muy tenue o demasiado pequeño, o el texto puede ser manuscrito. Prueba con un escaneo más nítido, o convierte la página con PDF a JPG y usa Imagen a texto con sus opciones de contraste y ampliación.
¿Puede leer PDF protegidos con contraseña?
No los que piden una contraseña al abrirse; en ese caso la herramienta muestra un error. Si tienes derecho a hacerlo, abre el archivo en un visor de PDF con la contraseña y guarda antes una copia sin protección.
¿Puede la herramienta crear un PDF con búsqueda?
No. El resultado es texto sin formato que puedes copiar o guardar como archivo .txt, y el PDF no se modifica. Los programas que crean PDF con búsqueda añaden una capa de texto OCR invisible sobre cada página escaneada.
¿Por qué el OCR es lento en documentos largos?
Cada página escaneada se dibuja como imagen y se reconoce en tu navegador, una tras otra, después de descargar el motor de OCR y los datos del idioma. Una página puede tardar varios segundos o más en un dispositivo lento. Las páginas con capa de texto van mucho más rápido porque no necesitan reconocimiento.