- 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
- Clase
- Clase
- Clase ExtractorDocumentType
- Clase ExtractorDocumentTypeCapabilities
- Clase ExtractorFieldCapability
- Clase
- Clase ExtractorResult
- 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
- 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
- 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
- Digitalizador de Document Understanding
- Document Understanding ML
- Servidor local de OCR de Document Understanding
- Document Understanding
- Notas relacionadas
- Acerca del paquete de actividades Document Understanding
- Compatibilidad de proyectos
- 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
- Configurar autenticación
- 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
- 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
- Extractor basado en regex
- Extractor de forma
- Extractor inteligente de formularios
- Mostrar Estación de Validación
- 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
- 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
Leer archivos PDF
.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.
.pdf
:
- El primero explica cómo leer el archivo
.pdf
mientras se utiliza la actividad Leer texto PDF. - El segundo explica cómo leer el archivo
.pdf
mientras se utiliza la actividad Leer PDF con OCR.La principal diferencia entre los dos escenarios es que el segundo también utiliza motores de 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, escaneado 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: añade tus archivos.pdf
al directorio del proyecto para poder ejecutar todo el proceso desde el mismo lugar o descarga este ejemplo para usar el archivo indicado.
- Crea una variable llamada
- Añade una actividad de diálogo de entrada y conéctala al nodo de inicio.
- En el panel Propiedades , agrega la expresión
"Choose one option below:"
en el campo Etiqueta . - Agrega la expresión
{"Read PDF Text", "Read PDF With OCR"}
en el campo Opciones . - Añade el valor
"Options"
en el campo Título. - Agrega la variable
chooseOption
en el campo Resultado.
- En el panel 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 Propiedades , añade la expresión
chooseOption = "Read PDF Text"
en el campo Condición .
- En el panel Propiedades , añade 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 Nombre de la variable
Tipo de variable
Valor predeterminado
extractedText
Cadena
N/D arrayText
System.String []
N/D address
ValorGenérico
N/D city
Cadena
N/D phoneNumber
Cadena
N/D invoiceNumber
Cadena
N/D vendor
ValorGenérico
N/D bankName
Cadena
N/D bankAccount
Cadena
N/D ibanCode
Cadena
N/D
- Crear las variables mostradas en la siguiente tabla:
- 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 Nombre de la variable
Tipo de variable
Valor predeterminado
extractedTextTesseract
Cadena
N/D extractedTextMicrosoft
Cadena
N/D
Figura 1. Descripción general del principio del flujo de trabajo
- Crear las variables mostradas en la siguiente tabla:
- 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.
- En el panel Propiedades , añade la expresión
"NPO Invoice.pdf"
en el campo NombreDeArchivo . - Añade el valor
"All"
en el campo Intervalo . - Agrega la variable
extractedText
en el campo Texto.
- En el panel Propiedades , añade la expresión
- Añade una actividad Asignar después de la actividad Leer texto PDF.
- Añade la variable
arrayText
en 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
address
en 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
city
en 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
phoneNumber
en 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
invoiceNumber
en 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
vendor
en 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
address
en 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
city
en 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
phoneNumber
en 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
invoiceNumber
en 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
vendor
en 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
- Añade la variable
- Coloca una actividad Para cada después del contenedor Si.
- Añade la variable
arrayText
en el campo Valor.
- Añade la 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
bankName
en 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
bankName
en 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
ibanCode
en 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
- Añade la variable
- Vuelve a la secuencia Leer texto PDF y añade una actividad Escribir archivo de texto debajo de la actividad Para cada.
- Añade el valor
"InvoiceDetails.txt"
en el campo NombreDeArchivo . - Añade 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:"+ibanCode
en el campo Texto.Figura 4. Descripción general del contenedor Para cada
- Añade el valor
- Vuelva al área de trabajo del flujo de trabajo principal .
- Lee un archivo PDF utilizando la actividad Leer PDF con OCR.
- Abre el contenedor Leer PDF con secuencia OCR.
- Arrastra una actividad Leer PDF con OCR dentro de la secuencia.
- Añade el valor
"Invoice02.pdf"
en el campo NombreDeArchivo . - En panel Propiedades añade el valor
1
en el campo GradoDeParalelismo.
- Añade el valor
- Arrastra el motor Google OCR dentro de la actividad Leer PDF con OCR .
- En el panel Propiedades , añade la variable
extractedTextTesseract
en el campo Texto .
- En el panel Propiedades , añade la variable
- Arrastra otra actividad Leer PDF con OCR y colócala después de la anterior.
- Añade el valor
"Invoice02.pdf"
en el campo NombreDeArchivo . - En panel Propiedades añade el valor
1
en el campo GradoDeParalelismo.
- Añade el valor
- Arrastra el motor Microsoft OCR dentro de la actividad Leer PDF con OCR .
- En el panel Propiedades , añade la variable
extractedTextMicrosoft
en el campo Texto .
- En el panel Propiedades , añade la variable
- Arrastre una actividad Escribir archivo de texto debajo de la actividad Leer PDF con OCR .
- Añade el valor
"OCRMicrosoft.txt"
en el campo NombreDeArchivo . - Agrega la variable
extractedTextMicrosoft
en el campo Texto.
- Añade el valor
- Arrastra una actividad Escribir archivo de texto debajo de la actividad Escribir archivo de texto anterior.
- Añade el valor
"OCRTesseract.txt"
en el campo NombreDeArchivo . - Agrega la variable
extractedTextTesseract
en el campo Texto.Figura 5. Descripción general de la actividad Leer PDF con OCR
- Añade el valor
- Ejecuta el proceso. El robot extrae los datos utilizando el proceso especificado y guarda la salida en un archivo
.txt
.
ZIP
: Ejemplo.