Видобувайте дані з 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
          }
        }
      }
    }
  ]
}

Видобуток даних за допомогою Template Object у 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;
Видобуток даних за допомогою Template Object у Node.js

Видобуток даних за допомогою Template Object у 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 Reference, який дозволяє візуалізувати наші API та взаємодіяти з ними безпосередньо через браузер. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також