- Información general
- Contratos de procesamiento de documentos
- Notas relacionadas
- Acerca de los contratos de procesamiento de documento
- Clase Cuadro
- Interfaz IPersistedActivity
- Clase PrettyBoxConverter
- Interfaz IClassifierActivity
- Interfaz IClasificadorProveedorDeCapacidades
- Clase ClassifierDocumentType
- Clase ClassifierResult
- ClassifierCodeActivity Class
- ClassifierNativeActivity Class
- ClassifierAsyncCodeActivity Class
- Clase ClasificadorCapacidadDeTipoDeDocumento
- ContentValidationData Class
- EvaluatedBusinessRulesForFieldValue Class
- EvaluatedBusinessRuleDetails Class
- Clase
- Clase
- Clase ExtractorDocumentType
- Clase ExtractorDocumentTypeCapabilities
- Clase ExtractorFieldCapability
- Clase
- Clase ExtractorResult
- FieldValue Class
- FieldValueResult Class
- Interfaz ICapabilitiesProvider
- Interfaz IExtractorActivity
- Clase ExtractorPayload
- Enumeración DocumentActionPriority
- Clase DocumentActionData
- Enumeración DocumentActionStatus
- DocumentActionType Enum
- Clase DocumentClassificationActionData
- Clase DocumentValidationActionData
- Clase UserData
- Clase Documento
- Clase DocumentoDividirResultado
- Clase DomExtensions
- Clase Página
- Clase SecciónDePágina
- Clase de polígono
- Clase PolygonConverter
- Clase de metadatos
- Clase GrupoDeWord
- Clase Word
- Enum FuenteDeProcesamiento
- Clase ResultadosTablaCelda
- Clase ResultadosTablaValor
- Clase ResultadosTablaColumnaInfo
- Clase TablaDeResultados
- Enum Rotación
- Rule Class
- RuleResult Class
- RuleSet Class
- RuleSetResult Class
- Enum TipoDeSección
- Enum TipoDeGrupoDeWord
- Interfaz IDocumentTextProjection
- Clase ResultadoDeClasificación
- Clase ResultadoDeExtracción
- Clase ResultadosDeDocumento
- Clase ResultadosDeLímitesDeDocumento
- Clase ResultadosDePuntoDeDatos
- Clase ResultadosDeValor
- Clase ResultadosDeContenidoDeReferencia
- Clase ResultadosDeValorDeTokens
- Clase ResultadosDeCampoDerivado
- Enum ResultadosDeFuenteDeDatos
- Clase ResultadoDeConstantes
- Clase ValorDeCampoSimple
- Clase ValorDeCampoDeTabla
- Clase GrupoDeDocumento
- Clase TaxonomíaDeDocumento
- Clase TipoDeDocumento
- Clase Campo
- Enum TipoDeCampo
- FieldValueDetails Class
- Clase InformaciónDeLenguaje
- Clase MetadataEntry
- Enumeración de tipo de texto
- Clase TipoDeCampo
- Interfaz de actividad de ITracking
- Interfaz de ITrainableActivity
- Interfaz ITrainableClassifierActivity
- Interfaz ITrainableExtractorActivity
- Clase TrainableClassifierAsyncCodeActivity
- Clase TrainableClassifierCodeActivity
- Clase TrainableClassifierNativeActivity
- Clase TrainableExtractorAsyncCodeActivity
- Clase TrainableExtractorCodeActivity
- Clase TrainableExtractorNativeActivity
- Clase BasicDataPoint: vista previa
- Clase ExtractionResultHandler: vista previa
- Document Understanding ML
- Servidor local de OCR de Document Understanding
- Document Understanding
- Notas relacionadas
- Acerca del paquete de actividades Document Understanding
- Compatibilidad de proyectos
- Configurar la conexión externa
- Establecer contraseña de PDF
- Fusionar PDF
- Obtener el recuento de páginas del PDF
- Extraer texto en PDF
- Extraer imágenes en PDF
- Extraer rango de página en PDF
- Extraer datos del documento
- Cree una tarea de validación y espere
- Esperar la tarea de validación y continuar
- Crear tarea de validación
- Clasificar documento
- Crear tarea de validación de clasificación
- Crear tarea de validación de clasificación y esperar
- Esperar la tarea de validación de clasificación y reanudar
- OCRInteligente
- Notas relacionadas
- Acerca del paquete de actividades IntelligentOCR
- Compatibilidad de proyectos
- Cargar taxonomía
- Digitalizar documento
- Clasificar ámbito de documento
- Clasificador basado en palabras clave
- Clasificador de proyectos de Document Understanding
- Clasificador inteligente de palabra clave
- Crear acción de clasificación de documentos
- Crear artefactos de validación de documentos
- Recuperar artefactos de validación de documentos
- Esperar la acción de clasificación de documentos y reanudar
- Entrenar el alcance de los clasificadores
- Entrenador del clasificador basado en palabras clave
- Entrenador del clasificador inteligente de palabra clave
- Alcance de la extracción de información
- Extractor de proyectos de Document Understanding
- Entrenador del extractor de proyectos de Document Understanding
- Extractor basado en regex
- Extractor de forma
- Extractor inteligente de formularios
- Redactar documento
- Crear acción de validación de documentos
- Esperar la acción de validación de documentos y reanudar
- Entrenar el alcance de los Extractores
- Exportar resultados de extracción
- Extractor con aprendizaje automático
- Entrenador de extractor con aprendizaje automático
- Clasificador de aprendizaje automático
- Entrenador del clasificador de aprendizaje automático
- Clasificador generativo
- Extractor generativo
- Configurar autenticación
- Validar documentos con acciones de la aplicación
- Validación manual para digitalizar documentos
- Extracción de datos basada en anclajes utilizando el extractor inteligente de formularios
- Estación de validación
- Actividades generativas: buenas prácticas
- Extractor generativo: buenas prácticas
- Clasificador generativo: buenas prácticas
- Servicios ML
- OCR
- Contratos OCR
- Notas relacionadas
- Acerca de los contratos OCR
- Compatibilidad de proyectos
- IOCRActivity Interface
- OCRAsyncCodeActivity Class
- OCRCodeActivity Class
- OCRNativeActivity Class
- Clase Carácter
- Clase OCRResult
- Clase Word
- FontStyles Enum
- OCRRotation Enum
- Clase OCRCapabilities
- OCRScrapeBase Class
- OCRScrapeFactory Class
- ScrapeControlBase Class
- Enum ScrapeEngineUsages
- ExtraerBaseDelEctor
- Clase ScrapeEngineFactory
- Clase ExtraerEngineProvider
- OmniPage
- PDF
- [No en la lista] Abbyy
- [No en la lista] Abbyy incrustado
Actividades de Document Understanding
Puede leer y extraer por separado el contenido de .pdf archivos usando actividades que pueden leer todos los caracteres incluidos en el documento.
Dependiendo de sus necesidades, puede usar una actividad simple que pueda reconocer los caracteres, o usar una con un motor OCR. Las ventajas de utilizar un motor de OCR son que la lectura de documentos se puede aplicar incluso en documentos escaneados, firmados o escritos a mano.
El siguiente ejemplo presenta dos situaciones de lectura de un archivo .pdf :
- El primero explica cómo leer el archivo
.pdfmientras se utiliza la actividad Leer texto PDF. - El segundo explica cómo leer el archivo
.pdfmientras se utiliza la actividad Leer PDF con OCR . La principal diferencia entre los dos escenarios es que el segundo también utiliza motores OCR, lo que significa que los detalles de la información extraída son más precisos que en el primer caso si el archivo analizado es una imagen, escaneada o incluye campos firmados o escritos a mano. Puedes encontrar ambas actividades en el paquete UiPath.PDF.Activities .
Solo se requiere un flujo de trabajo para ambos escenarios, común hasta el punto de pedir al usuario que elija el método de lectura deseado.
Pasos
- Abre Studio y crea un nuevo Proceso.
- Añade un contenedor de diagrama de flujo en el Diseñador de flujo de trabajo.
- Crea una variable llamada
chooseOption, con el tipo ValorGenérico y sin valor predeterminado.Nota:Add your
.pdffiles to the project directory in order to be able to run the entire process from the same place or download this example in order to use the given file.
- Crea una variable llamada
- Añade una actividad de diálogo de entrada y conéctala al nodo de inicio.
- En el panel de propiedades, agrega la expresión
"Choose one option below:"al campo Etiqueta. - Add the expression
{"Read PDF Text", "Read PDF With OCR"}in the Options field. - Añade el valor
"Options"en el campo Título. - Agrega la variable
chooseOptionen el campo Resultado.
- En el panel de propiedades, agrega la expresión
- Añade una actividad de Decisión de flujo después de la actividad Diálogo de entrada y conéctala a ella.
- En el panel de propiedades, agrega la expresión
chooseOption = "Read PDF Text"al campo Condición.
- En el panel de propiedades, agrega la expresión
- Añade un contenedor Secuencia y conéctalo a la rama Verdadero de la actividad de Decisión de flujo. El nombre de la Secuencia debe ser Leer texto PDF. Esta actividad extrae información utilizando expresiones regulares.
-
Crear las variables mostradas en la siguiente tabla:
Tabla 1. Variables que se crearán
Tipo de variable Valor predeterminado extractedTextCadena N/D arrayTextSystem.String [] N/D addressValorGenérico N/D cityCadena N/D phoneNumberCadena N/D invoiceNumberCadena N/D vendorValorGenérico N/D bankNameCadena N/D bankAccountCadena N/D ibanCodeCadena N/D
-
- Añade un contenedor Secuencia y conéctalo a la rama Falso de la actividad de Decisión de flujo. El nombre de la Secuencia debe ser Leer PDF con OCR. Esta actividad extrae información utilizando un motor OCR (Microsoft OCR y Tesseract OCR).
-
Crear las variables mostradas en la siguiente tabla:
Tabla 2. Variables que se crearán
Tipo de variable Valor predeterminado extractedTextTesseractCadena N/D extractedTextMicrosoftCadena N/D Figura 1. Descripción general del principio del flujo de trabajo

