Extrair dados de PDF usando API REST em Node.js

Extraindo dados de PDF usando API REST em Node.js

Podemos facilmente analisar documentos PDF e extrair dados específicos usando um modelo definido pelo usuário na nuvem. Podemos extrair campos e dados de tabelas de arquivos PDF programaticamente. Neste artigo, aprenderemos como extrair dados de PDF usando a API REST no Node.js.

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

API REST e SDK Node.js para extrair dados de PDF

Para analisar documentos PDF e extrair dados com base em um modelo, usaremos a API Node.js SDK of GroupDocs.Parser Cloud. Ele também permite a análise de outros tipos de documento suportados e a extração de texto, imagens e dados específicos usando um modelo. Instale-o usando o seguinte comando no console:

npm install groupdocs-parser-cloud

Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

// Este exemplo de código demonstra como adicionar seu ID e Segredo do 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";

Extraia dados usando o arquivo de modelo baseado em JSON no Node.js

Podemos extrair dados de documentos PDF usando um modelo seguindo as etapas simples abaixo:

Carregue o Documento

Em primeiro lugar, faremos o upload do documento PDF para a nuvem para raspar o pdf usando o exemplo de código fornecido abaixo:

// Este exemplo de código demonstra como carregar um documento PDF na nuvem.
// Construir FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Ler arquivo
fs.readFile(file, (err, fileStream) => {
  // Solicitação de upload de arquivo
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Subir arquivo
  fileApi.uploadFile(request);
});

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

Extrair dados de PDF usando arquivo de modelo baseado em JSON

Podemos analisar o documento PDF e extrair dados usando um arquivo de modelo baseado em JSON seguindo as etapas abaixo:

  1. Crie uma instância do ParseApi.
  2. Forneça o caminho do arquivo PDF carregado.
  3. Defina o caminho para o arquivo JSON de modelo.
  4. Finalmente, analise o documento e extraia os dados.

A amostra de código a seguir mostra como extrair dados de acordo com o modelo fornecido no arquivo JSON usando uma API REST.

// Este exemplo de código demonstra como analisar um documento PDF por um modelo baseado em JSON.
// Criar uma instância da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Criar opções de análise
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Criar solicitação de análise
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Analisar o documento
let response = await parseApi.parse(request);

// Saída de exibição
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);
    });
  }
});

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
          }
        }
      }
    }
  ]
}

Extrair dados usando o objeto de modelo no Node.js

Podemos extrair dados de um arquivo PDF com base no modelo definido como um objeto seguindo as etapas abaixo:

  1. Crie uma instância do ParseApi.
  2. Forneça o caminho do arquivo PDF carregado.
  3. Inicialize um modelo como um objeto.
  4. Finalmente, analise o documento e extraia os dados.

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. Siga as etapas mencionadas anteriormente para fazer o upload do arquivo.

// Este exemplo de código demonstra como analisar um documento PDF por objeto Template.
// Inicialização da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

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

// Definir opções de análise
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Obter objeto de modelo
options.template = GetTemplate();

// Criar solicitação de análise
let request = new groupdocs_parser_cloud.ParseRequest(options);
// Passe o 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);
    });
  }
});

Encontre abaixo o objeto de modelo criado de acordo com o documento PDF para extrair dados do pdf.

// Este exemplo de código demonstra um objeto de modelo.
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;
Extrair dados usando o objeto de modelo no Node.js

Extrair dados usando o objeto de modelo no Node.js

Analisar o documento dentro do contêiner usando o modelo no Node.js

Também podemos analisar o documento PDF disponível dentro do contêiner e extrair dados usando o objeto de modelo. Siga as etapas mencionadas abaixo para analisar o documento e extrair dados do PDF digitalizado dentro de um contêiner.

  1. Crie uma instância do ParseApi.
  2. Forneça o caminho do arquivo compactado carregado.
  3. Inicialize um modelo como um objeto.
  4. Forneça o item do contêiner.
  5. Finalmente, analise o documento e extraia os dados.

O exemplo de código a seguir mostra como analisar um documento PDF dentro de um arquivo ZIP usando uma API REST. Siga as etapas mencionadas anteriormente para fazer upload dos arquivos e extrair informações do pdf.

// Este exemplo de código demonstra como analisar um documento PDF disponível dentro do contêiner.
// Inicialização da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Criar opções de análise
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Obter objeto de modelo
options.template = GetTemplate();

// Informações do item do contêiner
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Criar solicitação de análise
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Criar solicitação
let response = await parseApi.parse(request);

// Saída de exibição
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);
    });
  }
});

Experimente on-line

Experimente a seguinte ferramenta de análise de PDF on-line gratuita para extração de dados em PDF on-line. Este extrator de conteúdo pdf é desenvolvido usando a API acima. https://products.groupdocs.app/parser/pdf

Conclusão

Neste artigo, aprendemos como extrair dados específicos de documentos PDF de acordo com o modelo fornecido na nuvem. Também vimos como criar um objeto de modelo ou usar um modelo no formato JSON. Agora você sabe como extrair informações de PDF usando a API de raspagem de PDF e o extrator de dados de PDF gratuito. Além disso, 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 que você visualize e interaja com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também