Extraia dados de pdf digitalizado ou raspagem de pdf usando o extrator de página pdf online.

Como extrair dados de PDF usando Python

Pode ser necessário extrair dados de seus documentos PDF ou Word usando um modelo definido pelo usuário. Você pode analisar qualquer documento e extrair campos e dados de tabela programaticamente na nuvem. Este artigo explicará como extrair dados específicos de documentos PDF usando uma API REST em Python.

Os seguintes tópicos serão abordados neste artigo:

API REST do analisador de documentos e SDK do Python

Para analisar um documento PDF e extrair dados com base em um modelo, usarei a API Python SDK of GroupDocs.Parser Cloud. Ele permite analisar dados de todos os tipos de documentos populares, como documentos PDF, documentos do Microsoft Office e formatos de arquivo OpenDocument. Você pode extrair texto, imagens e analisar dados por um modelo usando o SDK. Ele também fornece SDKs .NET, Java, PHP, Ruby e Node.js como seus membros da família de analisadores de documentos para a Cloud API.

Você pode instalar o GroupDocs.Parser Cloud em seu projeto Python com pip (package installer for python) usando o seguinte comando no console para extrair informações do pdf:

pip install groupdocs_parser_cloud

Obtenha seu Client ID e Client Secret no dashboard e adicione o código conforme mostrado abaixo:

client_id = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5"
client_secret = "479db2b01dcb93a3d4d20efb16dea971"

configuration = groupdocs_parser_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Extrair dados por objeto de modelo usando Python

Você pode extrair dados de documentos PDF usando um modelo seguindo as etapas simples mencionadas abaixo:

Carregue o Documento

Em primeiro lugar, carregue o documento PDF na nuvem usando o exemplo de código abaixo:

# Criar instância da API
file_api = groupdocs_parser_cloud.FileApi.from_config(configuration)

# fazer upload de arquivos de amostra
request = groupdocs_parser_cloud.UploadFileRequest("companies.pdf", "C:\\Files\\companies.pdf", my_storage)
response = file_api.upload_file(request)

Como resultado, o arquivo PDF carregado estará disponível na seção de arquivos do seu painel na nuvem.

Extração de dados baseada em modelo usando Python

Siga as etapas mencionadas abaixo para extrair dados do arquivo PDF com base no modelo de forma programática.

  1. Crie uma instância do ParseApi
  2. Defina ParseOptions e defina o caminho para o arquivo PDF
  3. Criar modelo como um objeto
  4. Criar pedido de análise
  5. Obtenha resultados chamando o método ParseApi.parse()

A amostra de código a seguir mostra como extrair dados de acordo com o modelo definido de um documento PDF usando uma API REST.

# inicialização da API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# definir opções de análise
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"

# Obter objeto de modelo
options.template = GetTemplate()  

# pedido de análise
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Mostrar resultados
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Veja abaixo o modelo criado de acordo com o documento PDF.

def GetTemplate():
        field1 = groupdocs_parser_cloud.Field()
        field1.field_name = "Address"
        fieldPosition1 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition1.field_position_type = "Regex"
        fieldPosition1.regex = "Company address:"
        field1.field_position = fieldPosition1

        field2 = groupdocs_parser_cloud.Field()
        field2.field_name = "CompanyAddress"
        fieldPosition2 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition2.field_position_type = "Linked"
        fieldPosition2.linked_field_name = "ADDRESS"
        fieldPosition2.is_right_linked = True
        size2 = groupdocs_parser_cloud.Size()
        size2.width = 100
        size2.height = 10
        fieldPosition2.search_area = size2
        fieldPosition2.auto_scale = True
        field2.field_position = fieldPosition2
        
        field3 = groupdocs_parser_cloud.Field()
        field3.field_name = "Company"
        fieldPosition3 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition3.field_position_type = "Regex"
        fieldPosition3.regex = "Company name:"
        field3.field_position = fieldPosition3
        
        field4 = groupdocs_parser_cloud.Field()
        field4.field_name = "CompanyName"
        fieldPosition4 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition4.field_position_type = "Linked"
        fieldPosition4.linked_field_name = "Company"
        fieldPosition4.is_right_linked = True
        size4 = groupdocs_parser_cloud.Size()
        size4.width = 100
        size4.height = 10
        fieldPosition4.search_area = size4
        fieldPosition4.auto_scale = True
        field4.field_position = fieldPosition4
        
        table = groupdocs_parser_cloud.Table()
        table.table_name = "Companies"
        detectorparams = groupdocs_parser_cloud.DetectorParameters()
        rect = groupdocs_parser_cloud.Rectangle()
        size = groupdocs_parser_cloud.Size()
        size.height = 60
        size.width = 480
        position = groupdocs_parser_cloud.Point()
        position.x = 77
        position.y = 279
        rect.size = size
        rect.position = position
        detectorparams.rectangle = rect
        table.detector_parameters = detectorparams
        
        fields = [field1, field2, field3, field4]
        tables = [table]
        
        template = groupdocs_parser_cloud.Template()
        template.fields = fields
        template.tables = tables
        return template
Dados extraídos analisando um documento usando modelo

Dados extraídos analisando um documento usando modelo

Extrair dados por arquivo de modelo usando Python

Você também pode extrair dados do documento PDF fornecendo um arquivo de modelo baseado em JSON programaticamente. Siga as etapas mencionadas abaixo para analisar o documento fornecendo um arquivo de modelo.

  1. Crie uma instância do ParseApi
  2. Definir opções de análise
  3. Definir o caminho para o arquivo PDF
  4. Defina o caminho para o arquivo de modelo
  5. Criar pedido de análise
  6. Obtenha resultados chamando o método ParseApi.parse()

O exemplo de código a seguir mostra como analisar um documento PDF e extrair dados de acordo com o modelo fornecido no arquivo JSON usando uma API REST. Siga as etapas mencionadas anteriormente para fazer o upload dos arquivos.

# inicialização da API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# definir opções de análise
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
options.template_path = "template.json"

# pedido de análise
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Mostrar resultados
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Por favor, encontre abaixo o modelo no formato JSON.

{
  "Fields": [
    {
      "FieldName": "Address",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyaddress:"
      }
    },
    {
      "FieldName": "CompanyAddress",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "ADDRESS",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    },
    {
      "FieldName": "Company",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyname:"
      }
    },
    {
      "FieldName": "CompanyName",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "Company",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    }
  ],
  "Tables": [
    {
      "TableName": "Companies",
      "DetectorParameters": {
        "Rectangle": {
          "Position": {
            "X": 77.0,
            "Y": 279.0
          },
          "Size": {
            "Height": 41.0,
            "Width": 480.0
          }
        }
      }
    }
  ]
}

Extraia o arquivo PDF online

Como usar o extrator de PDF online grátis? Experimente a seguinte ferramenta de análise de PDF on-line gratuita e extrator de página de PDF gratuito. Este extrator de pdf on-line e a ferramenta gratuita on-line de extração de pdf são desenvolvidos usando a API acima. https://products.groupdocs.app/parser/pdf

Conclusão

Neste artigo, você aprendeu como extrair dados específicos de documentos PDF de acordo com o modelo fornecido na nuvem. Você também aprendeu como criar um objeto de modelo e fornecer um modelo em formato JSON. Este artigo também explicou como carregar programaticamente um arquivo PDF na nuvem para extração de dados PDF online. Você pode aprender mais sobre GroupDocs.Parser Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador.

Faça uma pergunta

Se você tiver alguma dúvida sobre a extração de dados de pdf e extração de dados de pdf on-line, sinta-se à vontade para nos perguntar no Fórum de suporte gratuito

Veja também