Trích xuất dữ liệu từ PDF bằng API REST trong Node.js

Trích xuất dữ liệu từ PDF bằng API REST trong Node.js

Chúng tôi có thể dễ dàng phân tích cú pháp tài liệu PDF và trích xuất dữ liệu cụ thể bằng mẫu do người dùng xác định trên đám mây. Chúng tôi có thể trích xuất các trường và dữ liệu bảng từ các tệp PDF theo chương trình. Trong bài viết này, chúng ta sẽ tìm hiểu cách trích xuất dữ liệu từ PDF bằng API REST trong Node.js.

Các chủ đề sau đây sẽ được đề cập trong bài viết này:

API REST và SDK Node.js để trích xuất dữ liệu từ PDF

Để phân tích cú pháp tài liệu PDF và trích xuất dữ liệu dựa trên mẫu, chúng tôi sẽ sử dụng API Node.js SDK của GroupDocs.Parser Cloud. Nó cũng cho phép phân tích cú pháp [các loại tài liệu được hỗ trợ] khác 3 và trích xuất văn bản, hình ảnh và dữ liệu cụ thể bằng mẫu. Vui lòng cài đặt nó bằng lệnh sau trong bảng điều khiển:

npm install groupdocs-parser-cloud

Vui lòng lấy Client ID và Secret của bạn từ bảng điều khiển trước khi làm theo các bước được đề cập. Khi bạn có ID và bí mật của mình, hãy thêm mã như hình bên dưới:

// Ví dụ về mã này trình bày cách thêm ID khách hàng và Bí mật của bạn.
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";

Trích xuất dữ liệu bằng Tệp mẫu dựa trên JSON trong Node.js

Chúng tôi có thể trích xuất dữ liệu từ tài liệu PDF bằng mẫu bằng cách thực hiện theo các bước đơn giản dưới đây:

Tải lên tài liệu

Đầu tiên, chúng tôi sẽ tải tài liệu PDF lên đám mây để quét pdf bằng cách sử dụng mẫu mã được cung cấp bên dưới:

// Ví dụ mã này trình bày cách tải tài liệu PDF lên đám mây.
// Xây dựng tệpApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Đọc tài liệu
fs.readFile(file, (err, fileStream) => {
  // Tải lên yêu cầu tập tin
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Cập nhật dử liệu
  fileApi.uploadFile(request);
});

Do đó, tệp PDF đã tải lên sẽ có sẵn trong phần tệp của trang tổng quan trên đám mây.

Trích xuất dữ liệu từ PDF bằng Tệp mẫu dựa trên JSON

Chúng tôi có thể phân tích cú pháp tài liệu PDF và trích xuất dữ liệu bằng tệp mẫu dựa trên JSON bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một phiên bản của ParseApi.
  2. Cung cấp đường dẫn tệp PDF đã tải lên.
  3. Đặt đường dẫn đến tệp JSON mẫu.
  4. Cuối cùng, phân tích cú pháp tài liệu và trích xuất dữ liệu.

Mẫu mã sau đây cho biết cách trích xuất dữ liệu theo mẫu được cung cấp trong tệp JSON bằng API REST.

// Ví dụ mã này trình bày cách Phân tích cú pháp tài liệu PDF bằng Mẫu dựa trên JSON.
// Tạo một phiên bản của API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Tạo tùy chọn Parse
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Tạo yêu cầu phân tích cú pháp
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Phân tích cú pháp tài liệu
let response = await parseApi.parse(request);

// Hiển thị đầu ra
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);
    });
  }
});

Vui lòng tìm bên dưới mẫu ở định dạng 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
          }
        }
      }
    }
  ]
}

Trích xuất dữ liệu bằng Đối tượng mẫu trong Node.js

