PDF 파일에서 데이터를 추출하여 Excel 파일로 저장하는 간단한 GUI 애플리케이션입니다.
- Tkinter 기반 GUI: Python 기본 라이브러리로 안정적이고 가벼운 인터페이스
- 핵심 기능 집중: 복잡한 기능 제거로 사용성 향상
- 크로스 플랫폼 지원: Windows, macOS, Linux에서 동일한 사용자 경험
- pdfplumber 기반: 가장 안정적인 추출 방법 사용
- 자동 테이블 감지: 최소 2행 2열의 테이블 자동 감지
- Excel 형식 출력: 추출된 데이터를 Excel 파일로 저장
- 다중 파일 지원: 여러 PDF 파일 동시 처리
- 실시간 진행률: 처리 진행 상황 실시간 표시
- 상세 로그: 처리 과정 상세 기록
- 드래그 앤 드롭: 파일을 GUI로 직접 끌어다 놓기
- 중복 파일 방지: 동일한 파일 자동 필터링
- 이중 진행률 바: 전체 파일 진행률 + 개별 파일 진행률
- 실시간 상태 업데이트: 현재 처리 중인 파일명 및 페이지 정보
- 처리 시간 추적: 경과 시간, 처리 속도, 예상 완료 시간 (ETA)
- 시스템 성능 모니터링: CPU/메모리 사용률 실시간 표시 (색상 코딩)
- 상세 로그: 타임스탬프와 이모지가 포함된 실시간 로그
- 자동 스크롤: 로그 자동 스크롤 및 클리어 기능
- 일반 텍스트 PDF (Word→PDF, PPT→PDF 등)
- 테이블 포함 PDF
- 이미지 기반 PDF (OCR 사용)
- 스캔된 문서 PDF
- 휴대폰으로 촬영한 표 이미지 PDF
- Python 가상환경 생성
python3 -m venv .venv
source .venv/bin/activate # macOS/Linux
# 또는
.venv\Scripts\activate # Windows- 의존성 설치
pip install -r requirements.txt- 시스템 의존성 설치
macOS:
brew install tesseractWindows:
- Chocolatey를 통해 설치:
choco install tesseract - 또는 Tesseract GitHub Release에서 직접 설치
- 애플리케이션 실행
python main.pyGitHub Releases에서 플랫폼에 맞는 실행 파일을 다운로드하세요.
Windows:
pdf-extractor.exe다운로드- 더블클릭하여 실행
macOS:
pdf-extractor다운로드- 실행 권한 부여:
chmod +x pdf-extractor - 실행:
./pdf-extractor
-
PDF 파일 선택
- 🗂️ 단일 파일: "PDF 파일 선택" 버튼으로 개별 파일 선택
- 📁 일괄 처리: "폴더 선택" 버튼으로 폴더 전체 PDF 파일 처리
- 🖱️ 드래그 앤 드롭: PDF 파일을 GUI의 드롭 영역으로 끌어다 놓기
-
출력 폴더 설정
- 📂 Excel 파일이 저장될 폴더 선택
- 💾 최근 사용한 폴더는 자동으로 기억됨
-
추출 설정 커스터마이징 (선택사항)
- 🔧 추출 방법: 자동 선택 모드 권장 (최적 성능)
- 👁️ OCR 설정: 이미지 PDF 처리를 위한 OCR 엔진 선택
- 📊 테이블 감지: 최소 행/열 수 설정으로 품질 조절
- ⚡ 성능 최적화: 대용량 PDF 처리를 위한 페이지 제한 설정
-
추출 시작 및 모니터링
▶️ "추출 시작" 버튼으로 작업 실행- 📈 실시간 진행률 및 성능 모니터링
- 📝 상세 로그를 통한 처리 과정 확인
- 🎉 완료 후 결과 폴더 바로 열기
- 🌙 다크 모드: 우상단 토글 버튼으로 테마 변경
- 📊 성능 모니터링: CPU/메모리 사용률 실시간 확인 (색상 코딩)
- ❓ 도움말: 좌상단 도움말 버튼으로 상세 가이드 확인
- 🖱️ 드래그 앤 드롭: 파일을 직접 끌어다 놓아 간편하게 추가
- ⏱️ 예상 완료 시간: 현재 처리 속도 기반 ETA 표시
- 💾 설정 자동 저장: 종료 시 모든 설정 자동 저장
- 테이블 감지 최소 조건 설정
- 출력 형식 옵션 설정
- 추출 시작
- 진행률을 실시간으로 확인
- 완료 후 결과 확인
- Excel 파일 (.xlsx)
- 페이지별 시트 분리 옵션
- 테이블 데이터와 텍스트 데이터 분리
- 추출 방법별 메타데이터 포함
pdf-extractor/
├── main.py # GUI 메인 애플리케이션
├── pdf_extractor.py # PDF 추출 핵심 로직
├── build.py # 실행 파일 빌드 스크립트
├── requirements.txt # Python 의존성
├── README.md # 프로젝트 문서
└── .github/
└── workflows/
└── build.yml # CI/CD 워크플로우
python build.py빌드된 파일은 dist/ 폴더에 생성됩니다.
- Python: 3.8 이상
- 메모리: 최소 2GB RAM
- 저장공간: 100MB 이상
Windows:
- Windows 10/11 (64-bit)
macOS:
- macOS 10.14 이상
- Intel 또는 Apple Silicon 지원
MIT License
이슈나 개선사항이 있으시면 GitHub Issues를 통해 알려주세요.
- v0.0.1: 초기 릴리즈
- 기본 PDF to Excel 변환 기능
- PyQt5 GUI 인터페이스
- 다중 플랫폼 지원
- OCR 기능 지원
Q: 드래그 앤 드롭이 작동하지 않아요
- A: PDF 파일만 드롭할 수 있습니다. 파일 확장자를 확인해주세요.
Q: 성능 모니터링에서 빨간색 경고가 계속 나와요
- A: CPU 80% 이상, 메모리 85% 이상 사용 시 경고가 표시됩니다. 다른 프로그램을 종료하거나 배치 크기를 줄여보세요.
Q: 다크 모드가 저장되지 않아요
- A: 애플리케이션을 정상적으로 종료하면 설정이 자동 저장됩니다.
Q: 도움말 창이 열리지 않아요
- A: ❓ 도움말 버튼을 클릭하거나, GUI 상단 좌측의 도움말 버튼을 이용하세요.
- 🔋 대용량 파일: 최대 페이지 수를 제한하세요 (500 페이지 권장)
- 💾 메모리 절약: 배치 크기를 줄이면 메모리 사용량이 감소합니다
- ⚡ 속도 향상: SSD 저장장치 사용 시 더 빠른 처리 가능
🆕 새로 추가된 기능:
- 🖱️ 드래그 앤 드롭: PDF 파일을 GUI로 직접 끌어다 놓기
- ❓ 통합 도움말 시스템: 상세한 사용법과 문제 해결 가이드
- 🎨 개선된 다크 모드: 버튼 텍스트 및 아이콘 업데이트 (🌙/☀️)
- 📊 색상 코딩: CPU/메모리 사용률에 따른 색상 표시
- 🎉 완료 다이얼로그: 결과 폴더 바로 열기 기능
- ⏱️ ETA 표시: 처리 속도 기반 예상 완료 시간
🔧 개선사항:
- 중복 파일 자동 필터링
- 설정 자동 저장/복원 강화
- 로그 시스템 이모지 및 타임스탬프 추가
- 진행률 표시 정확도 향상