OCR Extract Pattern
OCR Extract Pattern
Sección titulada «OCR Extract Pattern»Tipo: ocr-extract-pattern · Paquete: OCR Activities v1.2.5 · Salida: Dictionary<string, string>
Desde: v1.2.0
Combina OCR + expresiones regulares en un solo paso: reconoce el texto de una imagen y, sobre ese texto, aplica un conjunto de patrones (regex) para extraer campos concretos. Devuelve un diccionario { campo: valor }. Es la forma más directa de sacar datos estructurados de un documento escaneado (número de factura, fecha, total).
Cómo funciona
Sección titulada «Cómo funciona»Ejecuta OCR sobre la imagen (una sola vez) y, sobre el texto resultante, evalúa cada patrón del diccionario patterns:
- Toma la primera coincidencia de cada patrón en todo el texto.
- Si el patrón tiene un grupo de captura
(...), el valor es lo que captura el primer grupo; si no, la coincidencia completa. - Si el patrón no coincide (o está vacío), el campo queda con texto vacío
"". - Los patrones distinguen mayúsculas y minúsculas; para ignorarlas, empieza el patrón con
(?i).
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). |
patterns | Dictionary | — | Diccionario nombreCampo → patrón regex. Usa un grupo de captura para extraer solo el valor. Los valores pueden ser expresiones. |
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 | "none" | Limpieza previa: none · auto · deskew · binarize. Ver preprocesado. |
Devuelve un Dictionary<string, string> con una clave por cada patrón de patterns (siempre todas) y su valor de texto: el dato encontrado o "" si no hubo coincidencia. Comprueba los campos vacíos antes de usarlos.
Ejemplo
Sección titulada «Ejemplo»Extraer número, fecha y total de una factura escaneada:
OCR Extract Pattern path = rutaFactura language = "spa" preprocess = "auto" patterns = { "numero": "FAC-(\d+)", "fecha": "Fecha:\s*(\d{4}-\d{2}-\d{2})", "total": "Total:\s*\$?([\d.,]+)" } → output: datos
If condition = isEmpty(datos["total"]) └─ then: Throw message = "No se pudo leer el total de la factura"Log message = "Factura " + datos["numero"] + " — Total " + datos["total"]Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
'patterns' es obligatorio. | Falta patterns. |
'patterns' debe ser un Dictionary<string, string> que asocie nombres de campo con expresiones regulares. | patterns no es un objeto { campo: patrón } (por ejemplo, una lista o un texto). |
Expresión regular no válida para el campo '…': … | El patrón de ese campo tiene un error de sintaxis (paréntesis sin cerrar, \ sin escapar…). |
No se encontró el archivo. | La ruta de path no existe en la máquina del robot. |
No se encontró el idioma de Tesseract '…' en '…'. Disponibles: [eng, spa]. | El código de language no está instalado. |
Actividades relacionadas
Sección titulada «Actividades relacionadas»- OCR Recognize File — obtener el texto y extraer tú mismo con
regexFind. - OCR Extract Form Fields — extraer por posición en vez de por patrón.