Node.js'de REST API kullanarak PDF'den Veri Çıkarma

Node.js’de REST API kullanarak PDF’den Veri Çıkarma

PDF belgelerini kolayca ayrıştırabilir ve bulutta kullanıcı tanımlı bir şablon kullanarak belirli verileri ayıklayabiliriz. Alanları ve tablo verilerini programlı olarak PDF dosyalarından çıkarabiliriz. Bu yazıda, Node.js’de REST API kullanarak PDF’den nasıl veri çıkarılacağını öğreneceğiz.

Bu yazıda aşağıdaki konular ele alınacaktır:

PDF’den Veri Çıkarmak için REST API ve Node.js SDK

PDF belgelerini ayrıştırmak ve bir şablona dayalı verileri ayıklamak için GroupDocs.Parser Cloud’un Node.js SDK’sı API’sini kullanacağız. Ayrıca, diğer desteklenen belge türlerinin ayrıştırılmasına ve bir şablon kullanılarak metin, resim ve belirli verilerin çıkarılmasına olanak tanır. Lütfen konsolda aşağıdaki komutu kullanarak kurun:

npm install groupdocs-parser-cloud

Lütfen belirtilen adımları uygulamadan önce panodan Müşteri Kimliğinizi ve Sırrınızı alın. Kimliğinizi ve sırrınızı aldıktan sonra, kodu aşağıda gösterildiği gibi ekleyin:

// Bu kod örneği, müşteri kimliğinizi ve Sırrı nasıl ekleyeceğinizi gösterir.
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";

Node.js’de JSON tabanlı Şablon Dosyasını kullanarak Verileri Çıkarın

Aşağıda verilen basit adımları izleyerek bir şablon kullanarak PDF belgelerinden veri çıkarabiliriz:

Belgeyi Yükle

Öncelikle, aşağıda verilen kod örneğini kullanarak PDF belgesini pdf’yi kazımak için buluta yükleyeceğiz:

// Bu kod örneği, bir PDF belgesinin buluta nasıl yükleneceğini gösterir.
// FileApi'yi Oluştur
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\companies.pdf';

// Dosyayı oku
fs.readFile(file, (err, fileStream) => {
  // Dosya isteği yükle
  let request = new groupdocs_parser_cloud.UploadFileRequest("companies.pdf", fileStream, myStorage);
  // Dosya yükleme
  fileApi.uploadFile(request);
});

Sonuç olarak, yüklenen PDF dosyası bulut üzerindeki kontrol panelinin dosyalar bölümünde mevcut olacaktır.

JSON tabanlı Şablon Dosyasını kullanarak PDF’den Veri Çıkarın

Aşağıda verilen adımları izleyerek JSON tabanlı bir şablon dosyası kullanarak PDF belgesini ayrıştırabilir ve verileri ayıklayabiliriz:

  1. ParseApi’nin bir örneğini oluşturun.
  2. Yüklenen PDF dosya yolunu sağlayın.
  3. Şablon JSON dosyasının yolunu ayarlayın.
  4. Son olarak, belgeyi ayrıştırın ve verileri çıkarın.

Aşağıdaki kod örneği, bir REST API kullanılarak JSON dosyasında sağlanan şablona göre verilerin nasıl çıkarılacağını gösterir.

// Bu kod örneği, bir PDF belgesinin JSON tabanlı bir Şablon tarafından nasıl Ayrıştırılacağını gösterir.
// API'nin bir örneğini oluşturun
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Giriş dosyası yolu
let fileInfo = new groupdocs_parser_cloud.FileInfo()
fileInfo.filePath = "companies.pdf"

// Ayrıştırma seçenekleri oluştur
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;
options.templatePath = "template.json";

// Ayrıştırma isteği oluştur
let request = new groupdocs_parser_cloud.ParseRequest(options);

// belgeyi ayrıştır
let response = await parseApi.parse(request);

// Ekran çıkışı
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);
    });
  }
});

Lütfen JSON biçimindeki şablonu aşağıda bulabilirsiniz.

