Extraiga datos de pdf escaneado o raspado de pdf usando el extractor de páginas pdf en línea.

Cómo extraer datos de PDF usando Python

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

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:

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.

  1. Crear una instancia de ParseApi
  2. Defina ParseOptions y establezca la ruta al archivo PDF
  3. Crear plantilla como un objeto
  4. Crear solicitud de análisis
  5. 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
Datos extraídos al analizar un documento usando una plantilla

Datos extraídos al analizar un documento usando una plantilla

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.

  1. Crear una instancia de ParseApi
  2. Definir opciones de análisis
  3. Establecer la ruta al archivo PDF
  4. Establecer la ruta al archivo de plantilla
  5. Crear solicitud de análisis
  6. 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

Ver también