activities
latest
false
Atividades de Document Understanding
Last updated 29 de out de 2024

Leitura de arquivos PDF

Você pode ler e extrair separadamente o conteúdo de arquivos .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.

O exemplo abaixo apresenta duas situações de leitura de um arquivo .pdf :
  1. O primeiro explica como ler o arquivo .pdf usando a atividade Read PDF Text.
  2. 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
  1. Abra o Studio e crie um Processo.
  2. Adicione um contêiner Fluxograma no Designer de fluxo de trabalho.
    1. 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.
  3. Adicione uma atividade Input Dialog e conecte-a ao Nó de início.
    1. No painel Propriedades , adicione a expressão "Choose one option below:" no campo Rótulo .
    2. Adicione a expressão {"Read PDF Text", "Read PDF With OCR"} no campo Opções .
    3. Adicione o valor "Options" ao campo Título.
    4. Adicione a variável chooseOption no campo Resultado.
  4. Adicione uma atividade Flow Decision após a atividade Input Dialog e conecte-a.
    1. No painel Propriedades , adicione a expressão chooseOption = "Read PDF Text" no campo Condição .
  5. 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.
    1. Crie as variáveis exibidas na tabela a seguir:
      Tabela 1. Variáveis a serem criadas

      Nome da variável

      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
  6. 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).
    1. Crie as variáveis exibidas na tabela a seguir:
      Tabela 2. Variáveis a serem criadas

      Nome da variável

      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

  7. Leia um Arquivo PDF usando a atividade Read PDF Text:
    1. Abra o contêiner de sequência Read PDF Text selecionando-o duas vezes.
    2. Adicione uma atividade Read PDF Text dentro da sequência.
      1. No painel Properties , adicione a expressão "NPO Invoice.pdf" no campo FileName .
      2. Adicione o valor "All" no campo Intervalo .
      3. Adicione a variável extractedText no campo Texto.
  8. Adicione uma atividade Assign após a atividade Read PDF Text.
    1. Adicione a variável arrayText no campo Para.
    2. Adicione a expressão extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries) no campo Valor.
  9. Adicione uma atividade If abaixo da atividade Assign.
    1. Adicione a expressão arrayText(0).Equals("Tiefland Glass AG") no campo Condição.
  10. Adicione uma atividade Atribuir dentro do contêiner da Sequência.
    1. Adicione a variável address no campo Para.
    2. Adicione a expressão arrayText(2) no campo Valor.
  11. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável city no campo Para.
    2. Adicione a expressão arrayText(3).Split(","c)(0) no campo Valor.
  12. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável phoneNumber no campo Para.
    2. Adicione a expressão arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0) no campo Valor.
  13. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável invoiceNumber no campo Para.
    2. Adicione a expressão arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1) no campo Valor.
  14. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável vendor no campo Para.
    2. Adicione a expressão arrayText(arrayText.Count-5) no campo Valor.
  15. Adicione uma atividade Assign dentro do campo Else.
    1. Adicione a variável address no campo Para.
    2. Adicione a expressão arrayText(1) no campo Valor.
  16. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável city no campo Para.
    2. Adicione a expressão arrayText(2).Split(","c)(0) no campo Valor.
  17. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável phoneNumber no campo Para.
    2. Adicione a expressão arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0) no campo Valor.
  18. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável invoiceNumber no campo Para.
    2. Adicione a expressão arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1) no campo Valor.
  19. Adicione outra atividade Assign e coloque-a após a anterior.
    1. Adicione a variável vendor no campo Para.
    2. 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

  20. Coloque uma atividade For Each após o contêiner If.
    1. Adicione a variável arrayText no campo Valor.
  21. Adicione uma atividade If dentro do contêiner Corpo da atividade For Each.
    1. Adicione a expressão item.Contains("Bank Name:") no campo Condição.
  22. Adicione uma atividade Assign dentro do campo Then.
    1. Adicione a variável bankName no campo Para.
    2. Adicione a expressão item.Split(":"c)(1) no campo Valor.
  23. Adicione uma atividade If após a anterior.
    1. Adicione a expressão item.Contains("Bank Account:") no campo Condição.
  24. Adicione uma atividade Assign dentro do campo Then.
    1. Adicione a variável bankName no campo Para.
    2. Adicione a expressão item.Split(":"c)(1) no campo Valor.
  25. Adicione uma atividade If após a anterior.
    1. Adicione a expressão item.contains("IBAN Code:") no campo Condição.
  26. Adicione uma atividade Assign dentro do campo Then.
    1. Adicione a variável ibanCode no campo Para.
    2. Adicione a expressão item.Split(":"c)(1) no campo Valor.
      Figura 3. Visão geral da atividade For Each

  27. Retorne à sequência Read PDF Text e adicione uma atividade Write Text File abaixo da atividade For Each.
    1. Adicione o valor"InvoiceDetails.txt" no campo FileName .
    2. 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

  28. Retorne à área de trabalho do fluxo de trabalho principal .
  29. Leia um arquivo PDF usando a atividade Read PDF with OCR.
    1. Abra o contêiner de sequência Read PDF with OCR.
    2. Arraste uma atividade Ler PDF com OCR dentro da sequência.
      1. Adicione o valor "Invoice02.pdf" no campo FileName .
      2. No painel Propriedades, adicione o valor 1 no campo GrauDeParalelismo.
    3. Arraste o mecanismo de OCR do Google para dentro da atividade Ler PDF com OCR .
      1. No painel Propriedades , adicione a variável extractedTextTesseract no campo Texto .
    4. Arraste outra atividade Read PDF with OCR e coloque-a após a anterior.
      1. Adicione o valor "Invoice02.pdf" no campo FileName .
      2. No painel Propriedades, adicione o valor 1 no campo GrauDeParalelismo.
    5. Arraste o mecanismo Microsoft OCR para dentro da atividade Ler PDF com OCR .
      1. No painel Propriedades , adicione a variável extractedTextMicrosoft no campo Texto .
    6. Arraste uma atividade Escrever arquivo de texto abaixo da atividade Ler PDF com OCR .
      1. Adicione o valor "OCRMicrosoft.txt" no campo FileName .
      2. Adicione a variável extractedTextMicrosoft no campo Texto.
    7. Arraste uma atividade Gravar arquivo de texto para baixo da atividade anterior Gravar arquivo de texto .
      1. Adicione o valor "OCRTesseract.txt" no campo FileName .
      2. Adicione a variável extractedTextTesseract no campo Texto.
        Figura 5. Visão geral da atividade Read PDF with OCR

  30. Execute o processo. O robô extrai os dados usando o processo especificado e salva a saída em um arquivo .txt .
Acesse o link a seguir para baixar o exemplo como um formato ZIP: Exemplo.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.