Extraiga datos de PDF usando REST API en Node.js

Extracción de datos de PDF usando REST API en Node.js

Podemos analizar fácilmente documentos PDF y extraer datos específicos utilizando una plantilla definida por el usuario en la nube. Podemos extraer campos y datos de tablas de archivos PDF mediante programación. En este artículo, aprenderemos cómo extraer datos de un PDF usando la API REST en Node.js.

En este artículo se tratarán los siguientes temas:

REST API y Node.js SDK para extraer datos de PDF

Para analizar documentos PDF y extraer datos basados en una plantilla, utilizaremos la API Node.js SDK de GroupDocs.Parser Cloud. También permite el análisis de otros tipos de documentos admitidos y la extracción de texto, imágenes y datos específicos mediante una plantilla. Instálalo usando el siguiente comando en la consola:

npm install groupdocs-parser-cloud

Por favor, obtenga su ID de cliente y secreto del tablero antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

// Este ejemplo de código demuestra cómo agregar su ID y secreto de cliente.
global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";

global.myStorage = "";

const configuration = new groupdocs_parser_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Extraiga datos utilizando un archivo de plantilla basado en JSON en Node.js

Podemos extraer datos de documentos PDF utilizando una plantilla siguiendo los sencillos pasos que se indican a continuación:

Sube el documento

En primer lugar, cargaremos el documento PDF en la nube para raspar el pdf utilizando el ejemplo de código que se proporciona a continuación:

// Este ejemplo de código demuestra cómo cargar un documento PDF en la nube.
// Construir FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Leer archivo
fs.readFile(file, (err, fileStream) => {
  // Subir solicitud de archivo
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Subir archivo
  fileApi.uploadFile(request);
});

Como resultado, el archivo PDF cargado estará disponible en la sección de archivos del tablero en la nube.

Extraiga datos de PDF utilizando un archivo de plantilla basado en JSON

Podemos analizar el documento PDF y extraer datos utilizando un archivo de plantilla basado en JSON siguiendo los pasos que se detallan a continuación:

  1. Cree una instancia de ParseApi.
  2. Proporcione la ruta del archivo PDF cargado.
  3. Establezca la ruta al archivo JSON de la plantilla.
  4. Finalmente, analice el documento y extraiga los datos.

El siguiente ejemplo de código muestra cómo extraer datos de acuerdo con la plantilla proporcionada en el archivo JSON mediante una API REST.

// Este ejemplo de código demuestra cómo analizar un documento PDF mediante una plantilla basada en JSON.
// Crear una instancia de la API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Ruta del archivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Crear opciones de análisis
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Crear solicitud de análisis
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Analizar el documento
let response = await parseApi.parse(request);

// Salida de pantalla
response.fieldsData.forEach(data => {
  if (data.pageArea.pageTextArea != null) {
    console.log("Field name: " + data.name + ". Text :" + data.pageArea.pageTextArea.text);
  }

  if (data.pageArea.pageTableArea != null) {
    console.log("Table name: " + data.name);

    data.pageArea.pageTableArea.pageTableAreaCells.forEach(cell => {
      console.log("Table cell. Row " + cell.rowIndex + " column " + cell.columnIndex + ". Text: " + cell.pageArea.pageTextArea.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
          }
        }
      }
    }
  ]
}

Extraer datos usando un objeto de plantilla en Node.js

Podemos extraer datos de un archivo PDF en función de la plantilla definida como objeto siguiendo los pasos que se detallan a continuación:

  1. Cree una instancia de ParseApi.
  2. Proporcione la ruta del archivo PDF cargado.
  3. Inicialice una Plantilla como un objeto.
  4. Finalmente, analice el documento y extraiga los datos.

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. Siga los pasos mencionados anteriormente para cargar el archivo.

// Este ejemplo de código demuestra cómo analizar un documento PDF por objeto Plantilla.
// Inicialización de la API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Fichero de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "companies.pdf";

// Definir opciones de análisis
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Obtener objeto de plantilla
options.template = GetTemplate();

// Crear solicitud de análisis
let request = new groupdocs_parser_cloud.ParseRequest(options);
// Pase el documento
let result = await parseApi.parse(request);

// Mostrar resultados
result.fieldsData.forEach(data => {
  if (data.pageArea.pageTextArea != null) {
    console.log("Field name: " + data.name + ". Text :" + data.pageArea.pageTextArea.text);
  }

  if (data.pageArea.pageTableArea != null) {
    console.log("Table name: " + data.name);

    data.pageArea.pageTableArea.pageTableAreaCells.forEach(cell => {
      console.log("Table cell. Row " + cell.rowIndex + " column " + cell.columnIndex + ". Text: " + cell.pageArea.pageTextArea.text);
    });
  }
});

Encuentre a continuación el objeto de plantilla creado de acuerdo con el documento PDF para extraer datos de pdf.

