PDF에서 데이터 추출하는 과정
✨ 1. PDF 파일 분석
- 파일을 읽고 내부 구조 파악
- 라이브러리 PyPDF2, pdfminer, pdfPlumber
2. DB 연결
- DB를 생성 및 데이터를 저장할 table 생성
- DB 연결
3. PDF 파일 저장
- PDF 파일의 데이터 추출하여 DB에 저장
- PDF의 형식을 참고하여 필드에 매핑하여 저장
- 쿼리를 통해 DB에 접근하여 데이터 처리 가능
📍 4. 자동화
- 스크립트를 작성하여 자동화(python)
- 스크립트에 PDF를 읽고 분석하여 DB에 저장하는 로직을 구현
- 스케쥴링을 사용하여 스크립트를 주기적으로 실행할 수 있게 함
- 스케쥴링 패키지 : Cron, Windows Task Schedule
✨1-1 PDF 파일 분석 도구 비교
- PyPDF2, pdfminer, pdfPlumber
- 간단한 사용과 다양한 기능이 필요한 경우
1) PyPDF2
장점
- 사용하기 쉬운 인터페이스, 다양한 작업
- 기능이 다양, 문서화
- PDF 파일에서 텍스트추출, 페이지 조작, 썸네일 생성, 북마크 작성 기능
단점
- 최신 PDF에 지원 부족
- python 3.x 호환성 문제
2) pdfminer
장점
- PDF 파일의 텍스트, 이미지, 폰트, 레이아웃 등의 정보 추출 가능
- 다양한 추출 모드와 옵션을 제공하여 원하는 데이터를 세밀하게 추출.
- PDF 파일의 낮은 수준의 구조에 집중하고 있어, 좀 더 고급 기능과 복잡한 작업을 수행할 수 있습니다.
- C로 구현된 pdfminer.six라는 버전은 Python 2.x와 3.x 모두에서 호환성.
단점
- pdfminer는 좀 더 복잡한 설정과 사용법을 가지고 있어 학습에 많은 시간 소요.
3) pdfPlumber
장점
- 텍스트 추출에 강점
- PyPDF2와 같이 다른 라이브러리에 의존하지 않음
- 사용이 용이, 직관적 인터페이스
단점
4) pdftree
- python으로 구현
- 트리기반의 구조 생성
- JSON 형식으로 출력이 제공
장점
- 구조화된 텍스트를 생성하여 PDF 문서를 이해 용이.
JSON 형식으로 출력되어, 구조적 요소를 읽고 처리 용이.
- 텍스트, 테이블, 이미지, 목차 등과 같은 다양한 구조 요소 식별.
- 구조화된 텍스트를 기반으로 사용자 정의 분석 및 처리를 수행
단점
- 일부 PDF 파일에서 인식 정확성이 떨어짐.
- 성능이 느릴 수 있으며, 큰 규모의 PDF 파일을 처리하는 데 시간이 많이 소요.
📍4-1 스케쥴링 도구 비교
- Cron, Windows Task Schedule
- OS와 스케쥴링 도구는 밀접한 관계
1) Cron
- 유닉스 및 리눅스 시스템에 적합, window에서 사용불가.
장점
- 단순하고 간결한 구문을 사용하여 작업을 예약
- 매우 안정적이고 확장성이 높음
- 널리 사용되고 테스트 됨
단점
- Cron 작업은 쉘 스크립트 또는 명령어로 정의되어 복잡한 작업을 처리하기에는 제한적.
- Cron은 상대적으로 기능이 제한적이며, 일부 고급 기능이 부족
2) Window Taskscheduler
- 유닉스 및 리눅스 시스템에 사용불가, window에서 사용.
장점
- 사용자 친화적인 그래픽 사용자 인터페이스(GUI)를 통해 작업을 예약하고 관리.
- 다양한 조건과 트리거를 설정하여 복잡한 작업 예약이 가능.
- 작업 실행 로그 및 알림 설정 등 다양한 기능을 제공.
단점
- Windows Task Scheduler는 Windows 운영체제와 밀접하게 연결되어 있어 다른 플랫폼으로의 이식성이 제한적.
- 사용자가 작업 예약 및 관리를 위해 GUI를 사용해야 하기 때문에 명령행 인터페이스(CLI)를 선호하는 개발자에게는 적합하지 않음.
참고
잘 읽었습니다. 좋은 정보 감사드립니다.