Извлечение данных из PDF с помощью REST API в Node.js

Извлечение данных из PDF с использованием REST API в Node.js

Мы можем легко анализировать документы PDF и извлекать определенные данные, используя пользовательский шаблон в облаке. Мы можем программно извлекать поля и табличные данные из файлов PDF. В этой статье мы узнаем, как извлекать данные из PDF с помощью REST API в Node.js.

В этой статье должны быть раскрыты следующие темы:

REST API и Node.js SDK для извлечения данных из PDF

Для анализа PDF-документов и извлечения данных на основе шаблона мы будем использовать API Node.js SDK для GroupDocs.Parser Cloud. Он также позволяет анализировать другие поддерживаемые типы документов и извлекать текст, изображения и определенные данные с использованием шаблона. Пожалуйста, установите его с помощью следующей команды в консоли:

npm install groupdocs-parser-cloud

Пожалуйста, получите свой идентификатор клиента и секрет из панели инструментов, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет.
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";

Извлечение данных с использованием файла шаблона на основе JSON в Node.js

Мы можем извлечь данные из документов PDF с помощью шаблона, выполнив простые шаги, указанные ниже:

Загрузить документ

Во-первых, мы загрузим PDF-документ в облако для очистки PDF-файла, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загрузить PDF-документ в облако.
// Создать FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Прочитать файл
fs.readFile(file, (err, fileStream) => {
  // Запрос на загрузку файла
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Загрузить файл
  fileApi.uploadFile(request);
});

В результате загруженный PDF-файл будет доступен в разделе файлов панели инструментов в облаке.

Извлечение данных из PDF с использованием файла шаблона на основе JSON

Мы можем проанализировать документ PDF и извлечь данные, используя файл шаблона на основе JSON, выполнив следующие шаги:

  1. Создайте экземпляр ParseApi.
  2. Укажите путь к загруженному файлу PDF.
  3. Укажите путь к JSON-файлу шаблона.
  4. Наконец, проанализируйте документ и извлеките данные.

В следующем примере кода показано, как извлечь данные в соответствии с шаблоном, представленным в файле JSON, с помощью REST API.

// В этом примере кода показано, как анализировать PDF-документ с помощью шаблона на основе JSON.
// Создайте экземпляр API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Путь к входному файлу
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Создать параметры разбора
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Создать запрос на синтаксический анализ
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Разобрать документ
let response = await parseApi.parse(request);

// Вывод дисплея
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);
    });
  }
});

Пожалуйста, найдите ниже шаблон в формате 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
          }
        }
      }
    }
  ]
}

Извлечение данных с использованием объекта шаблона в Node.js

Мы можем извлечь данные из файла PDF на основе шаблона, определенного как объект, выполнив следующие шаги:

  1. Создайте экземпляр ParseApi.
  2. Укажите путь к загруженному файлу PDF.
  3. Инициализируйте шаблон как объект.
  4. Наконец, проанализируйте документ и извлеките данные.

В следующем примере кода показано, как извлечь данные в соответствии с определенным шаблоном из документа PDF с помощью REST API. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить файл.

// В этом примере кода показано, как выполнить синтаксический анализ документа PDF с помощью объекта Template.
// Инициализация API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Входной файл
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "companies.pdf";

// Определить параметры синтаксического анализа
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Получить объект шаблона
options.template = GetTemplate();

// Создать запрос на разбор
let request = new groupdocs_parser_cloud.ParseRequest(options);
// Разобрать документ
let result = await parseApi.parse(request);

// Показать результаты
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);
    });
  }
});

Ниже вы найдете объект шаблона, созданный в соответствии с документом PDF для извлечения данных из pdf.

// В этом примере кода демонстрируется объект шаблона.
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;
Извлечение данных с использованием объекта шаблона в Node.js

Извлечение данных с использованием объекта шаблона в Node.js

Анализ документа внутри контейнера с использованием шаблона в Node.js

Мы также можем анализировать PDF-документ, доступный внутри контейнера, и извлекать данные с помощью объекта шаблона. Пожалуйста, следуйте шагам, указанным ниже, чтобы проанализировать документ и извлечь данные из отсканированного PDF-файла внутри контейнера.

  1. Создайте экземпляр ParseApi.
  2. Укажите путь к файлу загруженного архива.
  3. Инициализируйте шаблон как объект.
  4. Предоставьте элемент контейнера.
  5. Наконец, проанализируйте документ и извлеките данные.

В следующем примере кода показано, как анализировать PDF-документ внутри ZIP-архива с помощью REST API. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить файлы и извлечь информацию из pdf.

// В этом примере кода показано, как анализировать PDF-документ, доступный внутри контейнера.
// Инициализация API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Путь к входному файлу
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Создать параметры синтаксического анализа
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Получить объект шаблона
options.template = GetTemplate();

// Информация о контейнере
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Создать запрос на разбор
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Создать запрос
let response = await parseApi.parse(request);

// Вывод дисплея
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);
    });
  }
});

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для анализа PDF-файлов для извлечения данных из PDF-файлов в Интернете. Этот экстрактор содержимого PDF разработан с использованием вышеуказанного API. https://products.groupdocs.app/parser/pdf

Заключение

В этой статье мы узнали, как извлекать определенные данные из документов PDF в соответствии с предоставленным шаблоном в облаке. Мы также увидели, как создать объект шаблона или использовать шаблон в формате JSON. Теперь вы знаете, как извлечь информацию из pdf с помощью API скребка pdf и бесплатного экстрактора данных PDF. Кроме того, вы можете узнать больше о GroupDocs.Parser Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также