// Este ejemplo de código muestra un objeto de plantilla.
let field1 = new groupdocs_parser_cloud.Field();
field1.fieldName = "Address";
let fieldPosition1 = new groupdocs_parser_cloud.FieldPosition();
fieldPosition1.fieldPositionType = "Regex";
fieldPosition1.regex = "Company address:";
field1.fieldPosition = fieldPosition1;

let field2 = new groupdocs_parser_cloud.Field();
field2.fieldName = "CompanyAddress";
let fieldPosition2 = new groupdocs_parser_cloud.FieldPosition();
fieldPosition2.fieldPositionType = "Linked";
fieldPosition2.linkedFieldName = "ADDRESS";
fieldPosition2.isRightLinked = true;
let size2 = new groupdocs_parser_cloud.Size();
size2.width = 100;
size2.height = 10;
fieldPosition2.searchArea = size2;
fieldPosition2.autoScale = true;
field2.fieldPosition = fieldPosition2;

let field3 = new groupdocs_parser_cloud.Field();
field3.fieldName = "Company";
let fieldPosition3 = new groupdocs_parser_cloud.FieldPosition();
fieldPosition3.fieldPositionType = "Regex";
fieldPosition3.regex = "Company name:";
field3.fieldPosition = fieldPosition3;

let field4 = new groupdocs_parser_cloud.Field();
field4.fieldName = "CompanyName";
let fieldPosition4 = new groupdocs_parser_cloud.FieldPosition();
fieldPosition4.fieldPositionType = "Linked";
fieldPosition4.linkedFieldName = "Company";
fieldPosition4.isRightLinked = true;
let size4 = new groupdocs_parser_cloud.Size();
size4.width = 100;
size4.height = 10;
fieldPosition4.searchArea = size4;
fieldPosition4.autoScale = true;
field4.fieldPosition = fieldPosition4;

let table = new groupdocs_parser_cloud.Table();
table.tableName = "Companies";
let detectorparams = new groupdocs_parser_cloud.DetectorParameters();
let rect = new groupdocs_parser_cloud.Rectangle();
let size = new groupdocs_parser_cloud.Size();
size.height = 60;
size.width = 480;
let position = new groupdocs_parser_cloud.Point();
position.x = 77;
position.y = 279;
rect.size = size;
rect.position = position;
detectorparams.rectangle = rect;
table.detectorParameters = detectorparams;

let fields = [field1, field2, field3, field4];
let tables = [table];
let template = new groupdocs_parser_cloud.Template();
template.fields = fields;
template.tables = tables;

return template;
Extraer datos usando un objeto de plantilla en Node.js

Extraer datos usando un objeto de plantilla en Node.js

Analizar documento dentro del contenedor usando plantilla en Node.js

También podemos analizar el documento PDF disponible dentro del contenedor y extraer datos utilizando el objeto de plantilla. Siga los pasos que se mencionan a continuación para analizar el documento y extraer datos del pdf escaneado dentro de un contenedor.

  1. Cree una instancia de ParseApi.
  2. Proporcione la ruta del archivo comprimido cargado.
  3. Inicialice una Plantilla como un objeto.
  4. Proporcione el artículo del contenedor.
  5. Finalmente, analice el documento y extraiga los datos.

El siguiente ejemplo de código muestra cómo analizar un documento PDF dentro de un archivo ZIP mediante una API REST. Siga los pasos mencionados anteriormente para cargar los archivos y extraer información del pdf.

// Este ejemplo de código demuestra cómo analizar un documento PDF disponible dentro del contenedor.
// Inicialización de la API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Ruta del archivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Crear opciones de análisis
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Obtener objeto de plantilla
options.template = GetTemplate();

// Información del artículo del contenedor
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Crear solicitud de análisis
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Crear solicitud
let response = await parseApi.parse(request);

// Salida de pantalla
response.fieldsData.forEach(data => {
  if (data.pageArea.pageTextArea != null) {
    console.log("Field name: " + data.name + ". Text :" + data.pageArea.pageTextArea.text);
  }

  if (data.pageArea.pageTableArea != null) {
    console.log("Table name: " + data.name);

    data.pageArea.pageTableArea.pageTableAreaCells.forEach(cell => {
      console.log("Table cell. Row " + cell.rowIndex + " column " + cell.columnIndex + ". Text: " + cell.pageArea.pageTextArea.text);
    });
  }
});

Prueba en línea

Pruebe la siguiente herramienta gratuita de análisis de PDF en línea para la extracción de datos PDF en línea. Este extractor de contenido pdf se desarrolla utilizando la API anterior. https://products.groupdocs.app/parser/pdf

Conclusión

En este artículo, hemos aprendido cómo extraer datos específicos de documentos PDF de acuerdo con la plantilla proporcionada en la nube. También hemos visto cómo crear un objeto de plantilla o usar una plantilla en formato JSON. Ahora sabe cómo extraer información de pdf utilizando la API de raspador de pdf y el extractor de datos de PDF gratuito. Además, 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. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también