OCR Extract Table
OCR Extract Table
Sección titulada «OCR Extract Table»Tipo: ocr-extract-table · Paquete: OCR Activities v1.2.5 · Salida: DataTable
Desde: v1.2.0
Detecta una tabla dentro de una imagen, agrupando las palabras reconocidas en filas y columnas según su posición, y la devuelve como una DataTable. Útil para extraer un listado tabular de un documento escaneado (un detalle de factura, un cuadro de datos).
Cómo funciona
Sección titulada «Cómo funciona»Ejecuta OCR sobre la imagen (por defecto con preprocess = "auto") y, a partir de las coordenadas de cada palabra, reconstruye la tabla:
- Filas: cada línea reconocida es una fila.
- Columnas: busca las posiciones horizontales donde empiezan palabras de forma repetida en el documento (agrupando inicios a menos de 25 px entre sí) y las usa como columnas. Una posición cuenta como columna si al menos 2 palabras empiezan ahí (o tantas como la cuarta parte del número de líneas, en documentos largos).
- Cada palabra va a la columna que empieza justo antes de ella; varias palabras en la misma celda se unen con un espacio.
- Descarta las filas con menos celdas llenas que
minColumns(títulos, pies, texto suelto). - Con
hasHeader = true, la primera fila que queda da los nombres de columna.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
path | string | — | Ruta del archivo de imagen (.png, .jpg, .bmp, .tiff). |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
language | string | "eng" | Idioma del texto: código de Tesseract (eng, spa, eng+spa) o etiqueta regional (es-CO). Ver idioma. |
preprocess | string | "auto" | Limpieza previa: none · auto · deskew · binarize. Ver preprocesado. |
hasHeader | bool | true | Tratar la primera fila detectada como nombres de columna. |
minColumns | int | 2 | Descartar filas con menos celdas llenas que este número. Valores menores que 1 se tratan como 1. |
Devuelve una DataTable con todas las celdas como texto:
- Columnas: con
hasHeader = true, los textos de la primera fila; un encabezado vacío se llamaColNy uno repetido recibe un sufijo (Valor,Valor_2). ConhasHeader = false,Col1,Col2… - Filas: las demás filas detectadas; las celdas sin palabra quedan vacías.
- Sin texto o sin filas válidas: una DataTable vacía (sin columnas ni filas). Compruébalo con
rowCount(tabla) == 0.
Ejemplo
Sección titulada «Ejemplo»OCR Extract Table path = rutaEscaneo language = "spa" minColumns = 3 → output: tablaIf condition = rowCount(tabla) == 0 └─ then: Throw message = "No se detectó ninguna tabla en la imagen"For Each items = tabla itemVariable = fila └─ activities: Log message = str(fila["Descripción"]) + " — " + str(fila["Valor"])Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
No se encontró el archivo. | La ruta de path no existe en la máquina del robot. |
'path' es obligatorio. | Falta path. |
No se encontró el idioma de Tesseract '…' en '…'. Disponibles: [eng, spa]. | El código de language no está instalado. |
No se pudo leer la imagen. | El archivo no es una imagen válida o está dañado (el preprocesado está activo por defecto). |
| Error al leer una columna inexistente en un paso siguiente | Los nombres de columna salen del OCR y pueden variar (acentos, mayúsculas). Revisa tabla.Columns o usa hasHeader = false y accede por Col1, Col2. |
Actividades relacionadas
Sección titulada «Actividades relacionadas»- OCR Get Lines — las líneas y coordenadas crudas, para un control fino.
- DataTable — filtrar, ordenar y resumir la tabla extraída.
- PDF Get Text — para documentos con texto real.