Wyodrębnij dane z PDF za pomocą REST API w Node.js

Wyodrębnianie danych z PDF przy użyciu REST API w Node.js

Możemy łatwo analizować dokumenty PDF i wyodrębniać określone dane za pomocą zdefiniowanego przez użytkownika szablonu w chmurze. Możemy programowo wyodrębnić pola i dane tabeli z plików PDF. W tym artykule dowiemy się, jak wyodrębnić dane z PDF za pomocą REST API w Node.js.

W tym artykule zostaną omówione następujące tematy:

REST API i Node.js SDK do wyodrębniania danych z PDF

Do analizowania dokumentów PDF i wydobywania danych na podstawie szablonu będziemy używać Node.js SDK of GroupDocs.Parser Cloud API. Umożliwia również analizowanie innych obsługiwanych typów dokumentów oraz wyodrębnianie tekstu, obrazów i określonych danych za pomocą szablonu. Zainstaluj go za pomocą następującego polecenia w konsoli:

npm install groupdocs-parser-cloud

Proszę uzyskaj swój identyfikator klienta i klucz tajny z pulpitu nawigacyjnego przed wykonaniem wspomnianych kroków. Po uzyskaniu identyfikatora i tajnego kodu dodaj kod, jak pokazano poniżej:

// Ten przykład kodu pokazuje, jak dodać identyfikator klienta i klucz tajny.
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";

Wyodrębnij dane przy użyciu pliku szablonu opartego na JSON w Node.js

Możemy wyodrębnić dane z dokumentów PDF za pomocą szablonu, wykonując proste czynności podane poniżej:

Prześlij dokument

Po pierwsze, prześlemy dokument PDF do chmury w celu zeskrobania pliku PDF przy użyciu przykładowego kodu podanego poniżej:

// Ten przykład kodu demonstruje, jak przekazać dokument PDF do chmury.
// Skonstruuj FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Przeczytaj plik
fs.readFile(file, (err, fileStream) => {
  // Prześlij prośbę o plik
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Przesyłanie pliku
  fileApi.uploadFile(request);
});

W rezultacie przesłany plik PDF będzie dostępny w sekcji plików pulpitu nawigacyjnego w chmurze.

Wyodrębnij dane z pliku PDF przy użyciu pliku szablonu opartego na JSON

Możemy przeanalizować dokument PDF i wyodrębnić dane za pomocą pliku szablonu opartego na formacie JSON, wykonując czynności podane poniżej:

  1. Utwórz instancję ParseApi.
  2. Podaj ścieżkę przesłanego pliku PDF.
  3. Ustaw ścieżkę do szablonu pliku JSON.
  4. Na koniec przeanalizuj dokument i wyodrębnij dane.

Poniższy przykładowy kod pokazuje, jak wyodrębnić dane zgodnie z szablonem dostarczonym w pliku JSON przy użyciu interfejsu API REST.

// Ten przykład kodu demonstruje, jak analizować dokument PDF za pomocą szablonu opartego na formacie JSON.
// Utwórz instancję interfejsu API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Wprowadź ścieżkę pliku
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Utwórz opcje analizy
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Utwórz żądanie analizy
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Przeanalizuj dokument
let response = await parseApi.parse(request);

// Wyjście wyświetlacza
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);
    });
  }
});

Poniżej znajduje się szablon w formacie 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
          }
        }
      }
    }
  ]
}

Wyodrębnij dane za pomocą obiektu szablonu w Node.js

Możemy wyodrębnić dane z pliku PDF na podstawie szablonu zdefiniowanego jako obiekt, wykonując następujące czynności:

  1. Utwórz instancję ParseApi.
  2. Podaj ścieżkę przesłanego pliku PDF.
  3. Zainicjuj szablon jako obiekt.
  4. Na koniec przeanalizuj dokument i wyodrębnij dane.

Poniższy przykładowy kod pokazuje, jak wyodrębnić dane zgodnie ze zdefiniowanym szablonem z dokumentu PDF przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać plik.

// Ten przykład kodu demonstruje, jak analizować dokument PDF według obiektu Template.
// Inicjalizacja interfejsu API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Plik wejściowy
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "companies.pdf";

// Zdefiniuj opcje analizy
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Pobierz obiekt szablonu
options.template = GetTemplate();

// Utwórz żądanie analizy
let request = new groupdocs_parser_cloud.ParseRequest(options);
// Przekaż dokument
let result = await parseApi.parse(request);

// Pokaż wyniki
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);
    });
  }
});

Poniżej znajduje się obiekt szablonu utworzony zgodnie z dokumentem PDF do zeskrobywania danych z pliku pdf.

// Ten przykład kodu demonstruje obiekt szablonu.
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;
Wyodrębnij dane za pomocą obiektu szablonu w Node.js

Wyodrębnij dane za pomocą obiektu szablonu w Node.js

Analizuj dokument wewnątrz kontenera przy użyciu szablonu w Node.js

Możemy również przeanalizować dokument PDF dostępny wewnątrz kontenera i wyodrębnić dane za pomocą obiektu szablonu. Wykonaj czynności wymienione poniżej, aby przeanalizować dokument w celu wyodrębnienia danych z zeskanowanego pliku PDF znajdującego się w kontenerze.

  1. Utwórz instancję ParseApi.
  2. Podaj ścieżkę przesłanego pliku archiwum.
  3. Zainicjuj szablon jako obiekt.
  4. Podaj element kontenera.
  5. Na koniec przeanalizuj dokument i wyodrębnij dane.

Poniższy przykładowy kod pokazuje, jak analizować dokument PDF w archiwum ZIP przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać pliki i wyodrębnić informacje z pliku pdf.

// Ten przykład kodu demonstruje, jak analizować dokument PDF dostępny w kontenerze.
// Inicjalizacja interfejsu API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Wprowadź ścieżkę pliku
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Utwórz opcje analizy
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Pobierz obiekt szablonu
options.template = GetTemplate();

// Informacje o elemencie kontenera
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Utwórz żądanie analizy
let request = new groupdocs_parser_cloud.ParseRequest(options);

// Utwórz żądanie
let response = await parseApi.parse(request);

// Wyjście wyświetlacza
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);
    });
  }
});

Wypróbuj online

Wypróbuj następujące bezpłatne narzędzie online do analizowania plików PDF w celu ekstrakcji danych pdf online. Ten ekstraktor treści PDF został opracowany przy użyciu powyższego interfejsu API. https://products.groupdocs.app/parser/pdf

Wniosek

W tym artykule dowiedzieliśmy się, jak wyodrębnić określone dane z dokumentów PDF zgodnie z dostarczonym szablonem w chmurze. Zobaczyliśmy również, jak utworzyć obiekt szablonu lub użyć szablonu w formacie JSON. Teraz wiesz, jak wyodrębnić informacje z pliku pdf za pomocą API skrobaka pdf i bezpłatnego ekstraktora danych PDF. Poza tym możesz dowiedzieć się więcej o GroupDocs.Parser Cloud API korzystając z dokumentacji. Udostępniamy również sekcję Informacje o interfejsach API, która umożliwia wizualizację naszych interfejsów API i interakcję z nimi bezpośrednio w przeglądarce. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też