- Visão geral
- Contratos de Processamento de Documentos
- Notas de versão
- Sobre os Contratos de Processamento de Documentos
- Classe Box
- Interface IPersistedActivity
- Classe PrettyBoxConverter
- Interface IClassifierActivity
- Interface IClassifierCapabilitiesProvider
- Classe ClassifierDocumentType
- Classe ClassifierResult
- Classe ClassifierCodeActivity
- Classe ClassifierNativeActivity
- Classe ClassifierAsyncCodeActivity
- Classe ClassifierDocumentTypeCapability
- Classe ExtractorAsyncCodeActivity
- Classe ExtractorCodeActivity
- Classe ExtractorDocumentType
- Classe ExtractorDocumentTypeCapabilities
- Classe ExtractorFieldCapability
- Classe ExtractorNativeActivity
- Classe ExtractorResult
- Interface ICapabilitiesProvider
- Interface IExtractorActivity
- Classe ExtractorPayload
- Enumeração DocumentActionPriority
- Classe DocumentActionData
- Enumeração DocumentActionStatus
- Enumeração DocumentActionType
- Classe DocumentClassificationActionData
- Classe DocumentValidationActionData
- Classe UserData
- Classe Document
- Classe DocumentSplittingResult
- Classe DomExtensions
- Classe Page
- Classe PageSection
- Classe Polígono
- Classe PolygonConverter
- Classe de metadados
- Classe WordGroup
- Classe Word
- Enumeração ProcessingSource
- Classe ResultsTableCell
- Classe ResultsTableValue
- Classe ResultsTableColumnInfo
- Classe ResultsTable
- Enumeração Rotation
- Enumeração SectionType
- Enumeração WordGroupType
- Interface IDocumentTextProjection
- Classe ClassificationResult
- Classe ExtractionResult
- Classe ResultsDocument
- Classe ResultsDocumentBounds
- Classe ResultsDataPoint
- Classe ResultsValue
- Classe ResultsContentReference
- Classe ResultsValueTokens
- Classe ResultsDerivedField
- Enumeração ResultsDataSource
- Classe ResultConstants
- Classe SimpleFieldValue
- Classe TableFieldValue
- Classe DocumentGroup
- Classe DocumentTaxonomy
- Classe DocumentType
- Classe Field
- Enumeração FieldType
- Classe LanguageInfo
- Classe MetadataEntry
- Enumeração de tipo de texto
- Classe TypeField
- Interface ITrackingActivity
- Interface ITrainableActivity
- Interface ITrainableClassifierActivity
- Interface ITrainableExtractorActivity
- Classe TrainableClassifierAsyncCodeActivity
- Classe TrainableClassifierCodeActivity
- Classe TrainableClassifierNativeActivity
- Classe TrainableExtractorAsyncCodeActivity
- Classe TrainableExtractorCodeActivity
- Classe TrainableExtractorNativeActivity
- Digitalizador do Document Understanding
- Document Understanding ML
- Document Understanding OCR Local Server
- Processo do Document Understanding - Modelo do Studio
- Document Understanding
- Notas de versão
- About the Document Understanding activity package
- Compatibilidade do projeto
- Dados do documento
- Definir Senha do PDF
- Merge PDFs
- Get PDF Page Count
- Extract PDF Text
- Extract PDF Images
- Extract PDF Page Range
- Extract Document Data
- Criar tarefa de validação e aguardar
- Aguarde a tarefa de validação e retome
- Create Validation Task
- Classificar Documento
- Create Classification Validation Task
- Create Classification Validation Task and Wait
- Aguardar a tarefa de Validação de Classificação e retomar
- IntelligentOCR
- Notas de versão
- About the IntelligentOCR activity package
- Compatibilidade do projeto
- Carregar Taxonomia
- Digitize Document
- Classificar Escopo do Documento
- Classificador baseado em palavra-chave
- Intelligent Keyword Classifier
- Present Classification Station
- Create Document Classification Action
- Wait For Document Classification Action And Resume
- Train Classifiers Scope
- Instrutor de Classificador Baseado em Palavra-chave
- Intelligent Keyword Classifier Trainer
- Escopo da Extração de Dados
- Regex Based Extractor
- Form Extractor
- Intelligent Form Extractor
- Present Validation Station
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Escopo de Extratores de Treinamento
- Exportar Resultados da Extração
- Serviços de ML
- OCR
- Contratos de OCR
- Notas de versão
- Sobre os Contratos OCR
- Compatibilidade do projeto
- Interface IOCRActivity
- Classe OCRAsyncCodeActivity
- Classe OCRCodeActivity
- Classe OCRNativeActivity
- Character Class
- Classe OCRResult
- Classe Word
- Enumeração FontStyles
- Enumeração OCRRotation
- Classe OCRCapabilities
- Classe OCRScrapeBase
- Classe OCRScrapeFactory
- Classe ScrapeControlBase
- Enumeração ScrapeEngineUsages
- ScrapeEngineBase
- Classe ScrapeEngineFactory
- Classe ScrapeEngineProvider
- OmniPage
- PDF
- [Não listado] Abbyy
- [Não listado] Abbyy Embedded
Leitura de arquivos PDF
.pdf
usando atividades que podem ler todos os caracteres incluídos no documento.
Dependendo de suas necessidades, você pode usar uma atividade simples que pode reconhecer os personagens ou usar um mecanismo de OCR. Os benefícios de usar um mecanismo de OCR são que a leitura do documento pode ser aplicada mesmo em documentos digitalizados, assinados ou manuscritos.
.pdf
:
- O primeiro explica como ler o arquivo
.pdf
usando a atividade Read PDF Text. -
O segundo explica como ler o arquivo
.pdf
usando a atividade Read PDF With OCR.A principal diferença entre os dois cenários é que o segundo também usa mecanismos de OCR, o que significa que os detalhes da informação extraída são mais precisos do que no primeiro caso, se o arquivo analisado for uma imagem, digitalizada ou incluir campos assinados ou manuscritos. Você pode encontrar ambas as atividades no pacote UiPath.PDF.Activities .
É necessário apenas um fluxo de trabalho para os dois cenários, comum até o ponto de solicitar ao usuário a escolha do método de leitura desejado.
É assim que um processo de automação pode ser construído:
- Abra o Studio e crie um Processo.
-
Arraste um contêiner Fluxograma no Designer de fluxo de trabalho.
-
Crie a seguinte variável:
Nome da variável
Tipo de Variável
Valor Padrão
chooseOption
GenericValue
Observação: adicione seus arquivos.pdf
ao diretório do projeto para poder executar todo o processo no mesmo local ou baixe este exemplo para usar o arquivo fornecido.
-
-
Arraste uma atividade Input Dialog e conecte-a ao Start Node.
- No painel Propriedades , adicione a expressão
"Choose one option below:"
no campo Rótulo . - Adicione a expressão
{"Read PDF Text", "Read PDF With OCR"}
no campo Opções . - Adicione o valor
"Options"
ao campo Título. - Adicione a variável
chooseOption
no campo Resultado.
- No painel Propriedades , adicione a expressão
-
Coloque uma atividade Flow Decision abaixo da atividade Input Dialog e conecte-a a ela.
- No painel Propriedades , adicione a expressão
chooseOption = "Read PDF Text"
no campo Condição .
- No painel Propriedades , adicione a expressão
-
Arraste um container Sequence e conecte-o à ramificação True da atividade Flow Decision . O nome da Sequência deve ser Read PDF Text. Esta atividade extrai informações usando expressões regulares.
-
Crie as seguintes variáveis:
Nome da variável
Tipo de Variável
Valor Padrão
extractedText
String
arrayText
System.String[]
address
GenericValue
city
String
phoneNumber
String
invoiceNumber
String
vendor
GenericValue
bankName
String
bankAccount
String
ibanCode
String
-
- Arraste um container Sequence e conecte-o à ramificação False da atividade Flow Decision . O nome da Sequência deve ser Read PDF With OCR. Esta atividade extrai informações usando um mecanismo de OCR (Microsoft OCR e Tesseract OCR).
-
Crie a seguinte variável:
Nome da variável
Tipo de Variável
Valor Padrão
extractedTextTesseract
String
extractedTextMicrosoft
String
É assim que seu fluxo de trabalho deve ficar até este ponto:
Ler um arquivo PDF usando a atividade Ler texto PDF
- Abra o contêiner de sequência Read PDF Text clicando duas vezes nele.
-
Arraste uma atividade Ler texto PDF dentro da sequência.
- No painel Properties , adicione a expressão
"NPO Invoice.pdf"
no campo FileName . - Adicione o valor
"All"
no campo Intervalo . - Adicione a variável
extractedText
no campo Texto.
- No painel Properties , adicione a expressão
-
Coloque uma atividade Atribuir na atividade Ler texto PDF .
- Adicione a variável
arrayText
no campo Para. - Adicione a expressão
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)
no campo Valor.
- Adicione a variável
-
Arraste uma atividade Se para baixo da atividade Atribuir .
- Adicione a expressão
arrayText(0).Equals("Tiefland Glass AG")
no campo Condição.
- Adicione a expressão
-
Arraste uma atividade Assign para dentro do contêiner Sequence.
- Adicione a variável
address
no campo Para. - Adicione a expressão
arrayText(2)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
city
no campo Para. - Adicione a expressão
arrayText(3).Split(","c)(0)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
phoneNumber
no campo Para. - Adicione a expressão
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
invoiceNumber
no campo Para. - Adicione a expressão
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
vendor
no campo Para. - Adicione a expressão
arrayText(arrayText.Count-5)
no campo Valor.
- Adicione a variável
-
Arraste uma atividade Atribuir para dentro do campo Else .
- Adicione a variável
address
no campo Para. - Adicione a expressão
arrayText(1)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
city
no campo Para. - Adicione a expressão
arrayText(2).Split(","c)(0)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
phoneNumber
no campo Para. - Adicione a expressão
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
invoiceNumber
no campo Para. - Adicione a expressão
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
no campo Valor.
- Adicione a variável
-
Arraste outra atividade Atribuir e coloque-a abaixo da anterior.
- Adicione a variável
vendor
no campo Para. -
Adicione a expressão
arrayText(arrayText.Count-5)
no campo Valor.É assim que sua Sequência deve aparecer até este ponto:
- Adicione a variável
-
Coloque uma atividade Para Cada abaixo do contêiner Se e clique duas vezes na atividade para abri-la.
- Adicione a variável
arrayText
no campo Valor.
- Adicione a variável
-
Arraste uma atividade If para dentro do contêiner Corpo da atividade For Each .
- Adicione a expressão
item.Contains("Bank Name:")
no campo Condição.
- Adicione a expressão
-
Arraste uma atividade Atribuir para dentro do campo Então .
- Adicione a variável
bankName
no campo Para. - Adicione a expressão
item.Split(":"c)(1)
no campo Valor.
- Adicione a variável
-
Coloque uma atividade If abaixo da anterior.
- Adicione a expressão
item.Contains("Bank Account:")
no campo Condição.
- Adicione a expressão
-
Arraste uma atividade Atribuir para dentro do campo Então .
- Adicione a variável
bankName
no campo Para. - Adicione a expressão
item.Split(":"c)(1)
no campo Valor.
- Adicione a variável
-
Coloque uma atividade If abaixo da anterior.
- Adicione a expressão
item.contains("IBAN Code:")
no campo Condição.
- Adicione a expressão
-
Arraste uma atividade Atribuir para dentro do campo Então .
- Adicione a variável
ibanCode
no campo Para. -
Adicione a expressão
item.Split(":"c)(1)
no campo Valor.É assim que o contêiner For Each deve ficar:
- Adicione a variável
-
Retorne à sequência Read PDF Text e arraste uma atividade Write Text File abaixo da atividade For Each .
- Adicione o valor
"InvoiceDetails.txt"
no campo FileName . -
Adicione a expressão
"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
no campo Texto.É assim que o contêiner For Each deve ficar:
- Adicione o valor
- Retorne à área de trabalho do fluxo de trabalho principal .
Ler um arquivo PDF usando a atividade Ler PDF com OCR
- Abra o contêiner de sequência Ler PDF com OCR clicando duas vezes nele.
-
Arraste uma atividade Ler PDF com OCR dentro da sequência.
- Adicione o valor
"Invoice02.pdf"
no campo FileName . - No painel Propriedades, adicione o valor
1
no campo GrauDeParalelismo.
- Adicione o valor
-
Arraste o mecanismo de OCR do Google para dentro da atividade Ler PDF com OCR .
- No painel Propriedades , adicione a variável
extractedTextTesseract
no campo Texto .
- No painel Propriedades , adicione a variável
-
Arraste outra atividade Ler PDF com OCR e coloque-a abaixo da anterior.
- Adicione o valor
"Invoice02.pdf"
no campo FileName . - No painel Propriedades, adicione o valor
1
no campo GrauDeParalelismo.
- Adicione o valor
-
Arraste o mecanismo Microsoft OCR para dentro da atividade Ler PDF com OCR .
- No painel Propriedades , adicione a variável
extractedTextMicrosoft
no campo Texto .
- No painel Propriedades , adicione a variável
-
Arraste uma atividade Escrever arquivo de texto abaixo da atividade Ler PDF com OCR .
- Adicione o valor
"OCRMicrosoft.txt"
no campo FileName . - Adicione a variável
extractedTextMicrosoft
no campo Texto.
- Adicione o valor
-
Arraste uma atividade Gravar arquivo de texto para baixo da atividade anterior Gravar arquivo de texto .
- Adicione o valor
"OCRTesseract.txt"
no campo FileName . -
Adicione a variável
extractedTextTesseract
no campo Texto.É assim que a sequência Ler PDF com OCR deve ficar:
- Adicione o valor
- Execute o processo. O robô extrai os dados usando o processo especificado e salva a saída em um arquivo
.txt
.
Baixe o exemplo aqui.