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
- Extrair dados por objeto de modelo usando Python
- Extrair dados por arquivo de modelo usando Python
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:
- Carregar o arquivo PDF para a nuvem
- Extração de dados baseada em modelo usando Python
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.
- Crie uma instância do ParseApi
- Defina ParseOptions e defina o caminho para o arquivo PDF
- Criar modelo como um objeto
- Criar pedido de análise
- 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
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.
- Crie uma instância do ParseApi
- Definir opções de análise
- Definir o caminho para o arquivo PDF
- Defina o caminho para o arquivo de modelo
- Criar pedido de análise
- 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