-
- Leer un archivo PDF utilizando la actividad Leer texto PDF:
- Abre el contenedor Leer secuencia de texto PDF seleccionándolo dos veces.
- Añade una actividad Leer texto PDF dentro de la secuencia.
- In the Properties panel, add the expression
"NPO Invoice.pdf"in the FileName field. - Add the value
"All"in the Range field. - Agrega la variable
extractedTexten el campo Texto.
- In the Properties panel, add the expression
- Añade una actividad Asignar después de la actividad Leer texto PDF.
- Añade la variable
arrayTexten el campo Para. - Agrega la expresión
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)en el campo Valor.
- Añade la variable
- Agrega una actividad Si bajo la actividad Asignar.
- Añada la expresión
arrayText(0).Equals("Tiefland Glass AG")en el campo Condición.
- Añada la expresión
- Añade una actividad Asignar dentro del contenedor Secuencia.
- Añade la variable
addressen el campo Para. - Agrega la expresión
arrayText(2)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
cityen el campo Para. - Agrega la expresión
arrayText(3).Split(","c)(0)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
phoneNumberen el campo Para. - Agrega la expresión
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
invoiceNumberen el campo Para. - Agrega la expresión
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
vendoren el campo Para. - Agrega la expresión
arrayText(arrayText.Count-5)en el campo Valor.
- Añade la variable
- Añade una actividad Asignar dentro del campo Si no.
- Añade la variable
addressen el campo Para. - Agrega la expresión
arrayText(1)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
cityen el campo Para. - Agrega la expresión
arrayText(2).Split(","c)(0)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
phoneNumberen el campo Para. - Agrega la expresión
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
- Añade la variable
invoiceNumberen el campo Para. - Agrega la expresión
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)en el campo Valor.
- Añade la variable
- Añade otra actividad Asignar y colócala después de la anterior.
-
Añade la variable
vendoren el campo Para. -
Agrega la expresión
arrayText(arrayText.Count-5)en el campo Valor.Figura 2. Descripción general de la secuencia que contiene las actividades Asignar

