Es posible que deba extraer datos de sus documentos PDF o Word utilizando una plantilla definida por el usuario. Puede analizar cualquier documento y extraer campos y datos de tablas mediante programación en la nube. Este artículo explicará cómo extraer datos específicos de documentos PDF utilizando una API REST en Python.
En este artículo se tratarán los siguientes temas:
- API REST del analizador de documentos y SDK de Python
- Extraer datos por objeto de plantilla usando Python
- Extraer datos por archivo de plantilla usando Python
API REST del analizador de documentos y SDK de Python
Para analizar un documento PDF y extraer datos basados en una plantilla, utilizaré la API Python SDK de GroupDocs.Parser Cloud. Le permite analizar datos de todos los tipos de documentos populares, como documentos PDF, documentos de Microsoft Office y formatos de archivo OpenDocument. Puede extraer texto, imágenes y analizar datos mediante una plantilla utilizando el SDK. También proporciona SDK de .NET, Java, PHP, Ruby y Node.js como sus miembros de la familia de analizadores de documentos para la API de Cloud.
Puede instalar GroupDocs.Parser Cloud en su proyecto de Python con pip (instalador de paquetes para python) usando el siguiente comando en la consola para extraer información del pdf:
pip install groupdocs_parser_cloud
Obtenga su ID de cliente y Secreto de cliente del panel de control y agregue el código como se muestra a continuación:
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 = ""
Extraer datos por objeto de plantilla usando Python
Puede extraer datos de documentos PDF utilizando una plantilla siguiendo los sencillos pasos que se mencionan a continuación:
- Subir el archivo PDF a la Nube
- Extracción de datos basada en plantillas usando Python
Sube el documento
En primer lugar, cargue el documento PDF en la nube utilizando el ejemplo de código que se muestra a continuación:
# Crear instancia de la API
file_api = groupdocs_parser_cloud.FileApi.from_config(configuration)
# subir archivos de muestra
request = groupdocs_parser_cloud.UploadFileRequest("companies.pdf", "C:\\Files\\companies.pdf", my_storage)
response = file_api.upload_file(request)
Como resultado, el archivo PDF cargado estará disponible en la sección de archivos de su tablero en la nube.
Extracción de datos basada en plantillas usando Python
Siga los pasos que se mencionan a continuación para extraer datos del archivo PDF en función de la plantilla mediante programación.
- Crear una instancia de ParseApi
- Defina ParseOptions y establezca la ruta al archivo PDF
- Crear plantilla como un objeto
- Crear solicitud de análisis
- Obtenga resultados llamando al método ParseApi.parse()
El siguiente ejemplo de código muestra cómo extraer datos de acuerdo con la plantilla definida de un documento PDF utilizando una API REST.
# inicialización de la API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)
# definir opciones de análisis
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
# Obtener objeto de plantilla
options.template = GetTemplate()
# solicitud de análisis
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);
A continuación encontrará la plantilla creada de acuerdo con el 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
Extraer datos por archivo de plantilla usando Python
También puede extraer datos del documento PDF proporcionando un archivo de plantilla basado en JSON mediante programación. Siga los pasos que se mencionan a continuación para analizar el documento proporcionando un archivo de plantilla.
- Crear una instancia de ParseApi
- Definir opciones de análisis
- Establecer la ruta al archivo PDF
- Establecer la ruta al archivo de plantilla
- Crear solicitud de análisis
- Obtenga resultados llamando al método ParseApi.parse()
El siguiente ejemplo de código muestra cómo analizar un documento PDF y extraer datos de acuerdo con la plantilla proporcionada en el archivo JSON mediante una API REST. Siga los pasos mencionados anteriormente para cargar los archivos.
# inicialización de la API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)
# definir opciones de análisis
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
options.template_path = "template.json"
# solicitud de análisis
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);
A continuación encontrará la plantilla en 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
}
}
}
}
]
}
Extraiga el archivo PDF en línea
¿Cómo usar el extractor de pdf en línea gratis? Pruebe la siguiente herramienta gratuita de análisis de PDF en línea y el extractor gratuito de páginas PDF. Este extractor de pdf en línea y la herramienta gratuita de extracción de pdf en línea se desarrollan utilizando la API anterior. https://products.groupdocs.app/parser/pdf
Conclusión
En este artículo, aprendió cómo extraer datos específicos de documentos PDF de acuerdo con la plantilla provista en la nube. También aprendió cómo crear un objeto de plantilla y proporcionar una plantilla en formato JSON. Este artículo también explicó cómo cargar mediante programación un archivo PDF en la nube para la extracción de datos PDF en línea. Puede obtener más información sobre GroupDocs.Parser Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador.
Hacer una pregunta
Si tiene alguna consulta sobre la extracción de datos de pdf y la extracción de datos de pdf en línea, no dude en consultarnos en Foro de soporte gratuito