Posts AWS Lambda PDF 템플릿 업로드 & 다운로드 기능을 위한 라이브러리 기술검토 정리
Post
Cancel

AWS Lambda PDF 템플릿 업로드 & 다운로드 기능을 위한 라이브러리 기술검토 정리

AWS Lambda PDF 템플릿 업로드 & 다운로드 기능을 위한 라이브러리 기술검토 정리

pdf2json 모듈을 사용한 테스트 진행

  • PDF를 바이너리에서 JSON 형식으로 구문 분석하고 변환하는 모듈로 pdf.js 기반으로 작성
  • 타 모듈에 비해 폭넓은 정보를 추출하여 제공함 (Page 요소, 스타일, Formatter 유형 등)
  • 모듈 내에서 encodeURIComponent 처리를 하고 있으므로 특수문자가 원문 그대로가 아닌 Encoding 되어 내려옴 (Case 특정 불가)
    → Parsing하여 반환된 JSON 파일 내에 Text Align에 대한 정보가 내려오고는 있으나, 모듈 소스 내에서는 Left로 Fix 되어있음 (좌측, 우측, 가운데 정렬 무시)
  • pdf2json의 가장 최신버전(2.0.0)의 경우 Node 14 버전 이상을 요구
    • 가장 최신버전에서도 Text Align 정보 left로 고정되어 내려옴
  • pdf2json 모듈을 설치하여 테스트 할 경우 unexpected token '(' 오류가 해당 모듈에서 발생
    → 1.2.5 버전으로 재설치 할 경우 해결 (참고링크)

pdf-parse (PDF 정보 추출 모듈)

  • 해당 파일의 메타데이터 (PDF Format Version, Title, 작성 프로그램, 작성 OS, 생성&수정일자) 출력 지원
  • 해당 PDF 파일의 텍스트 출력 기능 제공 (좌, 우, 가운데 정렬 기능 미제공)
    → PDF 파일 내의 텍스트 정보 출력은 가능하나 색상과 정렬 정보는 내려오지 않음

pdffiller (PDF 정보 추출 및 변환 모듈)

  • PDF 템플릿에 대한 값 설정, 템플릿 초기화, 변환 등의 기능 제공 → Fillable PDF로 설정되어 있어야만 입력 폼에 해당 값 입력가능함

form-pdf2json (PDF ↔ JSON 모듈)

  • 데이터 Convert 기능 (PDF ↔ JSON), 파일 Export 기능 (PDF ↔ JSON) 제공
    → 데이터 Convert와 파일 Export 기능 모두 작동 X (macOS, Windows 테스트 동일)

pdfreader (PDF 정보 추출 모듈)

  • 해당 파일의 메타데이터와 Text 정보(X, Y 좌표와 색상 정보) 등을 제공
    → 해당 모듈과 pdf 모듈을 사용하여 X, Y 좌표와 텍스트 정보를 매개변수로 넘겨 PDF 파일 생성하는 방식 구현 실패

pdf-creator-node (HTML → PDF 전환 모듈)

  • HTML 템플릿 파일을 작성해놓거나, 업로드한 뒤 데이터 값을 매개변수로 전달하여 PDF 파일 생성
    → macOS에서는 테스트 실패, Windows에서 테스트 성공
  • HTML ↔ PDF의 양방향 전환이 가능한 Library 검색과 테스트 필요
    → PDF에서 HTML으로 변환하는 모듈이 현재 JRE가 필요하므로 Lambda에서 사용 불가함

pdf2html (PDF → HTML 전환 모듈)

  • Apache Tika를 사용하는 모듈로 Java가 설치되어 있어야 Dependency 모듈 설치 가능
    → Node.js 기반의 Lambda에서는 사용불가
  • Text Align, Color 값과 상관없이 HTML 파일 생성되어

Puppeteer (Chromium DevTools 기반의 Utility, HTML → PDF 모듈)

  • PDF 형식의 스크린샷 저장 기능, Crawling 기능, Automation 기능, Chrome Extension 테스트 기능 등 제공
    → 이미 pdf-creator-node 모듈로 구현 가능한 기능이므로 참고용 기재

pdfminer (PDF → HTML 전환 모듈, Python 기반)

pdf2txt.py -o output.html -t html -c utf-8 -Y exact -S ./a.pdf

  • PDF를 다른 형식(HTML/XML)으로 변환 가능
    → 테스트 결과 정상적인 레이아웃이 적용된 HTML 추출 가능 (색상 미적용)

pdfkit-table (PDF Table 생성 모듈)

  • 요청 파라미터를 기준으로 Table 생성이 가능한 모듈로써 Text Align, Style, Property 등 지정이 가능함
    → Title, Subtitle은 Text Align 속성 지정 불가(단, 줄바꿈 가능), 나머지 Table 내의 상세 속성들은 모두 지정 가능
    → 해당 파일의 내용이 많아질 경우 자동으로 PDF 페이지 증가, GroupTable은 표시 불가


References

This post is licensed under CC BY 4.0 by the author.

도로명주소 관련 Open API 정보 정리 (2022.01.04 기준)

Google Analytics 4 (GA4) 기술검토 분석 및 정리

Comments powered by Disqus.