-
- Coloca una actividad Para cada después del contenedor Si.
- Add the variable
arrayTextin the Value field.
- Add the variable
- Añade una actividad Si dentro del contenedor Cuerpo de la actividad Para cada.
- Añada la expresión
item.Contains("Bank Name:")en el campo Condición.
- Añada la expresión
- Añade una actividad Asignar dentro del campo Entonces.
- Añade la variable
bankNameen el campo Para. - Agrega la expresión
item.Split(":"c)(1)en el campo Valor.
- Añade la variable
- Añade una actividad Si después de la anterior.
- Añada la expresión
item.Contains("Bank Account:")en el campo Condición.
- Añada la expresión
- Añade una actividad Asignar dentro del campo Entonces.
- Añade la variable
bankNameen el campo Para. - Agrega la expresión
item.Split(":"c)(1)en el campo Valor.
- Añade la variable
- Añade una actividad Si después de la anterior.
- Añada la expresión
item.contains("IBAN Code:")en el campo Condición.
- Añada la expresión
- Añade una actividad Asignar dentro del campo Entonces.
-
Añade la variable
ibanCodeen el campo Para. -
Agrega la expresión
item.Split(":"c)(1)en el campo Valor.Figura 3. Descripción general de la actividad Para cada

-
- Vuelve a la secuencia Leer texto PDF y añade una actividad Escribir archivo de texto debajo de la actividad Para cada.
-
Add the value
"InvoiceDetails.txt"in the FileName field. -
Añada la expresión
"Invoice details"+Environment.NewLine+Environment.NewLine+"Vendor: "+vendor+Environment.NewLine+"Vendor address: "+address+Environment.NewLine+"City: "+city+Environment.NewLine+"Phone number:"+phoneNumber+Environment.NewLine+"Invoice number:"+invoiceNumber+Environment.NewLine+"Bank name:"+bankName+Environment.NewLine+"Bank account:"+bankAccount+Environment.NewLine+"IBAN Code:"+ibanCodeen el campo Texto.Figura 4. Descripción general del contenedor Para cada