{
  "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’de Şablon Nesnesini Kullanarak Verileri Çıkarın

Aşağıda verilen adımları izleyerek bir nesne olarak tanımlanan şablona dayalı olarak bir PDF dosyasından veri çıkarabiliriz:

  1. ParseApi’nin bir örneğini oluşturun.
  2. Yüklenen PDF dosya yolunu sağlayın.
  3. Bir Şablonu nesne olarak başlatın.
  4. Son olarak, belgeyi ayrıştırın ve verileri çıkarın.

Aşağıdaki kod örneği, bir REST API kullanarak bir PDF belgesinden tanımlanan şablona göre verilerin nasıl çıkarılacağını gösterir. Dosyayı yüklemek için lütfen daha önce belirtilen adımları izleyin.

// Bu kod örneği, bir PDF belgesinin Şablon nesnesine göre nasıl Ayrıştırılacağını gösterir.
// API başlatma
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Giriş dosyası
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "companies.pdf";

// Ayrıştırma seçeneklerini tanımlayın
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Şablon Nesnesini Al
options.template = GetTemplate();

// Ayrıştırma isteği oluştur
let request = new groupdocs_parser_cloud.ParseRequest(options);
// belgeyi geçir
let result = await parseApi.parse(request);

// Sonuçları göster
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);
    });
  }
});

Lütfen pdf’den veri kazımak için PDF belgesine göre oluşturulan şablon nesnesini aşağıda bulabilirsiniz.

// Bu kod örneği, bir şablon nesnesini gösterir.
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'de Şablon Nesnesini Kullanarak Verileri Çıkarın

Node.js’de Şablon Nesnesini Kullanarak Verileri Çıkarın

Node.js’de Şablon kullanarak Belgeyi Kap İçinde Ayrıştırma

Ayrıca kapsayıcı içinde bulunan PDF belgesini ayrıştırabilir ve şablon nesnesini kullanarak verileri ayıklayabiliriz. Bir kap içindeki taranmış pdf’den veri çıkarmak üzere belgeyi ayrıştırmak için lütfen aşağıda belirtilen adımları izleyin.

  1. ParseApi’nin bir örneğini oluşturun.
  2. Yüklenen arşiv dosyası yolunu sağlayın.
  3. Bir Şablonu nesne olarak başlatın.
  4. Konteyner öğesini sağlayın.
  5. Son olarak, belgeyi ayrıştırın ve verileri çıkarın.

Aşağıdaki kod örneği, bir REST API kullanarak bir ZIP arşivi içindeki bir PDF belgesinin nasıl ayrıştırılacağını gösterir. Dosyaları yüklemek ve pdf’den bilgi çıkarmak için lütfen daha önce belirtilen adımları izleyin.

// Bu kod örneği, kapsayıcı içinde bulunan bir PDF belgesinin nasıl Ayrıştırılacağını gösterir.
// API başlatma
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Giriş dosyası yolu
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "archive.zip";

// Ayrıştırma seçenekleri oluştur
let options = new groupdocs_parser_cloud.ParseOptions();
options.fileInfo = fileInfo;

// Şablon nesnesini al
options.template = GetTemplate();

// Konteyner öğesi bilgisi
let containerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
containerItemInfo.relativePath = "companies.pdf";
options.containerItemInfo = containerItemInfo;

// Ayrıştırma isteği oluştur
let request = new groupdocs_parser_cloud.ParseRequest(options);

// İstek oluştur
let response = await parseApi.parse(request);

// Ekran çıkışı
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);
    });
  }
});

Çevrimiçi Deneyin

Lütfen çevrimiçi pdf veri ayıklamak için aşağıdaki ücretsiz çevrimiçi PDF Ayrıştırma aracını deneyin. Bu pdf içerik çıkarıcı, yukarıdaki API kullanılarak geliştirilmiştir. https://products.groupdocs.app/parser/pdf

Çözüm

Bu makalede, bulutta sağlanan şablona göre PDF belgelerinden belirli verileri nasıl çıkaracağımızı öğrendik. Ayrıca bir şablon nesnesinin nasıl oluşturulacağını veya JSON formatında bir şablonun nasıl kullanılacağını gördük. Artık pdf kazıyıcı API’sini ve ücretsiz PDF veri çıkarıcıyı kullanarak pdf’den nasıl bilgi çıkaracağınızı biliyorsunuz. Ayrıca belgeleri kullanarak GroupDocs.Parser Cloud API hakkında daha fazla bilgi edinebilirsiniz. Ayrıca, API’lerimizi doğrudan tarayıcı aracılığıyla görselleştirmenize ve bunlarla etkileşimde bulunmanıza olanak tanıyan bir API Referansı bölümü de sağlıyoruz. Herhangi bir belirsizlik durumunda, lütfen forumda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız