- 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
- Proceso Document Understanding - Plantilla Studio
- Document Understanding
- Notas relacionadas
- About the Document Understanding activity package
- Compatibilidad de proyectos
- Datos del documento
- 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
- About the IntelligentOCR activity package
- Compatibilidad de proyectos
- Cargar taxonomía
- Digitalizar documento
- Clasificar ámbito de documento
- Clasificador basado en palabras clave
- Clasificador inteligente de palabra clave
- Mostrar Estación de Clasificación
- 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 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.
Así es como se puede construir el proceso de automatización:
- Abre Studio y crea un nuevo Proceso.
-
Arrastra un contenedor Diagrama de flujo hasta el Diseñador de flujo de trabajo.
-
Cree la siguiente variable:
Nombre de la variable
Tipo de variable
Valor predeterminado
chooseOption
ValorGenérico
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.
-
-
Arrastra una actividad 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
-
Coloca una actividad Decisión de flujo debajo de la actividad Diálogo de entrada y conéctala.
- 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
-
Arrastra un contenedor Secuencia y conéctalo a la rama Verdadero de la actividad Decisión de flujo . El nombre de la secuencia debe ser Leer texto PDF. Esta actividad extrae información mediante expresiones regulares.
-
Crea las siguientes variables:
Nombre de la variable
Tipo de variable
Valor predeterminado
extractedText
Cadena
arrayText
System.String []
address
ValorGenérico
city
Cadena
phoneNumber
Cadena
invoiceNumber
Cadena
vendor
ValorGenérico
bankName
Cadena
bankAccount
Cadena
ibanCode
Cadena
-
- Arrastra un contenedor Secuencia y conéctalo a la rama Falso de la actividad Decisión de flujo . El nombre de la secuencia debe ser Leer PDF con OCR. Esta actividad extrae información mediante un motor de OCR (Microsoft OCR y Tesseract OCR).
-
Cree la siguiente variable:
Nombre de la variable
Tipo de variable
Valor predeterminado
extractedTextTesseract
Cadena
extractedTextMicrosoft
Cadena
Este es el aspecto que debe tener su flujo de trabajo hasta este punto:
Leer un archivo PDF utilizando la actividad Leer texto PDF
- Abre el contenedor Leer secuencia de texto PDF haciendo doble clic en él.
-
Arrastra 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
-
Coloca una actividad Asignar bajo 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
-
Arrastra una actividad Si debajo de la actividad Asignar .
- Añada la expresión
arrayText(0).Equals("Tiefland Glass AG")
en el campo Condición.
- Añada la expresión
-
Arrastra 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo 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
-
Arrastra otra actividad Asignar y colócala debajo de la anterior.
- Añade la variable
vendor
en el campo Para. -
Agrega la expresión
arrayText(arrayText.Count-5)
en el campo Valor.Así es como debería verse tu Secuencia hasta este punto:
- Añade la variable
-
Coloca una actividad Para cada debajo del contenedor Si y haz doble clic en la actividad para abrirla.
- Añade la variable
arrayText
en el campo Valor.
- Añade la variable
-
Arrastra 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
-
Arrastra 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
-
Coloca una actividad Si debajo de la anterior.
- Añada la expresión
item.Contains("Bank Account:")
en el campo Condición.
- Añada la expresión
-
Arrastra 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
-
Coloca una actividad Si debajo de la anterior.
- Añada la expresión
item.contains("IBAN Code:")
en el campo Condición.
- Añada la expresión
-
Arrastra 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.Este es el aspecto que debe tener el contenedor Para cada :
- Añade la variable
-
Vuelve a la secuencia Leer texto PDF y arrastra 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.Este es el aspecto que debe tener el contenedor Para cada :
- Añade el valor
- Vuelva al área de trabajo del flujo de trabajo principal .
Leer un archivo PDF utilizando la actividad Leer PDF con OCR
- Abra el contenedor de secuencia Leer PDF con OCR haciendo doble clic en él.
-
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 debajo 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.Este es el aspecto que debe tener la secuencia 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
.
Descarga el ejemplo desde aquí.