-
- Return to the Main workflow working area.
- Lee un archivo PDF utilizando la actividad Leer PDF con OCR.
- Abre el contenedor Leer PDF con secuencia OCR.
- Drag a Read PDF With OCR activity inside the sequence.
- Add the value
"Invoice02.pdf"in the FileName field. - In the Properties panel, add the value
1in the DegreeOfParallelism field.
- Add the value
- Drag the Google OCR engine inside the Read PDF With OCR activity.
- En el panel propiedades, agrega la variable
extractedTextTesseracten el campo Texto.
- En el panel propiedades, agrega la variable
- Arrastra otra actividad Leer PDF con OCR y colócala después de la anterior.
- Add the value
"Invoice02.pdf"in the FileName field. - In the Properties panel, add the value
1in the DegreeOfParallelism field.
- Add the value
- Drag the Microsoft OCR engine inside the Read PDF With OCR activity.
- In the Properties panel add the variable
extractedTextMicrosoftin the Text field.
- In the Properties panel add the variable
- Drag a Write Text File activity below the Read PDF With OCR activity.
- Add the value
"OCRMicrosoft.txt"in the FileName field. - Agrega la variable
extractedTextMicrosoften el campo Texto.
- Add the value
- Drag a Write Text File activity below the previous Write Text File activity.
-
Add the value
"OCRTesseract.txt"in the FileName field. -
Agrega la variable
extractedTextTesseracten el campo Texto.Figura 5. Descripción general de la actividad Leer PDF con OCR

-
- Ejecuta el proceso. El robot extrae los datos utilizando el proceso especificado y guarda la salida en un archivo
.txt.
Consulta el siguiente enlace para descargar el ejemplo en formato ZIP : Ejemplo.