- 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
- Document Understanding
- Notas de versão
- Sobre o pacote de atividades Document Understanding
- Compatibilidade do projeto
- 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
- Sobre o pacote de atividades IntelligentOCR
- Compatibilidade do projeto
- Configuração da autenticação
- Carregar Taxonomia
- Digitize Document
- Classificar Escopo do Documento
- Classificador baseado em palavra-chave
- Document Understanding Project Classifier
- Intelligent Keyword Classifier
- Create Document Classification Action
- Aguardar ação de classificação do documento e retomar
- Train Classifiers Scope
- Instrutor de Classificador Baseado em Palavra-chave
- Intelligent Keyword Classifier Trainer
- Escopo da Extração de Dados
- Document Understanding Project Extractor
- 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.
Etapas
- Abra o Studio e crie um Processo.
- Adicione um contêiner Fluxograma no Designer de fluxo de trabalho.
- Crie uma variável chamada
chooseOption
, com o tipo GenericValue e sem valor padrão.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.
- Crie uma variável chamada
- Adicione uma atividade Input Dialog e conecte-a ao Nó de início.
- 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
- Adicione uma atividade Flow Decision após a atividade Input Dialog e conecte-a.
- No painel Propriedades , adicione a expressão
chooseOption = "Read PDF Text"
no campo Condição .
- No painel Propriedades , adicione a expressão
- Adicione um contêiner Sequência e conecte-o à ramificação True da atividade Flow Decision. O nome da Sequência deve ser Read PDF Text. Essa atividade extrai informações usando expressões regulares.
- Crie as variáveis exibidas na tabela a seguir:
Tabela 1. Variáveis a serem criadas Tipo de Variável
Valor Padrão
extractedText
String
N/A arrayText
System.String[]
N/A address
GenericValue
N/A city
String
N/A phoneNumber
String
N/A invoiceNumber
String
N/A vendor
GenericValue
N/A bankName
String
N/A bankAccount
String
N/A ibanCode
String
N/A
- Crie as variáveis exibidas na tabela a seguir:
- Adicione um contêiner Sequência e conecte-o à ramificação False da atividade Flow Decision. O nome da Sequência deve ser Read PDF With OCR. Essa atividade extrai informações usando um mecanismo de OCR (Microsoft OCR e Tesseract OCR).
- Crie as variáveis exibidas na tabela a seguir:
Tabela 2. Variáveis a serem criadas Tipo de Variável
Valor Padrão
extractedTextTesseract
String
N/A extractedTextMicrosoft
String
N/A
Figura 1. Visão geral do início do fluxo de trabalho
- Crie as variáveis exibidas na tabela a seguir:
- Leia um Arquivo PDF usando a atividade Read PDF Text:
- Abra o contêiner de sequência Read PDF Text selecionando-o duas vezes.
- Adicione uma atividade Read PDF Text 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
- Adicione uma atividade Assign após a atividade Read PDF Text.
- 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
- Adicione uma atividade If abaixo da atividade Assign.
- Adicione a expressão
arrayText(0).Equals("Tiefland Glass AG")
no campo Condição.
- Adicione a expressão
- Adicione uma atividade Atribuir dentro do contêiner da Sequência.
- Adicione a variável
address
no campo Para. - Adicione a expressão
arrayText(2)
no campo Valor.
- Adicione a variável
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a anterior.
- Adicione a variável
vendor
no campo Para. - Adicione a expressão
arrayText(arrayText.Count-5)
no campo Valor.
- Adicione a variável
- Adicione uma atividade Assign 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
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a 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
- Adicione outra atividade Assign e coloque-a após a anterior.
- Adicione a variável
vendor
no campo Para. - Adicione a expressão
arrayText(arrayText.Count-5)
no campo Valor.Figura 2. Visão geral da sequência que contém as atividades Assign
- Adicione a variável
- Coloque uma atividade For Each após o contêiner If.
- Adicione a variável
arrayText
no campo Valor.
- Adicione a variável
- Adicione uma atividade If 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
- Adicione uma atividade Assign dentro do campo Then.
- Adicione a variável
bankName
no campo Para. - Adicione a expressão
item.Split(":"c)(1)
no campo Valor.
- Adicione a variável
- Adicione uma atividade If após a anterior.
- Adicione a expressão
item.Contains("Bank Account:")
no campo Condição.
- Adicione a expressão
- Adicione uma atividade Assign dentro do campo Then.
- Adicione a variável
bankName
no campo Para. - Adicione a expressão
item.Split(":"c)(1)
no campo Valor.
- Adicione a variável
- Adicione uma atividade If após a anterior.
- Adicione a expressão
item.contains("IBAN Code:")
no campo Condição.
- Adicione a expressão
- Adicione uma atividade Assign dentro do campo Then.
- Adicione a variável
ibanCode
no campo Para. - Adicione a expressão
item.Split(":"c)(1)
no campo Valor.Figura 3. Visão geral da atividade For Each
- Adicione a variável
- Retorne à sequência Read PDF Text e adicione 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.Figura 4. Visão geral do contêiner For Each
- Adicione o valor
- Retorne à área de trabalho do fluxo de trabalho principal .
- Leia um arquivo PDF usando a atividade Read PDF with OCR.
- Abra o contêiner de sequência Read PDF with OCR.
- 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 Read PDF with OCR e coloque-a após a 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.Figura 5. Visão geral da atividade Read PDF with OCR
- Adicione o valor
- Execute o processo. O robô extrai os dados usando o processo especificado e salva a saída em um arquivo
.txt
.
ZIP
: Exemplo.