Node.js에서 REST API를 사용하여 PDF에서 데이터 추출

Node.js에서 REST API를 사용하여 PDF에서 데이터 추출

클라우드에서 사용자 정의 템플릿을 사용하여 PDF 문서를 쉽게 구문 분석하고 특정 데이터를 추출할 수 있습니다. 프로그래밍 방식으로 PDF 파일에서 필드 및 테이블 데이터를 추출할 수 있습니다. 이 기사에서는 Node.js에서 REST API를 사용하여 PDF에서 데이터를 추출하는 방법을 배웁니다.

이 문서에서는 다음 항목을 다룹니다.

PDF에서 데이터를 추출하기 위한 REST API 및 Node.js SDK

템플릿을 기반으로 PDF 문서를 구문 분석하고 데이터를 추출하기 위해 GroupDocs.Parser Cloud의 Node.js SDK API를 사용합니다. 또한 지원되는 문서 유형을 구문 분석하고 템플릿을 사용하여 텍스트, 이미지 및 특정 데이터를 추출할 수 있습니다. 콘솔에서 다음 명령을 사용하여 설치하십시오.

npm install groupdocs-parser-cloud

언급된 단계를 따르기 전에 대시보드에서 클라이언트 ID와 암호를 가져오십시오. ID와 시크릿이 있으면 아래와 같이 코드를 추가합니다.

// 이 코드 예제는 클라이언트 ID와 시크릿을 추가하는 방법을 보여줍니다.
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에서 JSON 기반 템플릿 파일을 사용하여 데이터 추출

아래 제공된 간단한 단계에 따라 템플릿을 사용하여 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 파일은 클라우드 대시보드의 파일 섹션에서 사용할 수 있습니다.

JSON 기반 템플릿 파일을 사용하여 PDF에서 데이터 추출

아래 단계에 따라 JSON 기반 템플릿 파일을 사용하여 PDF 문서를 구문 분석하고 데이터를 추출할 수 있습니다.

  1. ParseApi의 인스턴스를 만듭니다.
  2. 업로드된 PDF 파일 경로를 제공하십시오.
  3. 템플릿 JSON 파일의 경로를 설정합니다.
  4. 마지막으로 문서를 구문 분석하고 데이터를 추출합니다.

다음 코드 샘플은 REST API를 사용하여 JSON 파일에 제공된 템플릿에 따라 데이터를 추출하는 방법을 보여줍니다.

// 이 코드 예제는 JSON 기반 템플릿으로 PDF 문서를 구문 분석하는 방법을 보여줍니다.
// 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. 마지막으로 문서를 구문 분석하고 데이터를 추출합니다.

다음 코드 샘플은 REST API를 사용하여 PDF 문서에서 정의된 템플릿에 따라 데이터를 추출하는 방법을 보여줍니다. 앞에서 언급한 단계에 따라 파일을 업로드하십시오.

// 이 코드 예제는 템플릿 객체로 PDF 문서를 구문 분석하는 방법을 보여줍니다.
// 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. 마지막으로 문서를 구문 분석하고 데이터를 추출합니다.

다음 코드 샘플은 REST API를 사용하여 ZIP 아카이브 내에서 PDF 문서를 구문 분석하는 방법을 보여줍니다. 앞에서 언급한 단계에 따라 파일을 업로드하고 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 참조 섹션을 제공합니다. 모호한 점이 있는 경우 포럼에서 언제든지 문의해 주십시오.

또한보십시오