Chúng tôi có thể trích xuất dữ liệu từ tệp PDF dựa trên mẫu được xác định là đối tượng bằng cách làm theo các bước dưới đây:

  1. Tạo một phiên bản của ParseApi.
  2. Cung cấp đường dẫn tệp PDF đã tải lên.
  3. Khởi tạo một Mẫu như một đối tượng.
  4. Cuối cùng, phân tích cú pháp tài liệu và trích xuất dữ liệu.

Mẫu mã sau đây cho biết cách trích xuất dữ liệu theo mẫu đã xác định từ tài liệu PDF bằng API REST. Vui lòng làm theo các bước được đề cập trước đó để tải tệp lên.

// Ví dụ mã này trình bày cách Phân tích cú pháp tài liệu PDF theo đối tượng Mẫu.
// khởi tạo api
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// tập tin đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "companies.pdf";

// Xác định các tùy chọn phân tích cú pháp
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Nhận đối tượng mẫu
options.template = GetTemplate();

// Tạo yêu cầu phân tích cú pháp
let request = new groupdocs_parser_cloud.ParseRequest(options);
// Vượt qua tài liệu
let result = await parseApi.parse(request);

// Hiển thị kết quả
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);
    });
  }
});

Vui lòng tìm bên dưới đối tượng mẫu được tạo theo tài liệu PDF để lấy dữ liệu từ pdf.

// Ví dụ mã này minh họa một đối tượng mẫu.
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;
Trích xuất dữ liệu bằng Đối tượng mẫu trong Node.js

Trích xuất dữ liệu bằng Đối tượng mẫu trong Node.js

Phân tích tài liệu bên trong Container bằng Mẫu trong Node.js

Chúng tôi cũng có thể phân tích cú pháp tài liệu PDF có sẵn bên trong vùng chứa và trích xuất dữ liệu bằng cách sử dụng đối tượng mẫu. Vui lòng làm theo các bước được đề cập bên dưới để phân tích cú pháp tài liệu nhằm trích xuất dữ liệu từ bản pdf được quét bên trong vùng chứa.

  1. Tạo một phiên bản của ParseApi.
  2. Cung cấp đường dẫn tệp lưu trữ đã tải lên.
  3. Khởi tạo một Mẫu như một đối tượng.
  4. Cung cấp vật phẩm chứa.
  5. Cuối cùng, phân tích cú pháp tài liệu và trích xuất dữ liệu.

Mẫu mã sau đây cho biết cách phân tích cú pháp tài liệu PDF bên trong kho lưu trữ ZIP bằng API REST. Vui lòng làm theo các bước đã đề cập trước đó để tải tệp lên và trích xuất thông tin từ pdf.

// Ví dụ mã này trình bày cách Phân tích cú pháp tài liệu PDF có sẵn bên trong vùng chứa.
// khởi tạo api
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Tạo tùy chọn phân tích cú pháp
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Nhận đối tượng mẫu
options.template = GetTemplate();

// Thông tin mặt hàng vùng chứa
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Tạo yêu cầu phân tích cú pháp
let request = new groupdocs_parser_cloud.ParseRequest(options);

// tạo yêu cầu
let response = await parseApi.parse(request);

// Hiển thị đầu ra
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);
    });
  }
});

Thử trực tuyến

Vui lòng thử công cụ Phân tích cú pháp PDF trực tuyến miễn phí sau đây để trích xuất dữ liệu pdf trực tuyến. Trình trích xuất nội dung pdf này được phát triển bằng API trên. https://products.groupdocs.app/parser/pdf

Phần kết luận

Trong bài viết này, chúng ta đã học cách trích xuất dữ liệu cụ thể từ tài liệu PDF theo mẫu được cung cấp trên đám mây. Chúng ta cũng đã biết cách tạo đối tượng mẫu hoặc sử dụng mẫu ở định dạng JSON. Bây giờ bạn đã biết cách trích xuất thông tin từ pdf bằng API trình quét pdf và trình trích xuất dữ liệu PDF miễn phí. Ngoài ra, bạn có thể tìm hiểu thêm về GroupDocs.Parser Cloud API bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham khảo API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm